Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
34 views347 pages

Salesforce Spring15 Release Notes

vvfvfvfvfv

Uploaded by

Florent MALNOU
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views347 pages

Salesforce Spring15 Release Notes

vvfvfvfvfv

Uploaded by

Florent MALNOU
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 347

Salesforce Spring ’15 Release

Notes
Salesforce, Spring ’15

@salesforcedocs
Last updated: May 20, 2015
© Copyright 2000–2015 salesforce.com, inc. All rights reserved. Salesforce 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.
CONTENTS

SALESFORCE SPRING ’15 RELEASE NOTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


How to Use the Release Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Feature Impact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
General Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Communities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Sales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Work.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Data.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Chatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Salesforce1 Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Force.com Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Force.com Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Doc Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Other Salesforce Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
SALESFORCE SPRING ’15 RELEASE NOTES

In the Spring ’15 release, Salesforce delivers powerful new business intelligence capabilities, more ways to collaborate on deals and
projects, and even greater control over your data.

IN THIS SECTION:
How to Use the Release Notes
The release notes give you brief, high-level descriptions of new Salesforce features and enhancements to existing features. You also
get setup information, implementation tips to help you get started, and best practices to ensure your continued success.
How and When Do Features Become Available?
Some features in Spring ’15 affect all users immediately after the release goes live. You may want to communicate these changes
to your users beforehand so they are prepared. Other features require direct action by an administrator before users can benefit from
the new functionality.
Salesforce Overall: Better Search, Duplicate Management, and More
Spring ’15 improves your overall Salesforce experience with better searching, more ways to handle duplicate records, more detailed
person accounts, and tighter email security. The release notes are easier to use too.
Analytics: Introducing Wave, the Analytics Cloud
The Salesforce Analytics Cloud is designed for everyone. Whether you’re a business user, analyst, or developer, Analytics Cloud
enables you to access any data, get answers to any questions, and act immediately. Now anyone can access powerful insights and
let the data tell a story. Finally, business intelligence for the rest of us!
Mobile: Do More On the Go with Salesforce1
Spring ’15 improves life for sales reps in the field. Streamline workflow with instant task creation from feed posts. Drive quicker
decisions with dashboard filters and easier access to reports. Improve sales productivity with the latest news about important accounts
and a visual assistant that coaches reps through your sales process. And that’s just scratching the surface.
Communities: Easier Setup and Branding, Question-to-Case
Simplified community setup, improvements to the Community Management design, additional Community Builder functionality,
and more features in the Napili self-service community template are the highlights of the Communities enhancements in Spring
’15.
Sales: Duplicate Management, Sales Path, and More
Spring ’15 makes it easier to manage duplicate records and guide reps through the sales process. And there’s more. The newly
christened Enterprise Territory Management includes key enhancements for tracking territories across companion objects, and with
Collaborative Forecasts, sales reps can now make their own adjustments. Email Connect, Salesforce for Outlook, and Activities also
offer exciting new capabilities.
Work.com: Free Features, Single Add-On
Spring ’15 enables you to use Thanks and Skills features for free, customize your coaching experience, and use more features in the
Goals pilot.
Data.com
Data.com is the solution for delivering leading business data inside Salesforce. The Data.com product suite includes Data.com
Prospector and Data.com Clean, as well as relatedData.comfeatures: Social Key, Data.com Reports, and Data.com Data Assessments.

1
Salesforce Spring ’15 Release Notes How to Use the Release Notes

Service: Turn Posts Into Cases, Manage Support Expectations


Spring ’15 includes ways to quickly turn emails and social media posts into cases. You can also track the support contracts your
customers have and the products they own, offer more Knowledge articles, and help your agents out with a new Console tab.
Chatter: Reporting, Question-to-Case, Records in Groups
Spring ’15 enables you to report on Chatter activity in your organization, add records to groups, and create cases from Chatter
Questions. There are also several improvements to files, feeds, and unlisted groups functionality.
Salesforce1 Reporting: Report Notifications
Reporting enhancements give you even more ways to keep tabs on key metrics.
Force.com Customization: Adapt Salesforce with Clicks and Code
Customization features enable you to expand your organization by enhancing your objects, data, and fields, customizing your
organization’s look and feel, augmenting your business processes, creating websites, and creating apps—all by using point-and-click
tools and maybe some code. Customization features also include tools to administer and secure your organization.
Force.com Development: Create Your Own Salesforce App
Force.com helps you develop new applications and integrations to help your organization or for resale to other organizations.
Help and Training
We’re introducing walkthroughs, a whole new way to learn to use Salesforce features. We’ve also updated many help videos and
some of our compliance and trust documentation.
Other Salesforce Products

How to Use the Release Notes


The release notes give you brief, high-level descriptions of new Salesforce features and enhancements to existing features. You also get
setup information, implementation tips to help you get started, and best practices to ensure your continued success.
You can choose from PDF and HTML versions.

Known Issues
These release notes are about new and modified features, not known issues. For information about known issues, check out the Salesforce
Known Issues Site.

Updates Via Twitter


When you follow @salesforcedocs on Twitter, you’ll receive notices whenever we publish new documentation or make significant
updates to existing documentation.

Your Feedback Matters


We know how important our documentation is to your company’s success. We want to know what works for you and what doesn’t.
• Feedback forms: As you’re working with our documentation—whether it’s in the Salesforce Help, release notes, or developer
guides at Salesforce Developers—look for the feedback form and vote up or down. Add comments if you have them.
• Twitter: Tweet us at @salesforcedocs.

2
Salesforce Spring ’15 Release Notes You Asked for It!

Before the Release


Some links to the Salesforce Help, implementation guides, tip sheets, and developer guides won’t work until the Salesforce release itself
is available in your sandbox or production organization.

IN THIS SECTION:
You Asked for It!
Many of the features in this Salesforce release are here because you asked for them on IdeaExchange.
Other Resources
In addition to these release notes, we provide other resources to get you up to speed quickly.
Release Notes Changes
Read about changes to the release notes.

You Asked for It!


Many of the features in this Salesforce release are here because you asked for them on IdeaExchange.

IdeaExchange Idea delivered


Salesforce1 Should Show All List Views in the Salesforce1 App See Full-Featured List Views (Tablets Only) (partially delivered)
And
See More List Views (Phones Only) (partially delivered)

Salesforce1 - Need ability to convert leads Convert Leads to Contacts (Beta)

Dashboard filters also on mobile devices Use Filters in Dashboards

Report in salesforce1 Access Recent Reports from the Navigation Menu

Dupe Alerts Duplicate Management (Generally Available)

Duplicate detection on records from external sources

Signing outbound emails with DomainKeys (DKIM) DKIM Signing Outbound Email

Show All List Views in the Salesforce1 App See Full-Featured List Views (Tablets Only)

Non-Forecasts Managers Can Adjust Their Own Forecasts Let All Forecast Users Adjust Their Own Forecasts with Flexible
Forecast Adjustments

Better Contact Syncing with MS Exchange Sync Users’ Contacts and Events in the Cloud

Add Emails to Multiple Opportunities Add Emails to Multiple Salesforce Records That Accept Tasks
Attach Emails to Multiple Accounts
Add Emails to Multiple Cases
Add Emails to Multiple Cases at Once
Support Single Email to Multiple Accounts
Multiple Opportunities and Contacts in Reference to Tasks and
Events

3
Salesforce Spring ’15 Release Notes You Asked for It!

IdeaExchange Idea delivered


Add Email to More Than One Object from the Side Panel
Add Same Email to Multiple Cases
Assigning Emails to Multiple Accounts
Send an Email to Multiple Opportunities
Sync with Multiple Opportunities and Accounts
Relate Email to Multiple Custom Objects
Connect for Outlook: Add an email via Outlook to Multiple Records

Multiple Email Address Recognition Increase Your Teams’ Chances of Seeing Relevant Contacts and
Multiple Email Addresses Leads in the Side Panel

Salesforce for Outlook Search Custom Email Fields


Associating Multiple Email Addresses with Person Accounts
Associate with Custom Email Fields
Enable Salesforce for Outlook to Search All Email Fields
Salesforce for Outlook Improvement
Sending Emails to Non-primary Email Addresses

Private to Me Visibility on Coaching Notes Customize Coaching to Fit Your Organization

Reduce Auto-Posts in Chatter for Goals Do More with Enhanced Goals (Pilot)
Reword ‘Goal Settings’ on Work.com Settings
Create Goal for a Group
Add WYSIWYG Editor to Comment/Task Boxes
Ability to Set a Default Visibility When Creating a New Objective
Add a Group to a Goal
Delegate Access for Objective Creation
Copy Objectives
Labeling Objectives
Sorting the Key Results by Priority
No Private Goals
HPD Goal Text Boxes
Unlock Goals
List of Team Goals, All Goals
Assign Goals
“View All Goals” in Work.com
View Goals by Quarter
Work.com: Custom Fields

4
Salesforce Spring ’15 Release Notes You Asked for It!

IdeaExchange Idea delivered


Work.com - Disable Feed Update on Metric Fields
Defaulting Private Goals within Work.com
Option to Have Validation Rules for Work.com Objects
Goal Folders for Work.com
Transfer Goal Ownership and Sharing Rules for Goals
Goal Default Setting as Private in Work.com

Delegate Administration of Public Groups Delegated Administrators Can Manage Public Groups

Allow Salesforce Administrators to update records owned by Create or Edit Records Owned by Inactive Users
Inactive Users

Add geolocation fields to the Address data type fields on standard Limitations Changed for Geolocation Fields (Generally Available)
objects

Cross Object Workflow Visually Automate Your Business Processes (Generally Available)
Workflow Actions from Parent to Child Objects
Mass Submit for Approval
Conditional Workflow Action
Support for Advanced Workflow Processes
Creation of Any Object via Workflow Rule
Create Workflow Actions Natively
Submit for Approval Through Workflow Rules
Sequential Workflows or Workflow Actions
Workflow to Create New Records
Recurring Workflow Rules
Workflow Field Update - Related Object Access
Need More than 50 Workflow Rules
Apex Called by Workflow
Add Last Activity and Last Modified Date to Workflow Criteria
Options
Allow Changes in Formula Field Value to Trigger Workflow
Graphical View of Workflow Rules and Tasks
Create a Case from Workflow
Workflow for Chatter
Workflow Visualizer
Workflow to Create a New Record
Workflows to be Able to Trigger other Workflows
Workflow Field Update to Related Record

5
Salesforce Spring ’15 Release Notes You Asked for It!

IdeaExchange Idea delivered


Ability to Define Workflow on Secondary Objects
Lookup Field, Field Update
Expose Opportunity Last Activity Field
Use Owner’s Manager for Workflow Purposes
Cross Object Workflow
Increase Workflow Rule Limit
Trigger Visual Flows from a Workflow
Ability to Invoke Submit for Approval Automatically
Automatic Approval Process Triggered by a Workflow
Workflow Field Updates for Parent Objects

Single Boss Sharing Hierarchy Manager Groups Available in All Organizations

Asset Tab Assets Object Redesigned as a Standard Object


History Tracking for Assets
Record Types on Assets

Case Related List in Knowledge Article Linked Cases Related List on Articles
View What Cases Have Been Associated With Knowledge Articles
Displaying Related Cases From the Article Interface

Edit a Published Article and Cancel Should Revert Back to the Canceling an Unsaved Draft of a Published Article No Longer Saves
Original Situation the Draft
Cancel (Delete) Article if User Does Not Want Draft Article
Draft Knowledge Article to be Created Only Once a Save Action is
Performed

Add ability to Show Properties on Article by Default Updated Article Preview Page for Internal Users
Articles and Article Management in Salesforce1 Mobile App

Multipicklist Workflow Field Updates Create and Manage Processes More Efficiently
Allow Multi-Select Picklists to be Modified by Workflow
Process Builder: List Views and Object Info when Viewing Process
List
Process Builder: Back to Salesforce Button
Process Builder: Allow Selection of Multiple Multi-Select Picklist
Values

Process Builder: Ability to Use AND/OR Logic for Criteria Customize the Condition Logic in Process Builder

Process Builder: Allow Editing of Deactivated Process or Allow Create Versions of a Process
Versions

6
Salesforce Spring ’15 Release Notes Other Resources

IdeaExchange Idea delivered


Custom Metadata Types Develop Deployable Custom Metadata Types (Pilot)

Eliminate Planned Downtime During Application Upgrades Promote Business Continuity with Organization Sync (Generally
Available)

Product Field History Tracking Upgrades Products Now Have Field History Tracking

Implement an "Apex Queue" for Async Processing Submit More Batch Jobs with Apex Flex Queue (Generally Available)
And
Chain More Jobs with Queueable Apex

Batch Apex Queue/Serialize Submit More Batch Jobs with Apex Flex Queue (Generally Available)

Access the API Request Limit through the API Limits Resource for REST API

Provide a Webservice API Call that Tells End User the API Usage
Access Storage Used Information through API

SEE ALSO:
How and When Do Features Become Available?

Other Resources
In addition to these release notes, we provide other resources to get you up to speed quickly.
• Release Readiness community. Join a community of Salesforce experts.
• Release demos. Get quick video overviews of what’s coming this release.
• Spring ’15 Training. Take online training to check out Spring ’15 features and enhancements and to prepare for certification release
exams.
• Training Release Notes. Learn about online and instructor-led training changes and additions. Published every four months, the
training release notes make it easy for you and your customers to keep up with the latest training innovations.

Release Notes Changes


Read about changes to the release notes.

May 21, 2015


Salesforce1 Enhancements in This Release
Announcing the release of the Salesforce1 downloadable app for Android devices, version 7.2. The app is now available for download
from Google Play.
This is what’s new in version 7.2:
• Access to centralized approval items and paused flow interviews from the Salesforce1 navigation menu
• Support for URL schemes, which allow users to access specific pages in the Salesforce1 app from external applications
• Performance improvements and bug fixes

7
Salesforce Spring ’15 Release Notes Release Notes Changes

May 6, 2015
Get Faster and More Relevant Search Results (Generally Available)
Revised example of tokenization for a record name that includes letters, numbers, and punctuation.

April 29, 2015


Code Coverage Bug Fixes
Added release note about code coverage bug fixes.
Create a Dataset With the Wave Connector
Announcing new app that makes it easy to import Excel data to Analytics Cloud.
Updated Article Preview Page for Internal Users
Existing organizations no longer need to contact Salesforce to enable the new article preview interface.

April 1, 2015
See News about Accounts
Noted that Account News is available only in English, and only to users in the United States.

March 25, 2015


Predictable Iteration Order for Unordered Collections
Added information about a critical update for the iteration order in unordered Apex collections.
Other Changes in the Sales Cloud
Added a section about the retirement of the contract-specific approval functionality.
New and Changed Apex Classes
Added information about Interview.start(), which now supports user provisioning flows.
Get Faster and More Relevant Search Results (Generally Available)
Added an example of tokenization for a record name that includes letters, numbers, and punctuation.

March 18, 2015


Salesforce1 Enhancements in This Release
Announcing the release of the Salesforce1 downloadable app for iOS devices, version 7.1. The app is now available for download
from the App Store.
In addition to supporting the Spring ’15 mobile features, this is what’s new in version 7.1:
• Access recent reports from the navigation menu
• Performance improvements and bug fixes
Load External CSS or JavaScript Libraries
Added details for the new <ltng:require> tag.

March 11, 2015


Change in Activation Date for “Serve Static Resources from the Visualforce Domain” Critical Update
Updated this release note to clarify that this Critical Update is removed from the Critical Update Console.

8
Salesforce Spring ’15 Release Notes Release Notes Changes

Inactive Latvian Currency Removed


As of January 1, 2014, the official currency of Latvia is the Euro (EUR) rather than the Latvian Lats (LVL). LVL is no longer a currency
option in Salesforce.
Salesforce1 Enhancements in This Release
We’ve re-enabled Salesforce Adoption Manager for the Spring ’15 release.

March 4, 2015
Salesforce1 Enhancements in This Release
Announcing the release of the Salesforce1 downloadable app for Android devices, version 7.1. The app will be gradually rolled out
to users over the course of several days. Once it’s available, users can download the update from Google Play.
What’s new in version 7.1:
• Access recent reports and canvas apps from the navigation menu
• Create contacts more quickly with auto-populated data when using Call History
• Performance improvements and bug fixes
See More List Views (Phones Only)
Updated this release note to clarify that the More List Views option works differently in the downloadable app for iOS devices and
the mobile browser app, and that the downloadable app only displays list views that were recently accessed in the full Salesforce
site.
Add or Remove Topics for Feed Posts
Updated this release note to clarify that editing lists of topics is available only when using the Salesforce1 mobile browser app on a
smartphone. This option isn’t supported in the downloadable apps.
Turn Posts into Tasks
Updated this release note to clarify that creating tasks from a feed post is available in the Salesforce1 mobile browser app only.
Change Sandbox Type When Refreshing
Added release note about changing sandbox type upon refresh.
Make Long-Running Callouts from a Visualforce Page
Added a note to emphasize that asynchronous callouts are currently supported only when invoked through Visualforce pages.

February 25, 2015


Access Recent Reports from the Navigation Menu
Clarified that the Reports item in the Salesforce1 navigation menu is currently supported in the mobile browser app only. The
Reports item displays in the downloadable apps but doesn’t work correctly. This will be fixed in the 7.1 version, which will be
available later this spring.
Changes to Salesforce1 Custom Branding
Expanded this release note to explain that the header of popup, overlay, and dialog windows is now white and no longer changes
to show your custom Brand Color setting.
Dashboard Wizard and API Create Correct Relative URLs
The dashboard wizard and API no longer cause errors when you enter Drill Down to locations other than absolute URLs.
Give Flows Access to Apex Classes More Easily
Clarified the data types that are supported with the @InvocableMethod annotation. Added links to the Force.com Apex Code
Developer’s Guide for reference.

9
Salesforce Spring ’15 Release Notes Release Notes Changes

Promote Business Continuity with Organization Sync (Generally Available)


Removed incorrect Organization Sync pricing information.

February 18, 2015


Add the Assets Tab to the Home Page
Removed Professional Edition from the list of supported editions. You can’t add the Assets tab via user profiles in the Professional
Edition.
Salesforce App for Outlook (Beta)
Added details about our new, cloud-based feature that brings in Salesforce content to Microsoft ® Outlook Web App and Outlook®
2013.
Change in Activation Date for “Enable governor limits on all executed flows” Critical Update
Added release note about the new activation date for the “Enable governor limits on all executed flows” critical update.
Walkthroughs
Added links to a series of new interactive walkthroughs that guide users and administrators through popular Salesforce features.
Focus on the Right Information with Release Note Filters (Beta)
Added a link to this survey, which requests your feedback on the filters that we added to the HTML release notes.
Email IP Ranges Updated
Updated IP ranges for email whitelisting and relay.
Email Size Limits Corrected
Corrected email range size for body and attachments.
New and Changed Apex Classes
Added new exceptions in Auth.SessionManagement.validateTotpTokenForKey().
Bulk API
Added information about a new header, Batch Retry.

February 11, 2015


Refresh Dashboards More Easily
Pull-to-refresh on a dashboard no longer works, dashboards and their corresponding source reports can be rerun from the action
bar, dashboards show data from the most recently run source reports when opened.
See Fewer Report Rows for Better Performance on the Go (iPhone 6 Plus Only)
Added information about a new limit on the maximum number of rows displayed in reports when using Salesforce1 on an iPhone
6 Plus.
Clickjack Protection Enabled for Salesforce1 Reporting
Added an editions table.
General Administration
The Create or Edit Records Owned by Inactive Users feature is available by request.
Enhance the Feed with a New Task Action
Added information to clarify that administrators need to enable Actions in the Publisher and feed tracking for tasks.
Set Up Sales Path
Added the permissions table for enabling and setting up a sales path.
Focus on the Right Information with Release Note Filters (Beta)
Added a release note about new filters in the HTML release notes.

10
Salesforce Spring ’15 Release Notes Release Notes Changes

Visual Enhancements to the HTML Release Notes


Added a release note about the HTML release notes’ new look-and-feel and the ability to change language.

February 4, 2015
You Asked for It!
Added more IdeaExchange links for various features.
Salesforce1 Enhancements in This Release
We’ve removed Salesforce Adoption Manager from the Spring ’15 release. It’s no longer possible to enable this feature.
See Full-Featured List Views (Tablets Only)
To improve performance of the Salesforce1 mobile browser app when used on a tablet, list item actions have been removed from
list views.
See More Details in Search Results (Tablets Only)
To improve performance of the Salesforce1 mobile browser app when used on a tablet, list item actions have been removed from
search results.
View All Paused Flow Interviews in One Location
Corrected the release note to show that the Salesforce1 mobile browser app menu item for working with paused flows is called
Paused Flow Interviews instead of Flow Interviews.
Use Thanks and Skills for Free
Added information to clarify that Chatter is required, and moved information about sharing to a relevant Knowledge article.
Emoticons Added in the Feed
Corrected the release note to clarify that administrators must enable emoticons in the Chatter Settings to make the emoticons
available for users.
Enhance the Feed with a New Task Action
Added information to clarify that administrators can change the field layout of the Create New Task action.
New OS Support in Salesforce Files Sync
Removed increased limit on number of synced files.

January 28, 2015


Move Users Off Older iOS Mobile Devices that Are No Longer Supported
To ensure the best experience using Salesforce1, we have removed support for a number of older, slower iOS mobile devices.
Visualize List View Details with Charts (Tablets Only)
Added a note to clarify that newly-created charts and out-of-the-box charts can’t be deleted in this release.
Other Changes in the Process Builder on page 227
Added a new release note about support for change sets, packages, and the Metadata API.
Add or Remove Topics for Feed Posts
Added information clarifying that this feature is available only when using Salesforce1 on a smartphone; the option doesn’t appear
when using a tablet.
Differentiate between Similar Quick Results
Corrected the release note to indicate that this enhancement is available in the Salesforce1 mobile browser app only.
Retirement of Support for the Salesforce CTI Toolkit
Changed the date from Summer ‘15 to Spring ‘15.

11
Salesforce Spring ’15 Release Notes Release Notes Changes

New Events
Removed ui:validationError because it doesn't apply to developers.
Change in Attribute Defaults for <apex:page> When in Salesforce1
Added a new release note about this change.
URLs Returned by the URLFOR Function Optimized for Attachments
Added a new release note about this change.
View a Link and a File Attachment on the Same Post
Updated the release note to clarify that only the first link users add to a post shows up as an attachment.
Other Changes in Communities
Added a new release note about the removal of usernames from the Forgot Password and Changed Password emails.
How do I update community membership using the API?
Added steps on how to add community members using the API.
Availability of Compound Fields in Formula Functions Changed
Clarified the definition of “compound fields.” Added information on how this change affects formulas.

January 21, 2015


Access All Work.com Features with the Consolidated Add-On
Added more details about the feature add-on.
SOQL Queries of External Objects Can Include the COUNT() Aggregate Function
Added support for the COUNT() aggregate function in SOQL queries of external objects.
Find More Files with New Salesforce Files Filters
Added a note about disabling the Safari Block Pop-ups setting to access external files on iOS devices.
Distribute a Managed Version of Salesforce Files Sync (Pilot)
Added a new release note about this pilot program.
Streamline Community Creation with the Enhanced Wizard
Clarified that there are five options to choose from when creating a community, and that Community Builder is for designing
communities that are based on a responsive self-service template.

January 14, 2015


Mobile: Do More On the Go with Salesforce1
Added content that describes all of the Spring ’15 enhancements to the Salesforce1 mobile app.
Change in Activation Date for “Serve Static Resources from the Visualforce Domain” Critical Update
Corrected the original activation date to 12/10/2014, instead of 2015. There’s no functional change, just a change to the release note
text.
Customize Coaching to Fit Your Organization
Removed the limitation about private notes because it doesn’t apply to most users.
Retirement of Support for the Salesforce CTI Toolkit
Added the retirement of support notice for the Salesforce CTI Toolkit.
Use Macros in Case Feed to Work More Efficiently
Corrected edition information to clarify that macros are available only with a Service Cloud license.

12
Salesforce Spring ’15 Release Notes How and When Do Features Become Available?

January 7, 2015
Custom Invocable Actions
Clarified that describe and invoke for an Apex action respect the profile access for the Apex class.
New and Changed Apex Classes
Added information about new methods in the System.Test class and the new System.Continuation class.
You Asked for It!
Added IdeaExchange links for two ideas that were delivered in Apex.
Emoticons Added in the Feed
Correction for enabling emoticons. Salesforce administrators have to enable emoticons in the Chatter Settings to make them available
to users.
Find Information Faster
Added release note about the restructured release notes.

December 22, 2014


Share Macros
Added information about sharing macros to the release notes.

How and When Do Features Become Available?


Some features in Spring ’15 affect all users immediately after the release goes live. You may want to communicate these changes to
your users beforehand so they are prepared. Other features require direct action by an administrator before users can benefit from the
new functionality.
When will you start seeing Spring ’15 changes on your instance? The best way to find out is to check the Major Release Schedule section
of the Salesforce trust site at trust.salesforce.com/trust/maintenance/.
This series of tables summarizes the Spring ’15 features and their impact on users. Review the feature details for the applicable Salesforce
editions.

IN THIS SECTION:
How and When General Enhancements Become Available
Spring ’15 improves your overall Salesforce experience with better searching, more ways to handle duplicate records, more detailed
person accounts, and tighter email security. The release notes are easier to use too.
How and When Analytics Cloud Features Become Available
The Salesforce Analytics Cloud is designed for everyone. Whether you’re a business user, analyst, or developer, Analytics Cloud
enables you to access any data, get answers to any questions, and act immediately. Now anyone can access powerful insights and
let the data tell a story. Finally, business intelligence for the rest of us!
How and When Mobile Features Become Available
Spring ’15 improves life for sales reps in the field. Streamline workflow with instant task creation from feed posts. Drive quicker
decisions with dashboard filters and easier access to reports. Improve sales productivity with the latest news about important accounts
and a visual assistant that coaches reps through your sales process. And that’s just scratching the surface.
How and When Chatter Features Become Available
Spring ’15 enables you to report on Chatter activity in your organization, add records to groups, and create cases from Chatter
Questions. There are also several improvements to files, feeds, and unlisted groups functionality.

13
Salesforce Spring ’15 Release Notes How and When General Enhancements Become Available

How and When Communities Features Become Available


Simplified community setup, improvements to the Community Management design, additional Community Builder functionality,
and more features in the Napili self-service community template are the highlights of the Communities enhancements in Spring
’15.
How and When Sales Features Become Available
Spring ’15 makes it easier to manage duplicate records and guide reps through the sales process. And there’s more. The newly
christened Enterprise Territory Management includes key enhancements for tracking territories across companion objects, and with
Collaborative Forecasts, sales reps can now make their own adjustments. Email Connect, Salesforce for Outlook, and Activities also
offer exciting new capabilities.
How and When Work.com Features Become Available
Spring ’15 enables you to use Thanks and Skills features for free, customize your coaching experience, and use more features in the
Goals pilot.
How and When Data.com Features Become Available
Data.com is the solution for delivering leading business data inside Salesforce. The Data.com product suite includes Data.com
Prospector and Data.com Clean, as well as relatedData.comfeatures: Social Key, Data.com Reports, and Data.com Data Assessments.
How and When Service Features Become Available
Spring ’15 includes ways to quickly turn emails and social media posts into cases. You can also track the support contracts your
customers have and the products they own, offer more Knowledge articles, and help your agents out with a new Console tab.
How and When Salesforce1 Reporting Features Become Available
Reporting enhancements give you even more ways to keep tabs on key metrics.
How and When Force.com Customization Features Become Available
Customization features enable you to expand your organization by enhancing your objects, data, and fields, customizing your
organization’s look and feel, augmenting your business processes, creating websites, and creating apps—all by using point-and-click
tools and maybe some code. Customization features also include tools to administer and secure your organization.
How and When Force.com Development Features Become Available
Force.com helps you develop new applications and integrations to help your organization or for resale to other organizations.

How and When General Enhancements Become Available


Spring ’15 improves your overall Salesforce experience with better searching, more ways to handle duplicate records, more detailed
person accounts, and tighter email security. The release notes are easier to use too.

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Get Faster and More Relevant Search Results
(Generally Available) (available on a rolling
basis during the Spring ’15 release)

Duplicate Alerts and Blocking (Generally


Available)

Import Accounts and Contacts with Ease

Middle Name and Suffix Fields for Person


Objects (Generally Available)

14
Salesforce Spring ’15 Release Notes How and When Analytics Cloud Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
DKIM Signing Outbound Email (available
within 24 hours after the Spring ’15 release)

Improve Security with Changes to Image


Support in the Rich Text Editor

How and When Analytics Cloud Features Become Available


The Salesforce Analytics Cloud is designed for everyone. Whether you’re a business user, analyst, or developer, Analytics Cloud enables
you to access any data, get answers to any questions, and act immediately. Now anyone can access powerful insights and let the data
tell a story. Finally, business intelligence for the rest of us!

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Analytics: Introducing Wave, the Analytics
Cloud

New in Spring `15 Plus

How and When Mobile Features Become Available


Spring ’15 improves life for sales reps in the field. Streamline workflow with instant task creation from feed posts. Drive quicker decisions
with dashboard filters and easier access to reports. Improve sales productivity with the latest news about important accounts and a
visual assistant that coaches reps through your sales process. And that’s just scratching the surface.

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Salesforce1

Educate Users with Salesforce Adoption


Manager

See More Record Details on Object Home


Pages (Tablets Only)

See Full-Featured List Views (Tablets Only)

Visualize List View Details with Charts


(Tablets Only)

See More List Views (Phones Only)

Use Actions and the Action Bar in More


Places

15
Salesforce Spring ’15 Release Notes How and When Mobile Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Customize Recommendations in
Community Feeds (Beta)

Add Attachments Directly from the New


Post Page

See Multiple Record Updates Bundled into


One Post

Create Cases for Unanswered Questions in


Chatter (Generally Available)

Add Records to Chatter Groups (available


within 24 hours after the Spring ’15 release)

Post Announcements in Chatter Groups

View, Upload, and Delete Group Photos in


Chatter Groups

Find More Files with New Salesforce Files


Filters

Browse and Share External Files

Differentiate between Similar Quick Results

See More Details in Search Results (Tablets


Only)

Sort Search Results to Find the Right


Records Faster

Prevent Duplicate Records (Generally


Available)

See Google Map Images in Standard


Address Fields (available within 24 hours
after the Spring ’15 release)

Use Address Auto-Completion in Standard


Address Fields

See News about Accounts

Configure Access to Account News

Turn Importing Contacts from Mobile


Contact Lists On or Off

Increase Close Rates with the Sales Path

Set Up Sales Path

16
Salesforce Spring ’15 Release Notes How and When Mobile Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Convert Leads to Contacts (Beta)

Whisk through a Task List Even Faster on a


Tablet

Turn Posts into Tasks

Manage the Day Better with Even More Key


Information in Salesforce Today

Use Filters in Dashboards

Specify the Running User on Dynamic


Dashboards

Refresh Dashboards More Easily

View All Columns of Your Dashboard at the


Same Time (Tablets Only)

Quickly Access Report Charts (Tablets Only)

Access Recent Reports from the Navigation


Menu

See Fewer Report Rows for Better


Performance on the Go (iPhone 6 Plus Only)

See Promoted Terms and Highlights and


Snippets in Salesforce Knowledge Search
Results

View All Pending Approval Requests in One


Location

View All Paused Flow Interviews in One


Location

Receive In-App Notifications about Reports


(Generally Available)

Use Salesforce1 Offline Caching for Better


Online Performance

Changes to Salesforce1 Custom Branding

Other Changes in Salesforce1

Get Salesforce1 Notifications on the Apple


Watch

Use the Salesforce1 Mobile Browser App on


Windows 8.1 Tablets

17
Salesforce Spring ’15 Release Notes How and When Mobile Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Move Users Off Older iOS Mobile Devices
that Are No Longer Supported

See a Different Arrangment of Items in the


Default Salesforce1 Navigation Menu

Access Canvas Apps from the Navigation


Menu in the Downloadable App for Android
Devices

Open Most Salesforce URLs Directly in a


Salesforce1 Downloadable App

View Comments Faster on Tablets

Add or Remove Topics for Feed Posts

Control Visibility of Profile Pictures

See Groups Ordered by Activity in Group


List Views

See Member Profile Photos on Group


Member Lists

Join or Ask to Join Groups from the Group


Highlights Area

See More Relevant Search Results for People


and Groups

Search Group Feeds

Create Contacts More Quickly with


Auto-Populated Data from Call History

Access More Coaching Features

Get Updated Information in Today as


Needed

Do More Actions from Today

See Today Cards in Two Columns (Tablet


Only)

Weather Information No Longer Displayed


in Today

Additional Salesforce1 Information

Access the Salesforce1 App

18
Salesforce Spring ’15 Release Notes How and When Chatter Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Salesforce1 Differences from the Full
Salesforce Site

Salesforce1 App Development Overview

How and When Chatter Features Become Available


Spring ’15 enables you to report on Chatter activity in your organization, add records to groups, and create cases from Chatter Questions.
There are also several improvements to files, feeds, and unlisted groups functionality.

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Reporting

Report on Chatter Usage with the Salesforce


Chatter Dashboards Package

Groups

Allow Users to Add Records to Chatter


Groups

Group Posts Via Email Now Support


Non-Unique Email Addresses

Unlisted Group Enhancements

Files

New Salesforce Files Setup Node for Files


and Content

Files Support Record Types and Page


Layouts

New OS Support in Salesforce Files Sync

Sync Shared Files

Managed Version Pilot for Salesforce Files


Sync

Connect to Content in OneDrive for Business

Secure Agent Enhancements

Feeds

Manage Questions in Chatter with


Question-to-Case (Generally Available)

19
Salesforce Spring ’15 Release Notes How and When Communities Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Enhance the Feed with a New Task Action

Use Action Links to Take Action from Posts


(Generally Available)

Emoticons Added in the Feed

Other Chatter Changes

Moderate Chatter Private Messages with


Apex Triggers

More Preview Links

View Multiple Attachments on a Post

API Enhancements

Chatter REST API

ConnectApi (Chatter in Apex)

How and When Communities Features Become Available


Simplified community setup, improvements to the Community Management design, additional Community Builder functionality, and
more features in the Napili self-service community template are the highlights of the Communities enhancements in Spring ’15.

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Community Management

Administration Settings Moved from Setup


to Community Management

Updating Community Administration


Settings Requires Community Membership

Dynamic Navigation in Community


Management Displays Only Relevant
Community Settings

Change Your Community Template Directly


in Community Management

Moderate Flagged Files Directly in


Community Management

20
Salesforce Spring ’15 Release Notes How and When Communities Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Enable Community Members to Manage
Their Own Authentication Settings for
External Systems

Manage Topics in Communities

Translate Topic Names in Communities


(Beta)

Simplified Login and Self-Registration


Options

Create Person Accounts for Self-Registering


Users

Community Builder

Streamline Community Creation with the


Enhanced Wizard

Edit Your Pages in Community Builder

Preview Design Changes with Pop-Out


Preview

Navigate to Any Page within Your


Community

Match Your Colors and Styles Precisely with


Enhanced Branding

Update Your Template from Community


Builder

Community Templates

Prevent Spammers from Creating Cases

User Settings View Added in the Napili


Template

Napili Profile View Enhanced

Attach Files to Questions in Napili


Communities

Highlight Active Members on the Napili


Reputation Leaderboard

More Topics Functionality in the Napili


Template

Analytics

21
Salesforce Spring ’15 Release Notes How and When Sales Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Dashboard Updates for External Users with
Super User Access

Other Communities Changes

Get Questions Answered Quickly with


Question-to-Case (Generally Available)

Enable Community Members to Manage


Their Own Authentication Settings for
External Systems

Campaign Tab Support Added for Partner


Users

Community Welcome Email No Longer


Appends Usernames in the Footer

Add or Remove Topics from Posts

Accessibility Improvements Added for the


Koa, Kokua, and Napili Templates

How and When Sales Features Become Available


Spring ’15 makes it easier to manage duplicate records and guide reps through the sales process. And there’s more. The newly christened
Enterprise Territory Management includes key enhancements for tracking territories across companion objects, and with Collaborative
Forecasts, sales reps can now make their own adjustments. Email Connect, Salesforce for Outlook, and Activities also offer exciting new
capabilities.

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Data.com Duplicate Management

Manage Duplicate Records

Prevent Users from Saving Duplicates

Define the Logic Used to Identify Duplicates

Create Custom Report Types for Duplicate


Record Reports

Leads

Avoid Duplicate Contacts and Accounts


when Converting Leads

Sales Path

22
Salesforce Spring ’15 Release Notes How and When Sales Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Sales Reps Can Close Sales Faster with Sales
Path

Enterprise Territory Management

View Custom Territory Management Fields


in List Views and on Object Pages

Identify Users in Territories Assigned to an


Account

Manually Assign a Territory to an


Opportunity

Show Additional Territory Information on


Select Account Reports

Show Territory Information on Opportunity


Reports and List Views

Opportunities and Collaborative Forecasts

Adjust Your Own Forecast Amounts

Products

Products Now Have Field History Tracking

Email Connect

Sync Users’ Contacts and Events in the


Cloud (available within 24 hours after the
Spring ‘15 release)

Complement Exchange Sync Features with


the Salesforce Side Panel (available within
24 hours after the Spring ‘15 release)

Salesforce App for Outlook (Beta)

Salesforce for Outlook

Sync Recurring Salesforce Tasks to


Microsoft® Outlook®

Increase Your Teams’ Chances of Seeing


Relevant Contacts and Leads in the
Side Panel

Sales Teams Can Add Emails to Person


Accounts Based on the Teams’ Preferences

23
Salesforce Spring ’15 Release Notes How and When Work.com Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Add Emails to Multiple Salesforce Records
That Accept Tasks

Activities

Self assigned tasks don't generate a


notification

Reassign Recurring Task Owner for a Single


Task

Salesforce to Salesforce

New Email Templates and Tone for


Salesforce to Salesforce

Salesforce Console for Sales

Salesforce Console Enhancements

How and When Work.com Features Become Available


Spring ’15 enables you to use Thanks and Skills features for free, customize your coaching experience, and use more features in the Goals
pilot.

Feature Enabled for users Enabled for Requires Contact


administrators/ administrator Salesforce to
developers setup enable
Use Thanks and Skills for Free (available
within 24 hours after the Spring ’15 release)

Access All Work.com Features with the


Consolidated Add-On

Customize Coaching to Fit Your


Organization

Do More with Enhanced Goals (Pilot)

Other Changes in Work.com

Receive Detailed Error Messages for


Performance Cycle Deployments

Customize Page Layouts for Thanks Objects

Get More Out of Salesforce1

24
Salesforce Spring ’15 Release Notes How and When Data.com Features Become Available

How and When Data.com Features Become Available


Data.com is the solution for delivering leading business data inside Salesforce. The Data.com product suite includes Data.com Prospector
and Data.com Clean, as well as relatedData.comfeatures: Social Key, Data.com Reports, and Data.com Data Assessments.

Feature Enabled for users Enabled for Requires Contact


administrators/ administrator Salesforce to
developers setup enable
Data.com API

How and When Service Features Become Available


Spring ’15 includes ways to quickly turn emails and social media posts into cases. You can also track the support contracts your customers
have and the products they own, offer more Knowledge articles, and help your agents out with a new Console tab.

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Case Feed

Set Default Email Action Defaults with Apex

Use Macros in Case Feed to Work More


Efficiently

Use Shortcuts with Macros

View and Run Macros

Create and Edit Macros on page 174

Share Macros on page 175

Delete Macros on page 176

Entitlement Management

Milestone Countdown Timer Redesigned

Assets Object

Assets Object Redesigned as a Standard


Object

Add the Assets Tab to the Home Page

Sharing Rules Added to Assets Object

Asset Owner Field Added to Asset Records

Field History Tracking Supported on Asset


Records

Record Types Added to Asset Records

25
Salesforce Spring ’15 Release Notes How and When Service Features Become Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Knowledge

Linked Cases Related List on Articles

Updated Article Preview Page for Internal


Users

Canceling an Unsaved Draft of a Published


Article No Longer Saves the Draft

Send Article Content via Email (Beta)

Other Changes for Salesforce Knowledge

Salesforce CTI Toolkit

Retirement of Support for the Salesforce CTI


Toolkit

Open CTI

New Methods

Salesforce Console

New Methods for the Console Integration


Toolkit

Users Can Increase Productivity with New


Keyboard Shortcuts

Users Can Boost Console Performance by


Adopting New System Recommendations

Clone Console Apps

Users Can Access Several Console Features


Automatically (available within 24 hours
after the Spring ‘15 release)

Assign an Automatic Height and Width to


Stacked Components

Users Can Rearrange Console Tabs

Let Users Customize Navigation Tabs

Other Changes in the Salesforce


Console—for a Smart & Simple Console

Console Tab

Console Tab Removed from New


Organizations

26
Salesforce Spring ’15 Release Notes How and When Salesforce1 Reporting Features Become
Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Service Communities

Create Cases from Questions in Chatter with


Question-to-Case (Generally Available)

Social Customer Service

Social Customer Service Starter Pack

Improved Administration

Interact with Social Posts with New Case


Feed Actions

Respond to Leads in the Lead Feed with the


Social Action

Broad Listening Content from Blogs Forums


and Sites

Google+ Social Customer Service (Pilot)

Sina Weibo Social Customer Service (Pilot)

Business Continuity

Promote Business Continuity with


Organization Sync (Generally Available)

How and When Salesforce1 Reporting Features Become Available


Reporting enhancements give you even more ways to keep tabs on key metrics.

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Enabled for users developers setup enable
Subscribe to Receive Report Notifications
(Generally Available)

Increase the Session Security Level Required


to Export and Print Reports

The Reports and Dashboard Tabs Are


Protected from Clickjacking

Dashboard Wizard and API Create Correct


Relative URLs

27
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available

How and When Force.com Customization Features Become Available


Customization features enable you to expand your organization by enhancing your objects, data, and fields, customizing your organization’s
look and feel, augmenting your business processes, creating websites, and creating apps—all by using point-and-click tools and maybe
some code. Customization features also include tools to administer and secure your organization.

IN THIS SECTION:
General Administration
Data
Business Logic and Process Automation
Security and Identity
Sharing
Globalization
Critical Updates
Additional Customization

General Administration

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Actions Terminology Changed

Delegated Administrators Can Manage


Public Groups

Permission for Managing Custom


Permissions Changed

Create or Edit Records Owned by Inactive


Users

Search for Additional Items in Setup (Beta)

Availability of Compound Fields in Formula


Functions Changed

Standard Address Fields Show Google Maps

Limitations Changed for Geolocation Fields


(Generally Available)

Indexed Column Added to Lists of Fields in


Setup

28
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available

Data

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Enable Users to Manage Their Own
Authentication Settings for External Systems

Terminology Changed for Authentication


Settings for External Systems

Compress Requests to and Responses from


External Data Sources of Type “Lightning
Connect: OData 2.0”

SOQL Queries of External Objects Can


Include the COUNT() Aggregate Function

Rename Tabs and Labels for External


Objects

Text Clarified for External Data Sources

Retain Field History with Field Audit Trail


(Generally Available)

Manage Customer Data with Data Pipelines


(Pilot)

Business Logic and Process Automation

Enabled for
administrators/ Requires Contact Salesforce to
Feature developers administrator setup enable
Process Builder

Visually Automate Your Business Processes (Generally


Available)

Create Versions of a Process

Call an Apex Method from a Process

Trigger a Process Multiple Times in a Single


Transaction

Determine Whether Specific Fields Changed

Customize the Condition Logic in Process Builder

Create and Manage Processes More Efficiently

29
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available

Enabled for
administrators/ Requires Contact Salesforce to
Feature developers administrator setup enable
Spaces No Longer Required in Formula Functions

Create More Actions

Deploy Processes

Namespaced Organizations Supported

Navigate More Easily with Field Tooltips

Visual Workflow

Let Users Pause Flow Interviews

Control Which Users Can Pause Flows

Debug Paused and Resumed Interviews

Customize the Condition Logic in Flows

Create a Dynamic Label for Flow Interviews

Give Flows Access to Apex Classes More Easily

Trigger-Ready Flows Renamed to Autolaunched


Flows

Identify a Flow’s Type

Get More Information about Waiting Interviews

Reference the ID of a Chatter Post That a Flow


Created

Reference Information from an Approval Request


That a Flow Submitted

Assign an Event’s Outputs to Flow Variables

Change in Activation Date for “Enable governor limits


on all executed flows” Critical Update

Add Decision and Wait Elements to Flows without


Configuring Default Connectors

Debug Flow Elements That Were Deferred at Runtime

Use Date/Time Fields on Additional Objects to Create


a Time-Based Flow

Monitor a Flow’s Type Instead of Run


Restrictions

30
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available

Security and Identity

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Authentication

Configure a Google Authentication Provider

Set Up an Authentication Provider Using


Salesforce-Managed Values

Customize SAML Just-in-Time User


Provisioning with an Apex Class

Use Multiple Callback URLs for Connected


Apps

Improve Security with Session Domain


Locking

Edit Authorize, Token, and User Info


Endpoints for Facebook Auth. Provider

Get Authentication Configuration Settings


for a Custom Domain or Community from
a URL

Create Named Credentials to Define Callout


Endpoints and Their Authentication Settings

Track Login History by ID with Session


Context

Track Data Loader Logins with Login History

Sign SAML Single Sign-On Requests with


RSA-SHA256

Choose the Logout Page for Social Sign-On


Users

Provide Code Challenge and Verifier Values


for OAuth 2.0 Web Server Flow

OAuth 2.0 Username-Password Flow Error


Messages Changed

Identity

Provision Users in Third-Party Applications


Using Connected Apps (Beta)

Administration

31
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Monitor Up to 180 Days of Identity Provider
Events in Log

Control Individual API Client Access to Your


Salesforce Organization

Monitor Your Users’ Login and Logout


Activity (Generally Available)

Legitimize User Activity using Login


Forensics (PILOT)

Clickjack Protection Enabled for Salesforce1


Reporting

Clickjack Label Changed in Session Settings

Sharing

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Manager Groups Available in All
Organizations

Asynchronous Deletion of Obsolete Shares


(Pilot)

Globalization

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Supported Languages Changed and Added

Critical Updates

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Submit More Batch Jobs with Apex Flex
Queue (Generally Available)

32
Salesforce Spring ’15 Release Notes How and When Force.com Development Features Become
Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
String Methods Fixed for Escaping
Additional Characters

Predictable Iteration Order for Unordered


Collections

Change in Activation Date for “Serve Static


Resources from the Visualforce Domain”
Critical Update

Additional Customization

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Flexible Pages Renamed as Lightning Pages

Cross-Object References Increased for Quick


Action Predefined Field Values

Label for Some Quick Actions Changed

Inactive Latvian Currency Removed

How and When Force.com Development Features Become Available


Force.com helps you develop new applications and integrations to help your organization or for resale to other organizations.

IN THIS SECTION:
Change Sets and Deployment
Visualforce
Apex Code
Lightning Components
API
ISVForce
Other Changes in Force.com Development

33
Salesforce Spring ’15 Release Notes How and When Force.com Development Features Become
Available

Change Sets and Deployment

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
New Components Available for Change Sets

Deploy Your Components in Less Time


(Generally Available)

Deploy and Retrieve More Components

Delete Components before and after


Component Updates

Change Sandbox Type When Refreshing

Visualforce

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Visualforce Development

Use Visualforce Map Components to Show


Location Data More Clearly

Other Changes in Visualforce

New Attributes for <flow:interview>

Change in Parameter Values for


sforce.one.navigateToRelatedList()

Change in Attribute Defaults for


<apex:page> When in Salesforce1

URLs Returned by the URLFOR Function


Optimized for Attachments

Change in Activation Date for “Serve Static


Resources from the Visualforce Domain”
Critical Update

34
Salesforce Spring ’15 Release Notes How and When Force.com Development Features Become
Available

Apex Code

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Submit More Batch Jobs with Apex Flex
Queue (Generally Available)

Make Long-Running Callouts from a


Visualforce Page

Set Up Test Data for an Entire Test Class

Chain More Jobs with Queueable Apex

Access Address and Geolocation Compound


Fields Using Apex

Make Apex Callouts with More Data

List Apex Classes and Triggers With a


Tooling API Endpoint

Simplify Authenticated Apex Callouts by


Specifying Named Credentials as Endpoints

Check Data Isolation Mode for Executed


Tests in the Apex SOAP API

String Methods Fixed for Escaping


Additional Characters

Predictable Iteration Order for Unordered


Collections

New and Changed Apex Classes

ConnectApi (Chatter in Apex)

Lightning Components

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Lightning Components Development

New Components

New Events

Other Changes in Lightning Components

Case Sensitivity

35
Salesforce Spring ’15 Release Notes How and When Force.com Development Features Become
Available

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Authoring Support Added in More Editions

Namespace Requirement Removed

Support Added for Default Namespace

Extend Lightning Components and Apps

Referential Integrity Validation Added

Support for Lightning Components in the


Lightning App Builder and Lightning Pages

Load External CSS or JavaScript Libraries

API

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
New Objects

Changed Objects

APIs

REST API

SOAP API

Chatter REST API

Data.com API

Publisher.js API

Streaming API

Bulk API

Tooling API

Metadata API

Salesforce Console API (Integration Toolkit)

Open CTI API

Invocable Actions

36
Salesforce Spring ’15 Release Notes Salesforce Overall: Better Search, Duplicate Management,
and More

ISVForce

Enabled for Requires Contact


administrators/ administrator Salesforce to
Feature Visible to users developers setup enable
Save Time with Default SSO When
Connecting an Organization to the
Environment Hub

Keep Track of Member Organizations with


Descriptions in Environment Hub

Streamline Managed Packages by Deleting


Unused Components

Package Named Credentials

Other Changes in Force.com Development

Feature Automatically Automatically Not automatically Contact


visible to all visible to all visible. Feature is Salesforce to
users. No setup administrators. available but enable this
required. No setup requires some feature.
required. setup.
Develop Deployable Custom Metadata
Types (Pilot)

Salesforce Overall: Better Search, Duplicate Management, and More


Spring ’15 improves your overall Salesforce experience with better searching, more ways to handle duplicate records, more detailed
person accounts, and tighter email security. The release notes are easier to use too.

IN THIS SECTION:
Release Notes Usability Improvements
We’ve also added filters to the release notes so you can focus on just the news you need. But that’s not all! We’ve reorganized things
to help you find information faster and given the HTML release notes a face-lift.
Supported Browsers
Learn about the browsers we support for the full Salesforce site.
Get Faster and More Relevant Search Results (Generally Available)
We’ve updated the search engine, bringing you faster, smarter search and more relevant results throughout Salesforce, including
global search, sidebar search, and advanced search in the full Salesforce site, Salesforce1, and your custom search implementations
that use the SOSL search API.

37
Salesforce Spring ’15 Release Notes Release Notes Usability Improvements

Duplicate Alerts and Blocking (Generally Available)


Now you can maintain clean and accurate data with Data.com Duplicate Management. Control whether and when you allow users
to create duplicate records inside Salesforce, customize the logic that’s used to identify duplicates, and create reports on the duplicates
you do allow users to save.
Import Accounts and Contacts with Ease
Available to new and trial organizations deployed on and after December 17, 2014 and coming soon to all other organizations,
choose from popular data sources to quickly and easily get your accounts and contacts into Salesforce.
Middle Name and Suffix Fields for Person Objects (Generally Available)
Better represent the name of a person associated with a record by adding Middle Name and Suffix fields in person objects. Using
these fields also helps to avoid confusion when two records have the same first and last names.
DKIM Signing Outbound Email
Use the DomainKeys Identified Mail (DKIM) key feature to enable Salesforce to sign outbound emails sent on your organization’s
behalf. A valid signature provides recipients confidence that the email was handled by a third party such as Salesforce in a way
authorized by your organization.
Email IP Ranges Updated
The IP ranges that Salesforce uses to send email have changed. If your organization blocks any of the IP addresses, users may not
receive all email sent from Salesforce. Update your whitelisted IP addresses.
Email Size Limits Corrected
The maximum size for an email, including body and attachments, has increased to 25 MB.
Improve Security with Changes to Image Support in the Rich Text Editor
From now on, the rich text editor only accepts image URLs that use the http://, https://, or data:// protocols. This
change enhances the security of the rich text editor.

SEE ALSO:
How and When General Enhancements Become Available

Release Notes Usability Improvements


We’ve also added filters to the release notes so you can focus on just the news you need. But that’s not all! We’ve reorganized things to
help you find information faster and given the HTML release notes a face-lift.

IN THIS SECTION:
Focus on the Right Information with Release Note Filters (Beta)
Filters help you zero in on the news that matters most. Instead of scrolling through screen after screen, now you can get right to the
release notes that affect you. These filters narrow down the list of release notes on the right side of your screen, never the content
on the left. If you’re more a fan of search than browsing, use these filters to further narrow down your search results.
Find Information Faster
The release notes’ new format balances the big picture with the specific changes that affect your organization, so it’s easier to find
the news you need with fewer clicks.
Visual Enhancements to the HTML Release Notes
We’ve made a few changes to the HTML release notes. Among those changes are an updated look-and-feel and the ability to change
the language that you’re reading in.

38
Salesforce Spring ’15 Release Notes Release Notes Usability Improvements

Focus on the Right Information with Release Note Filters (Beta)


Filters help you zero in on the news that matters most. Instead of scrolling through screen after screen, now you can get right to the
release notes that affect you. These filters narrow down the list of release notes on the right side of your screen, never the content on
the left. If you’re more a fan of search than browsing, use these filters to further narrow down your search results.

Note: Release notes filters are a beta feature and are only available in the English version of the HTML release notes. If you have
feedback on the available filters, let us know.
Edition
Which of the feature enhancements for Spring ’15 are available to you depends on your edition. Narrow down the list of release
notes so it shows only enhancements that are available in your edition.
Feature Impact
Every release includes some features that you need to turn on or configure before users can start getting the benefits. As an
administrator, you can now filter the release notes to focus on, or hide, just those features. Or maybe you want to see only the features
that are enabled for your users automatically.
Product Area
Narrow down the list of release notes to see only the products that your organization uses. If your organization does sales but not
support, set up your release notes so that only the sales-related news appears.
To narrow down the list of release notes, click Show Filters on the right side of the screen.

Example: Your Professional Edition organization uses Sales Cloud, Chatter, and Analytics Cloud. First you want to see all relevant
release notes that your users will have immediate access to when Spring ’15 is released. Do just that with these filters.

39
Salesforce Spring ’15 Release Notes Release Notes Usability Improvements

Once you’ve selected filters, you can share your narrowed-down list of release notes with anyone. Simply copy the URL after you select
filters, and then distribute that URL however you want. The corresponding URL for the previous example is:
http://releasenotes.docs.salesforce.com/en-us/spring15/release-notes/salesforce_release_notes.htm?
edition=pe&impact=autouser&cloud%5B%5D=analytics&cloud%5B%5D=chatter&cloud%5B%5D=sales

Find Information Faster


The release notes’ new format balances the big picture with the specific changes that affect your organization, so it’s easier to find the
news you need with fewer clicks.
• A summary of the whole Spring ’15 release, organized by application area, now appears at the top of the release notes. On the web,
it’s the first page you see; in the PDF, it immediately follows the table of contents. You can drill down from here to get as deep into
the details as you want to.
• A high-level summary of changes now appears as an introduction to each application area. Take in the basic facts at a glance, or
click through to the detailed information you need.

Visual Enhancements to the HTML Release Notes


We’ve made a few changes to the HTML release notes. Among those changes are an updated look-and-feel and the ability to change
the language that you’re reading in.
Updated Skin
We updated the HTML release notes to reflect our updated look.
Relocated and Contextualized the List of Release Notes
We moved the list of release notes from the left side of the screen to the right, so you can focus on the content of the release notes.
Because the list of release notes is contained in a smaller box, you always know where in the list you are. The release note that you’re
currently viewing is always visible; more often than not, it’s at the top of the list.

40
Salesforce Spring ’15 Release Notes Supported Browsers

Select the Language You Want to Read


By default, your browser’s language settings determine the language we show you in the HTML release notes. Now you can easily
change the language that you’re viewing the release notes in. Scroll to the footer at the bottom of the page, click Change Language,
and select a language.
Before Spring ’15, the only way to view the release notes in a different language was to manually change the language key in the
URL. For example, if you were viewing the release notes in German and wanted to view them in English, you’d change de-de in
the URL to en-us.

Supported Browsers
Learn about the browsers we support for the full Salesforce site.

Important: Beginning Summer ’15, we’ll discontinue support for Microsoft® Internet Explorer® versions 7 and 8. For these versions,
this means that some functions may no longer work after this date. Salesforce Customer Support will not investigate issues related
to Internet Explorer 7 and 8 after this date.
Accessing the full site in any mobile browser isn’t supported. Instead, we recommend using the Salesforce1 app when you’re
working on a mobile device. To see the mobile browsers that are supported for Salesforce1, check out “Requirements for Using
the Salesforce1 App” in the Salesforce Help.

Browser Comments
Microsoft® Internet Explorer® versions 7, 8, 9, 10, If you use Internet Explorer, we recommend using the latest version that Salesforce
and 11 supports. Apply all Microsoft software updates. Note these restrictions.
• The full Salesforce site is not supported in Internet Explorer on touch-enabled
devices for Windows. Use the Salesforce1 mobile browser app instead.
• The Salesforce1 Setup page and the Salesforce1 Wizard require Internet Explorer
9 or later.

41
Salesforce Spring ’15 Release Notes Supported Browsers

Browser Comments
• The HTML solution editor in Internet Explorer 11 is not supported in Salesforce
Knowledge.
• The Compatibility View feature in Internet Explorer isn’t supported.
• The Metro version of Internet Explorer 10 isn’t supported.
• Internet Explorer 6 and 7 aren’t supported for login hints for multiple accounts.
• Internet Explorer 7 and 8 aren’t supported for the Data Import Wizard.
• Internet Explorer 7, 8, and 11 aren’t supported for the Developer Console.
• Internet Explorer 7 isn’t supported for Open CTI.
• Internet Explorer 7 and 11 aren’t supported for Salesforce CRM Call Center built
with CTI Toolkit version 4.0 or higher.
• Internet Explorer 7 isn’t supported for Force.com Canvas.
• Internet Explorer 7 isn’t supported for Salesforce console features that require
more advanced browser performance and recent Web technologies. The console
features not available in Internet Explorer 7 include:
– The Most Recent Tabs component
– Multiple custom console components on sidebars
– Vertical auto-sizing for stacked console components in sidebars
– Font and font color for console components’ Button CSS
– Multi-monitor components
– The resizable highlights panel
– The full-width feed option on feed-based page layouts

• Internet Explorer 7 and 8 aren’t supported for Community Templates for


Self-Service.
• Internet Explorer 7 and 8 have performance issues when Multi-Line Edit in
Opportunity Splits is used.
• Community Templates for Self-Service supports Internet Explorer 9 and above
for desktop users and Internet Explorer 11 and above for mobile users.
• Internet Explorer 7, 8, and 9 aren’t supported for Salesforce Analytics Cloud.
For configuration recommendations, see “Configuring Internet Explorer” in the
Salesforce Help.

Mozilla® Firefox®, most recent stable version Salesforce makes every effort to test and support the most recent version of Firefox.
• Mozilla Firefox is supported for desktop users only for Community Templates
for Self-Service.
For configuration recommendations, see “Configuring Firefox” in the Salesforce
Help.

Google Chrome™, most recent stable version Google Chrome applies updates automatically; Salesforce makes every effort to test
and support the most recent version. There are no configuration recommendations
for Chrome. Chrome isn’t supported for the Add Google Doc to Salesforce browser
button or the Console tab (the Salesforce console is supported).

42
Salesforce Spring ’15 Release Notes Supported Browsers

Browser Comments
Apple® Safari® versions 5.x and 6.x on Mac OS X There are no configuration recommendations for Safari. Apple Safari on iOS isn’t
supported for the full Salesforce site.
• Safari isn’t supported for the Salesforce console.
• Safari isn’t supported for Salesforce CRM Call Center built with CTI Toolkit versions
below 4.0.
• Safari isn’t supported for Salesforce Analytics Cloud.

Recommendations and Requirements for All Browsers


• For all browsers, you must enable JavaScript, cookies, and TLS 1.0.
• Salesforce recommends a minimum screen resolution of 1024 x 768 for the best possible user experience. Screen resolutions smaller
than 1024 x 768 may not display Salesforce features such as Report Builder and Page Layout Editor properly.
• For Mac OS users on Apple Safari or Google Chrome, make sure the system setting Show scroll bars is set to Always.
• Some third-party Web browser plug-ins and extensions can interfere with the functionality of Chatter. If you experience malfunctions
or inconsistent behavior with Chatter, disable all of the Web browser's plug-ins and extensions and try again.
Certain features in Salesforce—as well as some desktop clients, toolkits, and adapters—have their own browser requirements. For
example:
• Internet Explorer is the only supported browser for:
– Standard mail merge
– Installing Salesforce Classic on a Windows Mobile device
– Connect Offline

• Firefox is recommended for the enhanced page layout editor.


• Chrome, with machines with 8 GB of RAM, is recommend for the Salesforce console.
• Browser requirements also apply for uploading multiple files on Chatter.

Discontinued or Limited Browser Support


As of Summer ’12, Salesforce discontinued support for Microsoft® Internet Explorer® 6. Existing features that have previously worked in
this browser may continue to work through 2014. Note these support restrictions.
• Internet Explorer 6 isn’t supported for:
– Answers
– Chatter
– Chatter Answers
– Cloud Scheduler
– Enhanced dashboard charting options
– Enhanced profile user interface
– Forecasts
– Global search
– Joined reports

43
Salesforce Spring ’15 Release Notes Get Faster and More Relevant Search Results (Generally
Available)

– Live Agent
– Quote Template Editor
– Salesforce console
– Salesforce Knowledge
– Schema Builder
– Site.com
– Enterprise Territory Management
– The new user interface theme

Internet Explorer 7 isn’t supported for Site.com and Chatter Messenger.

Get Faster and More Relevant Search Results (Generally Available)


We’ve updated the search engine, bringing you faster, smarter search and more relevant results
EDITIONS
throughout Salesforce, including global search, sidebar search, and advanced search in the full
Salesforce site, Salesforce1, and your custom search implementations that use the SOSL search API. Available in all editions
In the Winter ’15 release, Salesforce Knowledge article search was updated with the new search
infrastructure. In Spring ’15, we’re expanding this search infrastructure to all Salesforce search
utilities. This expanded enhancement was previously available only through a pilot program.
These improvements and new search capabilities are available on a rolling basis after Spring ’15 is released, and before the Summer ’15
release is rolled out.
Faster indexing
It now takes less time for records to be searchable after they’re created or updated.
Improved tokenization
A key enhancement of the new search infrastructure is the change from bigram tokenization to morphological tokenization. When
users search, the search engine returns results based on tokens in the search string that match tokens in the index. With improved
tokenization, content is indexed more appropriately, resulting in fewer irrelevant matches in search results.
Morphological tokenization ensures that searches in East Asian languages such as Chinese, Japanese, Korean, and Thai (CJKT), which
don’t include spaces between words, return accurate search results. Previously, when indexing a string of characters, the search
engine applied bigram tokenization to segment the string into pairs of characters, known as bigrams.
For example, before Spring ’15, a search for 京都 (Kyoto) in Japanese incorrectly included 東京都 (Tokyo Prefecture) in the search
results.
Using bigramming, 東京都 (Tokyo Prefecture) was tokenized as these bigrams.

東京 京都
Tokyo Kyoto

With morphological tokenization, the same phrase is properly segmented into these tokens.

東京 都
Tokyo Prefecture

In this context, both tokens are meaningful and correct, and 京都 (Kyoto) isn’t tokenized.

44
Salesforce Spring ’15 Release Notes Get Faster and More Relevant Search Results (Generally
Available)

Now, a search for 京都 (Kyoto) returns only results that include 京都 (Kyoto) and not 東京都 (Tokyo Prefecture).

Important: If you use CJKT languages, we recommend running business scenarios in your sandbox environment to ensure
that your integrations that rely on SOSL continue to work as expected after the upgrade.
Limitation with Japanese language users querying records that are tokenized as Chinese
If a record contains at least 300 characters and contains Kanji only (no Katakana or Hiragana), the content is tokenized as Chinese.
Therefore, a Japanese language user searching for this record doesn’t find it in search results. Kanji-only records with fewer than 300
characters are tokenized in Chinese and Japanese.
Improved alphanumeric search
Thanks to more efficient handling of punctuation, we’ve improved search results when you search for specialized strings such as
URLs, email addresses, and phone numbers. Punctuation symbols—<>[]{}()!,.;:"'— at the beginning or end of a tokenized
string are removed from indexed content and from users’ searches. Removing these characters makes it easier for the search engine
to recognize when a user is searching for a phone number, as in this example: (415) is tokenized as 415.
Previously, if a user searched for きっと、来る in Japanese, the punctuation caused this matching string to be excluded from
search results: きっと来る. Now, the same string results in a match.
Words that contain both letters and numbers are split into separate tokens. For example, web2lead is broken up into these tokens:
web2lead, web2, web, 2, and lead. A search for web matches items that contain web2lead; however, a search for web2lead only
returns results that include the full term, web2lead.
Previously, a search for web2lead returned matches with web, 2, and lead, even if those terms were in separate places within the
item.
As another example, a record name that includes letters, numbers, and punctuation is broken up into several tokens.

Record Name Indexed Tokens


ABC-Record-XYZ1234 ABC-Record-XYZ1234
ABCRecordXYZ1234
ABC
Record
1234
XYZ1234
XYZ

A search for any of these indexed tokens returns the record ABC-Record-XYZ1234.
Further, when you search for an exact match, using either quotation marks (“”) or sidebar search, special characters are treated as
part of the search term to help you find the record that you’re looking for. For example, if you search for 100!%, we match only
100!%. We don’t match items with 100%.
Before Spring ’15, if you searched for an exact match for 100!%, we matched items with 100 or 100%.
Improved validation of the AND NOT operator
In searches that don’t include a word before and after the AND NOT operator, “and” and “not” are included in the search term. For
example, a search for AND NOT apples returns items with the word apples, while a search for oranges AND NOT apples
doesn’t return items with the word apples.
For more information about searching on the new search infrastructure, see “How Search Works” in the Salesforce Help.

45
Salesforce Spring ’15 Release Notes Duplicate Alerts and Blocking (Generally Available)

Duplicate Alerts and Blocking (Generally Available)


Now you can maintain clean and accurate data with Data.com Duplicate Management. Control
EDITIONS
whether and when you allow users to create duplicate records inside Salesforce, customize the
logic that’s used to identify duplicates, and create reports on the duplicates you do allow users to Available in:
save. • Professional
• Enterprise
Note: Duplicate Management uses Data.com technology, but does not require a Data.com
• Performance
license.
• Unlimited
For more information about how Data.com Duplicate Management works and setup instructions, • Developer
see Duplicate Management (Generally Available) on page 146.

Import Accounts and Contacts with Ease


Available to new and trial organizations deployed on and after December 17, 2014 and coming soon to all other organizations, choose
from popular data sources to quickly and easily get your accounts and contacts into Salesforce.
We’ve given new life to the Import My Accounts & Contacts wizard, which makes it even easier to get accounts and contacts from the
data sources that matter to you into Salesforce. If you have a new Salesforce organization, you can get to the wizard from the Accounts
and Contacts tabs in Salesforce. Or, just click Your Name > My Settings > Import > Import My Accounts & Contacts, and then start
the import wizard. Choose from any of these sources.

46
Salesforce Spring ’15 Release Notes Import Accounts and Contacts with Ease

While your import job is underway, feel free to start more imports from other sources. Or, just close the import window and work on
other things. You’ll receive an email for each import job after the process finishes.

Prepare and Work with Your Data


Before you begin your import jobs, make sure that the account and contact data from your sources is the way you want it. Otherwise,
you may start out with erroneous or duplicate data in Salesforce.
As you work in the import wizard, you select your data sources and files from which you want to import. If some of your source data
doesn’t fit neatly into Salesforce, you may need to map some fields from your data sources so that the data in those fields import into
the Salesforce fields you want. For example, your data source includes the field Office Email, but you want it to map to the field
Email in Salesforce.

Import Accounts and Contacts from Some of Your Favorite Sources


Learn specific details about our available data sources.

For You’ll Details you should know


Gmail™ Connect directly to Gmail After you establish a connection between Gmail and Salesforce, the
import wizard imports your accounts and contacts. You don’t need to
map any fields. Quick and easy.

• LinkedIn® professional Create comma-separated The import wizard automatically maps fields from these data sources
networking services values (CSV) files to Salesforce, which simplifies the import process for you.

• Act!™
• Outlook®

47
Salesforce Spring ’15 Release Notes Middle Name and Suffix Fields for Person Objects (Generally
Available)

For You’ll Details you should know


All other available data sources Create CSV files The import wizard maps the fields that it can, and requires you to map
the fields it can’t.

Middle Name and Suffix Fields for Person Objects (Generally Available)
Better represent the name of a person associated with a record by adding Middle Name and Suffix
EDITIONS
fields in person objects. Using these fields also helps to avoid confusion when two records have
the same first and last names. Available in all editions
In Spring ‘14, we added middle name and suffix fields as a beta feature. In Spring ‘15, we’ve enhanced
this feature and made it available to everyone.

IN THIS SECTION:
Turn on Middle Name and Suffix Fields
The Middle Name and Suffix fields are available for the following person objects: Contact, Lead, Person Account, and User. You need
to do a few things before you can use them.
Middle Name and Suffix Limitations
There are some things about these fields that you’ll want to know.

Turn on Middle Name and Suffix Fields


The Middle Name and Suffix fields are available for the following person objects: Contact, Lead,
USER PERMISSIONS
Person Account, and User. You need to do a few things before you can use them.
To show the Middle
Important: You'll also need to turn on enhanced lookups to make middle names and suffixes
Name and Suffix fields
searchable in lookup fields.
• “Customize Application”
1. Contact Salesforce Customer Support to enable the new fields.
2. Click Setup > Customize > User Interface.
3. In the Name Settings section, select Enable Middle Names for Person Names and Enable Name Suffixes for Person Names.
4. Click Save.

Middle Name and Suffix Limitations


There are some things about these fields that you’ll want to know.
Keep in mind that middle names and suffixes:
• Don’t appear in campaigns, campaign member lists, or Data.com records. They also don’t appear for Salesforce users, like when
Salesforce displays names for users who last edited records.
• Are searchable in lookup fields when enhanced lookup is turned on.

48
Salesforce Spring ’15 Release Notes DKIM Signing Outbound Email

DKIM Signing Outbound Email


Use the DomainKeys Identified Mail (DKIM) key feature to enable Salesforce to sign outbound emails
EDITIONS
sent on your organization’s behalf. A valid signature provides recipients confidence that the email
was handled by a third party such as Salesforce in a way authorized by your organization. Available in:
When you create a DKIM key, Salesforce generates a public and private key pair. You must publish • Enterprise
the public key in the DNS, which tells recipients that you, as the owner of the domain, have • Unlimited
authorized the use of this key to sign your mail. Salesforce uses the private key to create DKIM • Developer
signature headers on your outgoing email. Then, recipients of the mail, can compare the signature
header with the public key in the DNS to determine that the mail was signed with an authorized USER PERMISSIONS
key. If your domain also publishes a Domain-based Message Authentication, Reporting and
Conformance (DMARC) policy, recipients can use the DKIM signature to verify that the mail conforms To Manage DKIM Key
to DMARC. • Customize Application

The EmailDomainKey object consists of these fields.


• Domain—The organization’s domain name that the DKIM key is generated for.
• DomainMatch—The specificity of match required on the sending domain name before signing with this DKIM key. Valid values
are:
– DomainOnly
– SubdomainsOnly
– DomainAndSubdomains

• IsActive—Indicates whether this DKIM key is active (true) or not (false).


• PrivateKey—The private portion of the DKIM key pair used to encrypt mail headers from your domain. Salesforce generates an
encrypted PrivateKey if you don’t specify a value when creating the DKIM key. If you do specify a value, it must be an existing
valid PrivateKey from another EmailDomainKey object.
This field doesn’t contain the actual private key, but a value that represents the key in our system. Therefore:
– The actual private key can’t be leaked.
– You can’t use the value to do your own email signing.

• PublicKey—Part of the domain key pair that mail recipients retrieve to decrypt the DKIM header and verify your domain. Add
the PublicKey value to your domain’s DNS records before you start signing with this domain key. Otherwise, mail recipients
may reject your email.
• Selector—Text used to distinguish the DKIM key from any other DKIM keys your organization uses for the specified domain.
For each domain key you create, we recommend this sequence:
1. Insert the Domain, DomainMatch, and Selector.
2. Update your domain’s DNS records.
a. Locate the DNS record at selector._domainkey.domain. For example, mail._domainkey.mail.example.com.
b. Add the PublicKey value, like this: V=DKIM1; p=public_key.
DKIM Signing Outbound Email
a. In addition, you can optionally put the record in testing mode, which instructs recipients to not make decisions based on the
email signature. Add parameter t=y to the DNS entry, like this: V=DKIM1; t=y; p=public_key.

3. Update the key via the API or UI to be active.


Consider the following when using domain keys.

49
Salesforce Spring ’15 Release Notes Email IP Ranges Updated

• Make sure you add the public key to your DNS record before you make your key active in Salesforce and start DKIM signing. DKIM
signing is active whenever your DKIM key is in the active state.
• You can’t have more than one active DKIM key per domain name. You might have multiple active DKIM keys if your organization
mails from more than a single domain or if you use subdomains under your organizational domain and have specified domain
matching at the subdomain level.
• If you want to use the same DKIM key for multiple organizations, you can. Create the key and ensure it’s working for one organization
first. Then using the API or UI create the key in your other organizations by setting the corresponding fields in the new key to the
same values as the original.
• When you insert or update a DKIM key, it’s possible that the change affects existing domain keys. For example, if you’ve set
DomainMatch to DomainAndSubdomains for the example.com domain, and you then set DomainMatch to
SubdomainsOnly for the mail.example.com domain, either key could be used. Here’s how we resolve conflicts in the case when
DKIM keys overlap.
– If two keys are equally specific about matching for the same domain, the new key replaces and deactivates the existing key.
– If a new key is more specific about matching than an existing key, the new key is used and the existing key is modified to inactive.
– If multiple keys have different domains that match the sending domain, the key with the longest domain name is used. In case
of a tie, the most specific key is used. For example, because DomainOnly and SubdomainsOnly are more specific than
DomainAndSubdomains, a new DomainOnly key would change the DomainMatch for an existing
DomainAndSubdomains key to become SubdomainsOnly. In case of a tie, the most specific key is used.

Email IP Ranges Updated


The IP ranges that Salesforce uses to send email have changed. If your organization blocks any of
EDITIONS
the IP addresses, users may not receive all email sent from Salesforce. Update your whitelisted IP
addresses. Available in:
The new IP ranges are: • Enterprise
• Unlimited
• 96.43.144.64 to 96.43.144.65 • Developer
• 96.43.147.64 to 96.43.147.79
• 96.43.148.64 to 96.43.148.65
• 96.43.151.64 to 96.43.151.79
• 136.146.128.64 to 136.146.128.79
• 182.50.78.64 to 182.50.78.79
• 204.14.232.64 to 204.14.232.79
• 204.14.234.64 to 204.14.234.79

Email Size Limits Corrected


The maximum size for an email, including body and attachments, has increased to 25 MB.
EDITIONS

Available in:
• Enterprise
• Unlimited
• Developer

50
Salesforce Spring ’15 Release Notes Improve Security with Changes to Image Support in the Rich
Text Editor

Improve Security with Changes to Image Support in the Rich Text Editor
From now on, the rich text editor only accepts image URLs that use the http://, https://,
EDITIONS
or data:// protocols. This change enhances the security of the rich text editor.
When you work with images in the rich text editor, a URL starting with http:// produces a Available in all editions
warning about insecure content. To avoid this warning, simply use https:// instead.

Analytics: Introducing Wave, the Analytics Cloud


The Salesforce Analytics Cloud is designed for everyone. Whether you’re a business user, analyst,
EDITIONS
or developer, Analytics Cloud enables you to access any data, get answers to any questions, and
act immediately. Now anyone can access powerful insights and let the data tell a story. Finally, Available for an additional
business intelligence for the rest of us! cost in: Enterprise,
Performance, and
Attention: Wave, the Analytics Cloud releases an update between major releases. Customers
Unlimited Editions
will see new features and enhancements as part of the new “Spring ’15 Plus” release. See New
in Spring `15 Plus for details.
Bring in All Your Data
Your data lives everywhere: Salesforce, data warehouses, CRM and ERP systems, log files, CSV files, and more. Analytics Cloud makes
integration with your Salesforce data, as well as any other data source, simple and seamless.
Let Your Data Tell Its Story
Valuable insights are already in your data—you just need to find them. Explore and ask questions through rich, interactive visualizations.
Find answers you didn’t even know you were looking for.
Drive Action Through Your Discoveries
The purpose of analysis is action. Easily share your findings and collaborate across your team and organization through dashboards,
Chatter, and the iOS mobile app.
Move Fast, Maintain Control
Salesforce Analytics is native to the cloud and built on the Wave platform. You can design custom analytic apps and deploy them
to users in a fraction of the time of traditional business intelligence implementations, all while ensuring the highest levels of security
and easy administration.

51
Salesforce Spring ’15 Release Notes Analytics: Introducing Wave, the Analytics Cloud

IN THIS SECTION:
New in Spring `15 Plus
Wave, the Analytics Cloud releases an update between major releases. Customers will see new features and enhancements as part
of the new “Spring ’15 Plus” release.
Find the Value in Your Data
Now everyone can have a conversation with data through interactive visualizations. Salesforce Analytics rewards your curiosity with
fast, responsive answers. Exploring any type and combination of data is now fun, easy, and powerful.
Explore Data Anywhere with Salesforce Analytics for iOS
Insights are not and should not be restricted to the desktop. With the mobile-first Analytics Cloud, you can explore all types of data
from your mobile device. Check in on this quarter’s customer cases, track progress toward sales goals, and instantly share learnings
with your team. No matter where you are, collaborate and share insights with colleagues and know your customers like never before.
Visualize Rich Data in Your Web Browser
A dashboard is a collection of lenses that interact with each other. Drill into one and watch the others change to help you shape the
questions you're asking. Don't just look at the visuals; use the tools on the dashboard to dive deeper into the data you care about.
Go ahead, click around and explore!
Explore Data with Powerful Visualization Tools
Get to know the boundaries and shape of your data. Use explorer’s interactive visualization tools to play with different views, zoom
in and zoom out, and see what you get with different charting options.
Build Powerful Queries Using SAQL (Pilot)
Use the Salesforce Analytics Query Language (SAQL) to make sure that your lenses return exactly the data you’re looking for. SAQL
is a real-time query language that enables ad hoc analysis of data that’s stored in datasets.

52
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Dashboards Help Users Help Themselves


A dashboard is your vehicle for telling a specific, focused story about data -- a story that people can learn from and act on. Dashboards
help engage team members in active discussion and collaboration around your data, regardless of where they are. When you share
Analytics Cloud data via a dashboard, you set up end users to explore on their own, without turning them loose on the whole dataset.
Integrate Data from Anywhere
In your business, you have data everywhere: warehouses, spreadsheets, logs, and in Salesforce. With Analytics Cloud, it’s easy to
integrate data from any of these sources, including external data such as SAP or Oracle data, mobile app data, or product sensor
data.
Get Analytics Up and Running Fast
Setup is simple and familiar. You can enable Analytics Cloud from the Setup menu. Enable, configure, and establish access control
and security just like you would for other Salesforce products.

SEE ALSO:
How and When Analytics Cloud Features Become Available

New in Spring `15 Plus


Wave, the Analytics Cloud releases an update between major releases. Customers will see new features and enhancements as part of
the new “Spring ’15 Plus” release.
The new features and enhancements become available on the following schedule:
• March 16 - Analytics Cloud superpod
• March 17 - All CS instances
• March 18 - All NA and EU instances
• March 19 - All AP instances
All customers will receive Analytics Cloud superpod updates on the same schedule, regardless of instance. Related core updates happen
by instance on the schedule specified. The additional release allows for more rapid innovation and faster response to customer needs.

IN THIS SECTION:
Administer Analytics Cloud: Test Features in Sandbox and Deploy Globally
Analytics Cloud now supports development and production environments as well as internationalization.
Integrate Data: Enhanced Usability, Increased Performance, and Streamlined Process
You can now use a point-and-click interface to extract Salesforce data. You can also filter records and incrementally extract only the
latest records. In addition, Analytics Cloud automatically generates the metadata file when you upload .csv data.
Explore Data: Better Organized Menus, Preview Lenses and Dashboards, Revert Your Changes to Dashboards
The insights that you and your team need are easier to consume.
Curate Data with Dashboards: Add Dashboards to Page Layouts (Pilot), Filter and Remove Clipped Lenses, New Link Settings
Curate data with dashboards using new features and settings.
SAQL: Improved Null and Date Handling
SAQL includes new operators, functions, and other features that enable greater precision when working with null and date handling.

Administer Analytics Cloud: Test Features in Sandbox and Deploy Globally


Analytics Cloud now supports development and production environments as well as internationalization.

53
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

IN THIS SECTION:
Test and Preview Analytics Cloud Features in the Sandbox
Test new Analytics Cloud features before enabling them in production by copying Wave assets to the sandbox.
Limited Localization Available
With a few limitations, the Analytics Cloud is now translated and internationalized.

Test and Preview Analytics Cloud Features in the Sandbox


Test new Analytics Cloud features before enabling them in production by copying Wave assets to the sandbox.
Analytics Cloud data now supports copy to sandbox, which means you can try out new Analytics Cloud features in the sandbox before
you enable them in production. Wave assets can now be migrated from production to the sandbox using copy to sandbox functionality,
which previously did not work. Migrating Analytics Cloud data, objects, and applications from sandbox to production orgs requires
manual effort.

Note: Sandbox copy for Analytics Cloud does not support Sandstorm. Make sure that when you create a sandbox for Wave assets
that the Is Sandstorm Copy checkbox is not checked in the Sandbox Information screen.
To learn how to use the sandbox, follow the step-by-step instructions in Creating or Refreshing a Sandbox.

Limited Localization Available


With a few limitations, the Analytics Cloud is now translated and internationalized.
Translated Labels and Help Available
Translated labels and online help, including those for the mobile iOS app, are now available in nearly all supported languages. The
following limitations apply:
• Non-English online help will be released no earlier than April 1.

• We do not support right-to-left languages, such as Arabic and Hebrew.

• A subset of error messages may only be available in English.

• The mobile iOS app includes only English versions of sample datasets and dashboards.

Partial Internationalization Support Available


International date, time, and number formats are supported in the Wave interface. The following limitations apply:
• You must set both locale and language to see translated labels.
• Data within datasets is not localized.
• Sorting data within datasets may not work as expected.
• Each dataset may have a single locale specified in the metadata. Everyone viewing that dataset will see the the same date, time,
and number formats, as well as dimension names, regardless of their own locale and language settings.
• Search in filters is both case-sensitive and accent-sensitive. For example, using the filter “Andre” does not return “André” in the
results.
• Multicurrency is not supported. When the Analytics Cloud extracts your organization’s default currency, it uses the currency for
monetary values and doesn’t convert to another currency.
We continue to work on this important area, and we plan additional internationalization support in future releases.

54
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Integrate Data: Enhanced Usability, Increased Performance, and Streamlined Process


You can now use a point-and-click interface to extract Salesforce data. You can also filter records and incrementally extract only the
latest records. In addition, Analytics Cloud automatically generates the metadata file when you upload .csv data.

IN THIS SECTION:
Easily Create a Dataset Using the Dataset Builder
Use the dataset builder to create a single dataset based on data from one or more related Salesforce objects. The point-and-click
interface allows you to easily select data to include in the dataset.
Create a Dataset With the Wave Connector
The Salesforce Wave Connector makes it easy to import data from Microsoft Excel 2013 to Salesforce Analytics Cloud.
Dataflow Transformation Enhancements
You can now configure existing transformations to increase dataflow performance. You can also take advantage of new transformations
that update records in an existing dataset and combine records from multiple datasets into a single dataset.
External Data Enhancements
Analytics Cloud now generates the metadata file for you when you upload a .csv file from the user interface. In addition, you now
have more control over how external data is loaded and the operation that's used to load the data.
Changing the Security Predicate for a Dataset
In the previous release, you could use the dataflow or edit the dataset to change the security predicate. In the Spring ’15 Plus release,
edit the dataset to change the predicate. Analytics Cloud ignores the security predicate setting in the dataflow after the dataset is
created.
Null Handling Changes
Analytics Cloud has changed how null values in a dataset are handled. Previously, they were replaced with empty string values. With
Spring '15 Plus, they are no longer treated as empty strings, which prevents the augment transformation from incorrectly matching
all empty rows.
Metadata File Validation Changes
Analytics Cloud has new metadata .json validation rules for external data uploads.

Easily Create a Dataset Using the Dataset Builder


Use the dataset builder to create a single dataset based on data from one or more related Salesforce
USER PERMISSIONS
objects. The point-and-click interface allows you to easily select data to include in the dataset.
Add related objects that contain data that users might find useful when querying the dataset. For To access the dataset
example, you can tie account and opportunity owner data with opportunity data to answer queries builder:
• “Edit Analytics Cloud
like “What is the account name associated with this opportunity?” and “What’s the full name and
Dataflows”
email address of the opportunity owner?”

55
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

To access the dataset builder, on the home page, click Create > Dataset, and then click Salesforce.

To start, select a Salesforce object. Next, hover over the object and click to select fields and add related objects. Select at least one
field or related object for each object included in the canvas.
Click the Fields tab, and then select the fields from which you want to extract data.

To add a related object, click the Relationships tab, and then click Join.

56
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

You can add related objects for each object included in the canvas.
After you select fields and related objects, click Create Dataset and follow the steps in the user interface to create the dataset.

Create a Dataset With the Wave Connector


The Salesforce Wave Connector makes it easy to import data from Microsoft Excel 2013 to Salesforce Analytics Cloud.

57
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Do you store valuable business data stored in Microsoft Excel and wish you had an easy way to get it in to Wave? The Wave Connector
app for Excel 2013 lets you do that. You create a dataset by selecting data in a workbook and importing it to Analytics Cloud. Just drag
to select data from an Excel worksheet and import it with the click of a button.
The Connector is available from the Apps for Office store. To install it, open Excel 2013, either on your desktop or online via Office 365.
Open the Insert tab, click Apps for Office, search for the Wave Connector, and install it. Enter your Salesforce credentials to open the
Connector. If the Connectordoesn’t open, check with your Salesforce administrator.
After you open the Connector, follow the instructions in the Welcome screen or click the Help icon. You need Upload External Data to
Analytics Cloud user permissions to import data using the Connector.
For more details about the Wave Connector, see Install the Wave Connector Excel App in Salesforce Help.

58
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Dataflow Transformation Enhancements


You can now configure existing transformations to increase dataflow performance. You can also
USER PERMISSIONS
take advantage of new transformations that update records in an existing dataset and combine
records from multiple datasets into a single dataset. To edit a dataflow:
• “Edit Analytics Cloud
Dataflows”
IN THIS SECTION:
Incrementally Extract Salesforce Records to Increase Dataflow Performance (Pilot)
In the previous release, the sfdcDigest transformation performed a full extraction, where it extracted all records from the Salesforce
object even if they hadn’t changed. In the Spring ’15 Plus release, you can now configure sfdcDigest to perform an incremental
extraction, where sfdcDigest extracts only records that changed in a Salesforce object since the last dataflow run. By default, the
sfdcDigest transformation performs full extractions.
Filter Extracted Salesforce Records to Decrease Extraction Time
Add a filter to the sfdcDigest transformation to extract a subset of all records from a Salesforce object. You can filter records to reduce
the number of extracted and processed records, exclude records that contain irrelevant or sensitive data, and decrease extraction
time.
Append Records from Multiple Datasets into a Single Dataset
Add the append transformation to the dataflow to append records from multiple datasets into a single dataset. Combine the records
to enable queries across the datasets.
Update a Dataset Based on Another Dataset
Add the update transformation to the dataflow to update field values in dataset records based on data from another dataset. For
each record, the transformation looks up the new values from fields in the matched record of the other dataset.

Incrementally Extract Salesforce Records to Increase Dataflow Performance (Pilot)


In the previous release, the sfdcDigest transformation performed a full extraction, where it extracted all records from the Salesforce object
even if they hadn’t changed. In the Spring ’15 Plus release, you can now configure sfdcDigest to perform an incremental extraction,
where sfdcDigest extracts only records that changed in a Salesforce object since the last dataflow run. By default, the sfdcDigest
transformation performs full extractions.

Note: Incremental extraction with the sfdcDigest transformation is currently available through a pilot program. Any unreleased
services or features referenced in this or other press releases or public statements are not currently available and may not be
delivered on time or at all. Customers who purchase our services should make their purchase decisions based upon features that
are currently available.
With incremental extraction, sfdcDigest inserts, updates, and deletes records in the dataset to match the record changes in the Salesforce
object since the last dataflow run.
If the data in the dataset and Salesforce object become out of sync while using incremental extractions, you can perform a one-time full
extraction to synchronize the data.

Filter Extracted Salesforce Records to Decrease Extraction Time


Add a filter to the sfdcDigest transformation to extract a subset of all records from a Salesforce object. You can filter records to reduce
the number of extracted and processed records, exclude records that contain irrelevant or sensitive data, and decrease extraction time.
A filter consists of one or more filter conditions, where each filter condition compares a field value to a value. For example, Amount >=
1000000. You can also apply SOQL functions on the field value in a filter condition, like CALENDAR_YEAR(CreatedDate) = 2011. You
can add multiple filter conditions using logical operators AND, OR, and NOT.
The sfdcDigest transformation extracts all records for which the filter is true. If you add an invalid filter, the dataflow fails at run time.

59
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Append Records from Multiple Datasets into a Single Dataset


Add the append transformation to the dataflow to append records from multiple datasets into a single dataset. Combine the records
to enable queries across the datasets.
For example, you can create a single dataset from monthly sales target datasets that you’ve been creating each month. After you combine
the data into a single dataset, you can use filters to analyze the sales targets by different time periods, like months, quarters, and years.

Note: To use the append transformation, the columns in the input datasets must match. They must have the same names, field
types, and order.

Update a Dataset Based on Another Dataset


Add the update transformation to the dataflow to update field values in dataset records based on data from another dataset. For each
record, the transformation looks up the new values from fields in the matched record of the other dataset.
For example, you have an Accounts dataset that contains account ID, name, and annual revenue. Unfortunately, some of the account
names in the dataset are incorrect because of recent mergers and acquisitions. You can use this transformation to quickly update the
account names using another dataset that has the new account names for each account ID.

External Data Enhancements


Analytics Cloud now generates the metadata file for you when you upload a .csv file from the user
USER PERMISSIONS
interface. In addition, you now have more control over how external data is loaded and the operation
that's used to load the data. To upload external data:
• “Upload External Data to
Analytics Cloud”
IN THIS SECTION:
Analytics Cloud Automatically Generates the Metadata File to Streamline the CSV Upload Process
When you upload a .csv file, you can also provide a metadata file. In the previous release, you had to manually create the metadata
file. In the Spring ’15 Plus release, Analytics Cloud automatically generates it for you when you upload the .csv file from the user
interface.
New External Data Metadata Fields
New metadata fields have been added to give you greater control when you are uploading external data from a CSV file.
Incremental Loading with the InsightsExternalData Object
Append, upsert, and delete operations have been added to the InsightsExternalData object to support incremental loading of external
data.

Analytics Cloud Automatically Generates the Metadata File to Streamline the CSV Upload Process
When you upload a .csv file, you can also provide a metadata file. In the previous release, you had to manually create the metadata file.
In the Spring ’15 Plus release, Analytics Cloud automatically generates it for you when you upload the .csv file from the user interface.
Before you upload the generated metadata file, download it and verify that it contains the correct metadata settings. If needed, you can
change the settings, and upload the modified version. If Analytics Cloud can’t generate the metadata file, you can manually create it.

New External Data Metadata Fields


New metadata fields have been added to give you greater control when you are uploading external data from a CSV file.
The following fields have been added to the fields section of the metadata JSON file:

60
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

canTruncateValue
Indicates whether to truncate a value when the value exceeds the precision.
isYearEndFiscalYear
Indicates whether the year end is based on the fiscal year.
isSkipped
Indicates whether to skip the field when the data is uploaded.
decimalSeparator
The character that separates digits in a decimal number. Can be used to handle international number formats where the decimal
separator is “,”.
firstDayOfWeek
The first day of the week. Use 0 to set the first day to be Sunday, 1 to set the first day to be Monday, and so on. Use -1 for the day on
which January 1 falls for the year.

Incremental Loading with the InsightsExternalData Object


Append, upsert, and delete operations have been added to the InsightsExternalData object to support incremental loading of external
data.
The following values are now enabled for the Operation field of the InsightsExternalData object.
Append
Append all data to the dataset. Creates a dataset if it doesn’t exist.
Upsert
Insert or update rows in the dataset. Creates a dataset if it doesn’t exist. The rows to upsert must contain one (and only one) field
with a unique identifier.
Delete
Delete the rows from the dataset. The rows to delete must contain one (and only one) field with a unique identifier.

Changing the Security Predicate for a Dataset


In the previous release, you could use the dataflow or edit the dataset to change the security
USER PERMISSIONS
predicate. In the Spring ’15 Plus release, edit the dataset to change the predicate. Analytics Cloud
ignores the security predicate setting in the dataflow after the dataset is created. To edit a dataset:
• “Edit Analytics Cloud
Dataflows”
Null Handling Changes
Analytics Cloud has changed how null values in a dataset are handled. Previously, they were replaced
with empty string values. With Spring '15 Plus, they are no longer treated as empty strings, which prevents the augment transformation
from incorrectly matching all empty rows.

Attention: Columns with all null values won't be created in datasets and can't be referenced in dataflows, lenses, or dashboards.
All columns must have at least one value. Consider providing a default value for null values, like "n/a" or "empty." Refer to Known
Issues for full details.

Metadata File Validation Changes


Analytics Cloud has new metadata .json validation rules for external data uploads.

61
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

If you try to upload an old metadata file that was previously working, but does not conform to the requirements specified in the
documentation, Analytics Cloud now throws an error. To fix the error, remove the undocumented attributes from the file. Please refer
to the Analytics Cloud External Data Format Reference for more details.

Explore Data: Better Organized Menus, Preview Lenses and Dashboards, Revert Your
Changes to Dashboards
The insights that you and your team need are easier to consume.
USER PERMISSIONS

IN THIS SECTION: To explore data:


• “Use Analytics Cloud”
Analytics for iOS v1.1
Support for more dashboard types, widget repetition, iPhone 6 and 6 Plus, and other
enhancements allow users to keep gaining insight wherever they roam.
Show Preview Thumbnails for All Lenses and Dashboards
Make it easier for users to find their lenses and dashboards on the home page and on app pages. Replace the generic icons with
preview thumbnails of the contents of all lenses and dashboards, including those that have row-level security restrictions.
Better Organized Menu of Measures and Dimensions in Explorer
When you add a measure or filter to a lens, the menu of items you select from is now better organized. Measures are grouped, as
are dimensions, and items are sorted alphabetically within each grouping so it’s easier to find what you want.
Restore a Dashboard to Its Initial State
After exploring a dashboard to see particulars about the data, dashboard viewers can restore a dashboard to its initial state by clicking
.

Analytics for iOS v1.1


Support for more dashboard types, widget repetition, iPhone 6 and 6 Plus, and other enhancements
USER PERMISSIONS
allow users to keep gaining insight wherever they roam.
More Dashboard Types Supported on Mobile Devices To log in to Salesforce from
Previously, if a dashboard used SAQL — a pilot feature that dashboard designers can use to Analytics for iOS:
• “Use Analytics Cloud”
work with data — to get data, then the dashboard couldn’t run on Analytics for iOS. Now,
Analytics for iOS supports dashboards with SAQL. If one of your dashboards hasn’t been working,
try opening it again!

Note: SAQL support is only available for dashboards from your Salesforce organization. SAQL is not available for dashboards
in the playground.
A Single Dashboard Widget Can Appear on Multiple Pages of a Dashboard
Using the dashboard builder in Analytics Cloud on the Web, you can add a single widget to each page of a mobile dashboard. For
example, when a filter widget is added to each page, dashboard viewers can filter the dashboard without leaving the page they’re
on.
iPhone 6 and iPhone 6 Plus Are Fully Supported
Analytics for iOS now supports the full resolutions of iPhone 6 and iPhone 6 Plus. Charts look great on the big screen!
Other Enhancements to Salesforce Analytics for iOS
• An enhanced charting engine ensures smooth performance and fluid animations.
• Unsupported chart types now render as a table with bars instead of numbers.
• Share snapshots from the playground on Twitter and Facebook.

62
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

• Bug fixes.
Download It Today
Download Salesforce Analytics for iOS on the App Store. Analytics for iOS is available for Apple iPhone 4 and later models running
iOS 7 and later.

Show Preview Thumbnails for All Lenses and Dashboards


Make it easier for users to find their lenses and dashboards on the home page and on app pages.
USER PERMISSIONS
Replace the generic icons with preview thumbnails of the contents of all lenses and dashboards,
including those that have row-level security restrictions. To modify settings:
• “Manage Analytics
Cloud”
To view preview thumbnails:
• “Use Analytics Cloud”

Important: Even if row-level security applies to the dataset used by a lens or dashboard, the preview thumbnail could expose
data from restricted rows. Row-level security restrictions take effect only after users have clicked through to the lens or dashboard.
Lenses and dashboards without row-level security already show preview thumbnails. If you decide to expand previews to all lenses and
dashboards, from Setup, click Analytics Cloud > Settings, and then select Show preview thumbnails for lenses
and dashboards with row level-security enabled. As part of this change, the Setup page that shows Analytics
Cloud usage statistics has been renamed Getting Started.

Better Organized Menu of Measures and Dimensions in Explorer


When you add a measure or filter to a lens, the menu of items you select from is now better organized. Measures are grouped, as are
dimensions, and items are sorted alphabetically within each grouping so it’s easier to find what you want.

Groupings are labeled as measures ( ), computed measures ( ), and dimensions ( ). The labels always remain visible to keep
you oriented when scrolling through long lists.

63
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Restore a Dashboard to Its Initial State


After exploring a dashboard to see particulars about the data, dashboard viewers can restore a dashboard to its initial state by clicking
.

Curate Data with Dashboards: Add Dashboards to Page Layouts (Pilot), Filter and
Remove Clipped Lenses, New Link Settings
Curate data with dashboards using new features and settings.
USER PERMISSIONS

IN THIS SECTION: To design dashboards:


• “Create and Edit
Add Dashboards to Page Layouts (Pilot) Analytics Cloud
Analytics Cloud dashboards can now be added to detail page layouts. On an account detail Dashboards”
page, for example, show your users a dashboard of service issues associated with the account. To view dashboards:
Users can drill in, apply filters, and explore in the dashboard as if they were viewing it in an • “Use Analytics Cloud”
Analytics Cloud window.
Manage Lenses Clipped to Dashboards More Easily Using an Enhanced Lens Menu
Filter clipped lenses and remove unused lenses directly from the dashboard designer.
See Details About a Dashboard Widget’s Lens
To ensure that a dashboard widget is showing the right data, dashboard designers can review details about the widget’s lens.
Preserve Selections on One Dashboard When Linking to Others
Linked dashboards are a compelling way to present and curate related collections of data. A new widget property for the Link widget
conveys selections made by dashboard viewers when visiting another linked lens or dashboard.

64
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Add Dashboards to Page Layouts (Pilot)


Analytics Cloud dashboards can now be added to detail page layouts. On an account detail page,
USER PERMISSIONS
for example, show your users a dashboard of service issues associated with the account. Users can
drill in, apply filters, and explore in the dashboard as if they were viewing it in an Analytics Cloud To customize page layouts:
window. • “Customize Application”

Note: This feature is currently available through a pilot program. Contact Salesforce to enable this feature for your organization.

In the enhanced page layout editor, look for a new category of user interface elements called Analytics Cloud Assets, in the left column
of the palette.

Select the Analytics Cloud Assets category and then drag an item from the list of available dashboards to a detail section on the page
layout. After the dashboard is positioned in the layout, you can change properties such as height and width by double-clicking the
element or clicking the wrench icon next to it ( ).

65
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Use field mapping to map data fields in the dashboard to the object’s fields, so that the dashboard shows only the data that’s relevant
for the record being viewed. You can specify fields from multiple datasets. Identify each dataset by its system name, which is listed on
the dataset’s edit page. Identify the data fields by row, and for the values, specify either the field names from the Salesforce object or
specific values. The JSON field mapping follows this format:
{
"dataset1_system_name": {
"row_name": ["$field_name"],
"row_name”: ["$field_name"]
},
"dataset2_system_name": {
"row_name": ["$field_name"],
"row_name”: ["$field_name"]
}
}

For example, if the dashboard shows data from a dataset named Service, with the dimensions Account and Industry, the field mapping
would be defined as:
{
"service": {
"account": ["$Name"],
"industry”: ["$Industry"]
}
}

Be aware of these limits and limitations.


• You can add one dashboard per page layout.
• Analytics Cloud dashboards are not supported in the original page layout editor. If you use the original page layout editor to open
a layout that was created in the enhanced page layout editor, the original page layout editor will delete any dashboard element as
soon as you save the layout.

Manage Lenses Clipped to Dashboards More Easily Using an Enhanced Lens Menu
Filter clipped lenses and remove unused lenses directly from the dashboard designer.

Dashboard designers can easily switch between clipped lenses by selecting All Lenses, Active Lenses, or Unused Lenses. If a lens isn’t
in use, designers can remove it by clicking . Removing a lens from a dashboard doesn’t delete the lens from Analytics Cloud.

66
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

See Details About a Dashboard Widget’s Lens


To ensure that a dashboard widget is showing the right data, dashboard designers can review details about the widget’s lens.

Dashboard designers can hover over a widget and click to see the dataset and applied dimensions, measures, filters, and other
details about the widget’s lens.

Preserve Selections on One Dashboard When Linking to Others


Linked dashboards are a compelling way to present and curate related collections of data. A new widget property for the Link widget
conveys selections made by dashboard viewers when visiting another linked lens or dashboard.
When a dashboard designer enables the widget property Include Dashboard State on a link widget, then selections, filters, ranges,
and other states applied by a dashboard viewer are maintained when the viewer visits another linked lens or dashboard.

Note: When transferring states, Analytics Cloud checks to make sure that the destination has lenses that are compatible with the
lenses from the source dashboard.
On a lens-by-lens basis, these conditions prevent dashboard state from being transferred:
• The destination lens uses a different dataset than the source lens.
• When linking to another dashboard, the destination lens uses different groupings than the source lens. If the link destination
is a lens, then groupings don’t prevent dashboard state from being transferred.

SAQL: Improved Null and Date Handling


SAQL includes new operators, functions, and other features that enable greater precision when working with null and date handling.

IN THIS SECTION:
Improved SAQL Null Handling
To improve null handling, SAQL now includes the is null and is not null operators and the coalesce() function.
SAQL Fiscal Quarter and Year Handling
New relative date keywords have been added to SAQL to handle fiscal quarters and years.
SAQL Date Math
You can now add and subtract dates in SAQL statements using the relative date keywords.

67
Salesforce Spring ’15 Release Notes New in Spring `15 Plus

Changes in SAQL Query Behavior


This release contains changes to the behavior of cogroups and outer joins.

Improved SAQL Null Handling


To improve null handling, SAQL now includes the is null and is not null operators and the coalesce() function.

Null Operators
SAQL includes two new operators to test whether or not a value is null.
• is null
• is not null

The coalesce() function


The coalesce() function has also been added. This function gets the first non-null value from a list of parameters.
coalesce(value1 , value2 , value3 , ... )

For example, you can use the coalesce() function to replace nulls with a default value. The following statements set the default
for division by zero to a non-null value.
q = load "dataset";
q = group q by 'Year';
q = foreach q generate 'Year', coalesce(sum(Amount)/sum(Quantity),0);

SAQL Fiscal Quarter and Year Handling


New relative date keywords have been added to SAQL to handle fiscal quarters and years.
The following relative date keywords have been added to SAQL.
• fiscal_quarter(s)
• n fiscal_quarter(s) ago
• n fiscal_quarter(s) ahead
• fiscal_year(s)
• n fiscal_year(s) ago
• n fiscal_year(s) ahead
For example, you can use the n fiscal_year(s) ago relative date keyword to filter using a range of dates.
a = filter a by date('year', 'month', 'day') in ["2 fiscal_years ago".."current day"];

SAQL Date Math


You can now add and subtract dates in SAQL statements using the relative date keywords.
For example:
a = filter a by date('year', 'month', 'day') in ["2 fiscal_year ago".."current day -
1 year"];

68
Salesforce Spring ’15 Release Notes Find the Value in Your Data

Changes in SAQL Query Behavior


This release contains changes to the behavior of cogroups and outer joins.

Input Stream on Cogroup for Projections


Starting with this release, you are required to specify the input stream on cogroup for projections. If any of your lenses or dashboards
have cogroup queries, ensure that the input stream is specified for projections. You are also required to specify an input stream for
count() aggregations on cogroup queries.
For example, the old syntax was:
a = load <dataset1>;
b = load <dataset2>;
c = group a by 'OwnerName', b by 'OwnerName';
c = foreach c generate 'OwnerName' as 'OwnerName', sum(a['AmountConverted']) /
sum(b['Amount']) as 'sum_target_completed', count() as count;

The new syntax is:


a = load <dataset1>;
b = load <dataset2>;
c = group a by 'OwnerName', b by 'OwnerName';
c = foreach c generate a['OwnerName'] as 'OwnerName', sum(a['AmountConverted']) /
sum(b['Amount']) as 'sum_target_completed', count(a) as count;

Outer Joins Return Null


Outer joins now return null when there is no match, instead of defaulting to zero.

Find the Value in Your Data


Now everyone can have a conversation with data through interactive visualizations. Salesforce Analytics rewards your curiosity with fast,
responsive answers. Exploring any type and combination of data is now fun, easy, and powerful.
Analytics Cloud gives you a fast, fluid way to drill through it, discover compelling insights, and share the right visuals to tell your data
story. Datasets, lenses, dashboards, and apps are collections of data that represent different levels of refinement—everything from raw
data uploaded from your source systems to highly curated, packaged views of your data.
• A dataset is a set of source data, specially formatted and optimized for interactive exploration. It can be Salesforce data, external
data, or a combination, such as a mashup of account data and product usage data.
• A lens is a particular view into a dataset. It’s where you explore using interactive visualizations. A visualization is commonly a chart
or graph, such as a bar chart, donut chart, timeline, or heatmap. It can also be data in tabular form, such as a comparison table or
pivot table. Every visualization has an underlying query, which is how Analytics Cloud retrieves information from the source data.
• A dashboard is a curated set of charts, metrics, and tables based on the data in one or more lenses. Dashboards are interactive. You
can tap on charts, buttons, and other elements to dynamically filter and drill into data.
• An app contains dashboards, lenses, and datasets in any combination that makes sense for sharing your data analyses with colleagues.
Analytics Cloud apps are like folders, allowing users to organize their own data projects—both private and shared—and control
sharing.

69
Salesforce Spring ’15 Release Notes Explore Data Anywhere with Salesforce Analytics for iOS

Explore Data Anywhere with Salesforce Analytics for iOS


Insights are not and should not be restricted to the desktop. With the mobile-first Analytics Cloud, you can explore all types of data from
your mobile device. Check in on this quarter’s customer cases, track progress toward sales goals, and instantly share learnings with your
team. No matter where you are, collaborate and share insights with colleagues and know your customers like never before.

Access Everything on Your Phone

Your entire collection of apps, dashboards, lenses, and datasets is only a tap or two away. Leave the laptop at home—you have everything
on your phone.

70
Salesforce Spring ’15 Release Notes Explore Data Anywhere with Salesforce Analytics for iOS

Interact with Dashboards and Lenses

Dashboards and lenses aren’t static; go ahead and tap around. Notice how data updates in real time. Apply filters and drill into specific
data points to learn even more, like what’s behind those escalated cases.

71
Salesforce Spring ’15 Release Notes Visualize Rich Data in Your Web Browser

Share Findings with the Team

When you’re ready to share discoveries with the team, you can annotate your visualization by adding text, drawing, highlighting important
data points, and more.

Download It Today
Download Salesforce Analytics for iOS on the App Store. Analytics for iOS is available for Apple iPhone 4 and later models running iOS
7 and later.

SEE ALSO:
Analytics for iOS Help

Visualize Rich Data in Your Web Browser


A dashboard is a collection of lenses that interact with each other. Drill into one and watch the others change to help you shape the
questions you're asking. Don't just look at the visuals; use the tools on the dashboard to dive deeper into the data you care about. Go
ahead, click around and explore!

72
Salesforce Spring ’15 Release Notes Explore Data with Powerful Visualization Tools

You read a Salesforce Analytics dashboard interactively, by clicking the widgets displayed. Every widget is a live, filtered query.
• A selector is a dropdown list that lets you filter down to a particular value that matters to you. Selectors are often tied to each other
in sequence so you can progressively drill deeper.
• A rich variety of charts shows you data from multiple angles. Many parts of a chart are interactive. For example, click a bar in a bar
chart and watch what happens.
• Some information is best presented by a single number. Some number widgets can be affected by filtering actions you take on
charts or selectors.
• A range widget is a controller for filtering other widgets on the dashboard. In this example, you can set the maximum and minimum
sliders to make the dashboard show you only amounts within a specific range.

Explore Data with Powerful Visualization Tools


Get to know the boundaries and shape of your data. Use explorer’s interactive visualization tools to play with different views, zoom in
and zoom out, and see what you get with different charting options.
Choose from a selection of rich, colorful visualizations to see which views of your data tell the most compelling story.

Every visualization in Analytics Cloud is based on at least one measure, which is anything that can be represented by a number. Measures
are typically aggregated in some way. For example, you can chart two measures side-by-side, showing both the sum of a revenue amount
and the average of expected revenue. Measures define the type and scope of your visualization as you explore a dataset.

73
Salesforce Spring ’15 Release Notes Build Powerful Queries Using SAQL (Pilot)

Visualizations often involve dimensions in addition to measures. A dimension is anything qualitative that’s not represented by a number,
such as company name, region, and product. Dimensions are handy for grouping your data into useful categories, such as viewing
revenue numbers by stage name. They’re also handy for filtering unnecessary data out of a visualization, to unclutter your chart and
narrow your focus to what’s most relevant.
Exploring your data can lead you down many paths. Not all of them will be fruitful and that’s okay. Explorer keeps a full history of your
activity in a lens. If you’ve changed your lens in undesired ways, use history to quickly backtrack to a previous state in your visualization.

Share your visualizations with other Analytics Cloud users.


• Give colleagues access to a specific dashboard, lens, or app via a unique URL.
• Share the app itself, with users, groups, or roles.
• Post to Chatter the link to a dashboard, lens, or app.
• Save a visualization as an image file.

SEE ALSO:
Exploring and Sharing Analytics Cloud Data

Build Powerful Queries Using SAQL (Pilot)


Use the Salesforce Analytics Query Language (SAQL) to make sure that your lenses return exactly the data you’re looking for. SAQL is a
real-time query language that enables ad hoc analysis of data that’s stored in datasets.
SAQL is compositional—every statement has a result, and you can chain statements together. Analytics Cloud uses SAQL behind the
scenes in lenses, dashboards, and explorer to gather data for visualizations.

74
Salesforce Spring ’15 Release Notes Dashboards Help Users Help Themselves

Note: SAQL is currently available through a pilot program. Any unreleased services or features referenced in this or other press
releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our
services should make their purchase decisions based upon features that are currently available.

SEE ALSO:
SAQL Reference

Dashboards Help Users Help Themselves


A dashboard is your vehicle for telling a specific, focused story about data -- a story that people can learn from and act on. Dashboards
help engage team members in active discussion and collaboration around your data, regardless of where they are. When you share
Analytics Cloud data via a dashboard, you set up end users to explore on their own, without turning them loose on the whole dataset.
A dashboard consists of a curated set of charts, metrics, and tables based on the data in one or more lenses. Drop charts into a dashboard,
size for any form factor, and watch the lightbulbs turn on.

IN THIS SECTION:
Create Dashboards Fast with the Dashboard Builder
The dashboard builder is a visual interface for quickly and easily creating dashboards that tell a story about data for a particular set
of readers. You capture the data you want to work with in lenses. These live, fully synced views of your data are displayed in containers
called widgets. You design widgets that work together to tell a data story from different angles.
Represent Dashboard Data in JSON
It’s easy to design dashboards in the builder, but you can also use JSON to directly manipulate the data in a dashboard.

SEE ALSO:
Share Analytics Cloud Data with Dashboards

Create Dashboards Fast with the Dashboard Builder


The dashboard builder is a visual interface for quickly and easily creating dashboards that tell a story about data for a particular set of
readers. You capture the data you want to work with in lenses. These live, fully synced views of your data are displayed in containers
called widgets. You design widgets that work together to tell a data story from different angles.
Widgets that come from the same dataset are faceted by default. This means that when you filter one widget, all the related widgets
are filtered in the same way. You can turn faceting on or off for each widget.
You can use widgets to present data in all the standard ways: Line graphs, bar charts, pie charts, drop-down selection lists. The important
thing is that these graphics don’t just display information. Each chart is itself a live query, which a user can drill into at will for more
focused knowledge.

Represent Dashboard Data in JSON


It’s easy to design dashboards in the builder, but you can also use JSON to directly manipulate the data in a dashboard.

75
Salesforce Spring ’15 Release Notes Integrate Data from Anywhere

Work with JSON for more control over advanced dashboard features, such as specifying SAQL queries, setting query limits, and creating
manual bindings between values.

SEE ALSO:
Dashboard JSON Reference

Integrate Data from Anywhere


In your business, you have data everywhere: warehouses, spreadsheets, logs, and in Salesforce. With Analytics Cloud, it’s easy to integrate
data from any of these sources, including external data such as SAP or Oracle data, mobile app data, or product sensor data.
You integrate data into datasets. A dataset is a collection of data that’s been specially formatted and optimized for interactive exploration
in Analytics Cloud. Datasets can contain Salesforce data, external data, or a combination. You can register datasets to enable users to
explore data within them.

IN THIS SECTION:
Integrate Salesforce Data
Would you like to explore your Salesforce data? Use a dataflow or the dataset builder to load it into a dataset. A dataflow is a set of
instructions that specifies what data to extract from Salesforce objects or datasets, how to transform the datasets, and which datasets
to make available for querying. You configure the dataflow in a .json file. The dataset builder is a point-and-click user interface that
allows you to easily select and extract data from related Salesforce objects to create a single dataset
Bring in External Data
Salesforce Analytics Cloud can handle data from anywhere, not just inside Salesforce. You can upload external data using the
application, or you can get more control by using the External Data API.

Integrate Salesforce Data


Would you like to explore your Salesforce data? Use a dataflow or the dataset builder to load it into a dataset. A dataflow is a set of
instructions that specifies what data to extract from Salesforce objects or datasets, how to transform the datasets, and which datasets
to make available for querying. You configure the dataflow in a .json file. The dataset builder is a point-and-click user interface that allows
you to easily select and extract data from related Salesforce objects to create a single dataset

Dataflow
You can use a dataflow to break down barriers between disconnected data. Still have those spreadsheets with information that
complements your Salesforce data? Use a dataflow to connect those two sources in the same dataset.

76
Salesforce Spring ’15 Release Notes Integrate Data from Anywhere

Dataflows also support transformations that let you create, transform, and optimize datasets for different kinds of analysis. For example,
you can join two different datasets, pull existing datasets into the dataflow, and register datasets to make them available for querying.
You can also set up security on datasets.
After you configure the dataflow, you upload it to Analytics Cloud and run it to create the datasets.

The dataflow runs daily to keep data synchronized. Worried that your dashboard won’t contain the latest data for your 10 a.m. meeting?
Don’t worry! You can also start a dataflow on demand to capture the latest data.

Dataset Builder
Use the dataset builder to create a single dataset based on data from one or more related Salesforce objects. With the dataset builder
you simply point and click to identify and select related Salesforce objects.
For example, you can select the Case object to get case data. You can also select related objects Account, Contact, and Group to get the
customer account, case contacts, and owners for each case. In addition, you can add the User object to get the owner of the customer
account.

77
Salesforce Spring ’15 Release Notes Integrate Data from Anywhere

For each Salesforce object that you include, select the fields from which you want to extract data.

After you select the data to include in the dataset, the dataset builder generates and appends the associated JSON to the dataflow
definition file. The dataset is created the next time the dataflow runs. The data in the dataset refreshes each time the dataflow runs.

SEE ALSO:
Data Integration Guide

Bring in External Data


Salesforce Analytics Cloud can handle data from anywhere, not just inside Salesforce. You can upload external data using the application,
or you can get more control by using the External Data API.

78
Salesforce Spring ’15 Release Notes Get Analytics Up and Running Fast

Analytics Cloud includes new Salesforce sObjects to help you upload your external data programmatically. You can work with these
objects to upload data using any of the familiar Salesforce APIs, such as the SOAP API, REST API, or Apex.
To upload external data with the API, you prepare your data in CSV format and create a metadata JSON file to specify the structure of
the data. Then you configure the InsightsExternalData object with the name of the dataset, the format of the data, and the operation to
perform on the data. Upload your data using InsightsExternalDataPart objects. From there, just monitor the InsightsExternalData object
for status updates and confirm the successful uploading of files.

SEE ALSO:
External Data API Reference

Get Analytics Up and Running Fast


Setup is simple and familiar. You can enable Analytics Cloud from the Setup menu. Enable, configure, and establish access control and
security just like you would for other Salesforce products.

IN THIS SECTION:
Control Data Access with Salesforce-Strong Security
Analytics Cloud can pull in tons of data from different sources and make it available for queries through the explorer and builder.
However, not all users may need access to all data. Analytics Cloud offers multiple levels of access control that can be implemented
to ensure that the right user has access to the right information.
Analytics Cloud Limitations
Analytics Cloud differs from other Salesforce features in some ways.

Control Data Access with Salesforce-Strong Security


Analytics Cloud can pull in tons of data from different sources and make it available for queries through the explorer and builder. However,
not all users may need access to all data. Analytics Cloud offers multiple levels of access control that can be implemented to ensure that
the right user has access to the right information.

79
Salesforce Spring ’15 Release Notes Get Analytics Up and Running Fast

Salesforce Data
The administrator can restrict which Salesforce data can be loaded into datasets in Analytics Cloud. The administrator can also define
sharing access within each dataset, using role hierarchies or other means of mapping users to data. Salesforce Analytics Cloud does not
replicate Field Level Security settings in datasets, but administrators can create multiple datasets with various fields and give access to
audiences according to their rights.

Datasets, Lenses, and Dashboards


App owners, administrators, and users granted manager access to an app control access to datasets, lenses, and dashboards within apps.
Keep them in your private app to hide them from others. Add them to the Shared App to share them with everyone.

Dataset Records
Dataset owners can implement row-level security on each dataset that they create to restrict access to its records.

SEE ALSO:
Security Guide

Analytics Cloud Limitations


Analytics Cloud differs from other Salesforce features in some ways.

Releases Aren’t Staggered


All customers receive Analytics Cloud superpod updates on the same schedule, regardless of instance. Related core updates happen by
instance on a staggered schedule.

Rapid Innovation and Deployment


Salesforce releases updates to the Analytics Cloud between major releases. Customers have immediate access to new features and
enhancements as part of these interim releases, enabling more rapid innovation and faster response to customer needs. We’ll regularly
communicate release timing to all customers.

80
Salesforce Spring ’15 Release Notes Get Analytics Up and Running Fast

Localization Nearly Complete


The Analytics Cloud has been localized with the following exceptions.
• Non-English online help will be released no earlier than April 1.

• We do not support right-to-left languages, such as Arabic and Hebrew.

• A subset of error messages may only be available in English.

• The mobile iOS app includes only English versions of sample datasets and dashboards.

Limited Internationalization Support


The Analytics Cloud provides internationalization support with the following limitations.
• You must set both locale and language to see translated labels.
• Data within datasets is not localized.
• Sorting data within datasets may not work as expected.
• Each dataset may have a single locale specified in the metadata. Everyone viewing that dataset will see the the same date, time, and
number formats, as well as dimension names, regardless of their own locale and language settings.
• Search in filters is both case-sensitive and accent-sensitive. For example, using the filter “Andre” does not return “André” in the results.
• Multicurrency is not supported. When the Analytics Cloud extracts your organization’s default currency, it uses the currency for
monetary values and doesn’t convert to another currency.

Accessibility Features Aren’t Supported


Accessibility features haven’t been incorporated into Analytics Cloud.

Packaging and Metadata API Are Not Supported


The use of the Metadata API isn’t supported for Analytics Cloud. You can’t package or version Analytics Cloud applications. Migrating
Analytics Cloud data, objects, and applications from sandbox to production orgs requires manual effort. The Default Org Template (DOT)
isn’t supported for org duplication.

Limited Field-Level Security


Field-Level security isn’t available for external data that’s uploaded via files. Field-level security that was implemented in the original
database or Salesforce object isn’t preserved when the data is loaded into an Analytics Cloud dataset. For more information, see the
Analytics Cloud Security Implementation Guide.

Supported Browsers
Browser support is available for Microsoft® Internet Explorer® versions 10 and 11, Mozilla® Firefox® (the most recent stable version), and
Google Chrome™ (the most recent stable version).

81
Salesforce Spring ’15 Release Notes Mobile: Do More On the Go with Salesforce1

Mobile: Do More On the Go with Salesforce1


Spring ’15 improves life for sales reps in the field. Streamline workflow with instant task creation from feed posts. Drive quicker decisions
with dashboard filters and easier access to reports. Improve sales productivity with the latest news about important accounts and a
visual assistant that coaches reps through your sales process. And that’s just scratching the surface.

IN THIS SECTION:
Access the Salesforce1 App
Your users have several options for accessing Salesforce1 on mobile devices.
Salesforce1 Enhancements in This Release
Our latest round of new and improved Salesforce1 features further expands the utility of the mobile app, making it even easier to
access Salesforce on the go.
Salesforce1 Differences from the Full Salesforce Site
The Salesforce1 app doesn’t have all of the functionality of the full Salesforce site, and in some cases includes features that aren’t
available in the full site.
Salesforce1 App Development Overview
There are several Force.com platform enhancements that support Salesforce1 development.

SEE ALSO:
How and When Mobile Features Become Available

Access the Salesforce1 App


Your users have several options for accessing Salesforce1 on mobile devices.
• Install the Salesforce1 downloadable app on Android ™ and Apple® mobile devices. Users can download the app from the App Store
or Google Play™.
• Access the Salesforce1 mobile browser app from a supported mobile browser on Android, Apple, BlackBerry, and Windows 8.1
devices. This option doesn’t require anything to be installed.
See “Requirements for Using the Salesforce1 App” in the Salesforce Help for more details about supported devices and browsers.

Salesforce1 Enhancements in This Release


Our latest round of new and improved Salesforce1 features further expands the utility of the mobile app, making it even easier to access
Salesforce on the go.
Use of Salesforce1 is supported for all editions (except Database.com Edition) without any additional licenses. The Salesforce data and
features that are available in Salesforce1, however, are determined by your organization’s Salesforce edition and licenses and by a user’s
assigned profile and permission sets.
You’ve probably noticed that some new features are available in the Salesforce1 mobile browser app only. Fear not—many of these
enhancements will be in future updates to the Salesforce1 downloadable apps for Android and iOS devices. Check back here for details
when new downloadable app versions are released on the Apple App Store or Google Play.

Note: At a glance, here is what’s new in version 7.2 of the Salesforce1 downloadable app for Android.
• Access the Approvals item from the navigation menu

82
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

• Access the Paused Flow Interviews item from the navigation menu
• Support for URL schemes, which allow users to access specific pages in the Salesforce1 app from external applications
The updated app is now available for download from Google Play.

Android iOS Mobile Setup in


Salesforce1 Enhancement Downloadable Downloadable Browser the Full
App App App Site
Device and Browser Support

Get Salesforce1 push notifications on the Apple Watch.

Use the mobile browser app on select Windows 8.1 tablets.

Move your users off older iOS mobile devices that are no longer supported
by Salesforce.

Salesforce1 Rollout Enhancements

Increase Salesforce1 adoption and create power users with customized


tips and suggestions from Salesforce Adoption Manager.

Available Data and Navigation Enhancements

See a different default Salesforce1 navigation menu.

Access canvas apps from the Salesforce1 navigation menu in the


downloadable app for Android devices (as well as the other versions of
(As of v7.1) (As of v5.3) (As of
Salesforce1).
Spring ’14)

Enjoy enhanced object home pages that show more details about
recently viewed records and make it easier to access list views. (Tablets
Only)

See more record details on full-featured list views. (Tablets Only)

See visual snapshots of business data with list view charts. (Tablets Only)

See more list views directly from object home pages. (Phones Only)
(As of v7.0)

Open most Salesforce URLs directly in Salesforce1.


(As of v7.2) (As of v7.0)

Actions Enhancements

Use actions and the action bar in more places, including related lists and
search results.
(As of v7.0) (As of v7.0)

Salesforce Communities Enhancements

Motivate community users to take action with recommendations that


automatically appear in the feed. (Beta)

83
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Android iOS Mobile Setup in


Salesforce1 Enhancement Downloadable Downloadable Browser the Full
App App App Site
Chatter Enhancements

Add multiple attachments to a post with a single action.

Reduce clutter in the feed by bundling multiple record updates into one
post.

See all comments on a post directly in the feed. (Tablets Only)


(Limited)

Edit the list of topics on existing feed posts.

Escalate questions in Chatter to cases.

Specify whether profile photos are displayed for guest users.

Add records to groups to increase collaboration with other group


members.

Post announcements in group feeds to keep members up to date.

Manage the photos used for groups.

See group list views ordered by activity.

See profile photos for group members.

Join groups more easily.

Browse and share all file types with new filters in Files lists and when
posting to feeds.

Browse and share files from SharePoint or OneDrive for Business.

Search Enhancements

Recognize search “quick results” better with more information that


differentiates similarly named records.

See more record details in search results. (Tablets Only)

Find the right information faster by sorting search results.

See more relevant search results for People and Groups.

Search group feeds.

Relationship and Data Management Enhancements

Prevent the creation of duplicate records. (Generally Available)

Quickly see where contacts or accounts are located with static Google
Map images in standard address fields.

84
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Android iOS Mobile Setup in


Salesforce1 Enhancement Downloadable Downloadable Browser the Full
App App App Site
Pick a matching address from a list after typing some text in standard
address fields.

Create Contacts More Quickly with Auto-Populated Data from Call History
(As of v7.1)

Access all of the Work.com Coaching features that are available in the
full Salesforce site.

Sales Productivity Enhancements

Keeps sales reps updated with the latest news about their accounts.

Enable Account News for your organization.

Control whether users can import contacts from their mobile device
contact lists directly into Salesforce.

Make it easy for sales reps to follow the stages of your sales process and
increase their close rates.

Enable Sales Path for your organization.

Convert qualified leads to contacts. (Beta)

Activities Enhancements

Keep tasks updated more efficiently by seeing task details alongside task
lists. (Tablets Only)

Create tasks directly from Chatter posts.

Salesforce Today Enhancements

Manage the day better from Today with centralized access to more key
information, like current Chatter posts, recent dashboards, and relevant
account news.

See the most current information in the Today cards by refreshing the
page.

Do more actions from Today using the action bar.


(As of v7.0) (As of v7.0)

View Today cards in two columns. (Tablets Only)


(As of v7.0)

For improved performance of Today, weather information is no longer


provided in the app.

Salesforce1 Reporting Enhancements

85
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Android iOS Mobile Setup in


Salesforce1 Enhancement Downloadable Downloadable Browser the Full
App App App Site
View and use dashboard filters.

Choose the running user for dynamic dashboards.

Rerun dashboards and corresponding source reports from the action


bar.

View up to three columns at a time on dashboards when in landscape


orientation. (Tablets Only)
(As of v7.0)

Use the new chart sidebar to filter reports. (Tablets Only)


(As of v7.0)

Access recently viewed reports directly from the Salesforce1 navigation


menu.
(As of v7.1) (As of v7.1)

See Fewer Report Rows for Better Performance on the Go (iPhone 6 Plus
Only).

Customer Service Tool Enhancements

Quickly identify the best Salesforce Knowledge articles in search results


with promoted search terms, highlighted search terms, and snippets of
relevant text.

Business Logic and Process Automation Enhancements

View the status of pending approvals and approve or reject approval


requests, all from a central place.
(As of v7.2) (As of v6.0)

Resume or delete paused flow interviews.


(As of v7.2)

Notifications Enhancements

Receive in-app notifications when reports meet specified conditions.

Offline Enhancements

Use Salesforce1 offline caching to improve performance of the


downloadable apps when working online.
(As of v6.0) (As of v6.0)

Salesforce1 Setup and Configuration Enhancements

Understand how changes to Salesforce1 branding affect where custom


colors show up in the app.
(As of v7.0) (As of v7.0)

86
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Educate Users with Salesforce Adoption Manager


You can turn your users into power users with Salesforce Adoption Manager. If you enable this feature, users receive customized
suggestions based on how they work in both the full Salesforce site and the Salesforce1 mobile app.
In Spring ’15, Salesforce Adoption Manager suggests a variety of actions that your users can take to work more effectively in Salesforce1.
Users receive suggestions via emails that are optimized for viewing on mobile devices. These emails include:
• A custom link to install a Salesforce1 downloadable app
• Tips for viewing a record or other CRM details while on the go
• Best practices on useful actions like logging calls or creating tasks

To enable Salesforce Adoption Manager, from Setup in the full Salesforce site, click Manage Users > Adoption Manager and select
Enable Salesforce Adoption Manager.

See More Record Details on Object Home Pages (Tablets Only)


To take advantage of the larger screen on tablets, Salesforce1 uses a different object home page interface than what’s provided on
smartphones. Tablet users can see more details about recently viewed records, directly access standard and custom list views, and search
across other objects as well as the current object. The tablet version of object home pages is currently available in the Salesforce1 mobile
browser app app only.
Selecting an object such as Accounts, Groups, or Dashboards from the Salesforce1 navigation menu opens the object home page
(previously called “record search page” in the Salesforce1 help).

87
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Here are some important details about object home pages when viewed on tablets.
• Object home displays a list of recently viewed records (1), with more details than users see on a phone.
• Users can access 200 of their standard and custom list views directly from the list view menu (2), without having to first access any
list views in the full Salesforce site. List views are full-featured and show the same record details as the full site.
• Users can sort the recent records list by field, in ascending or descending order. For example, a sales rep could sort the list of recent
leads by the Lead Status field to group all qualified leads together. The easiest way to sort is to tap a field column header. Or
tap in the action bar and a select a field (3). Sorting isn’t available for the Recently Viewed Records list on Salesforce1 on a
phone.
• Object-specific searches work differently from the search experience on phones. The search box on object home pages has been
replaced by the search icon in the Salesforce1 header (4). This icon opens a search box that is automatically scoped to the
current object (5). A user can also select a different object to search from the search scope bar, without having to navigate away
from the object home page.

88
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

SEE ALSO:
See Full-Featured List Views (Tablets Only)

See Full-Featured List Views (Tablets Only)


When using Salesforce1 on tablets, users get an enhanced list view experience that shows more record details at a glance and includes
more sorting options and intuitive controls for navigating through this extra information. The tablet version of list views is currently
available in the Salesforce1 mobile browser app only.

89
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Here is some important information about list views on tablets.


• Up to 200 standard and custom list views are available from each object home page. It’s not necessary for users to first access any
list views in the full Salesforce site.
• Information is presented the same way as in the full Salesforce site—with columns for each field and rows of records—so it’s easy
to scan and compare record details (1). This tabular layout is different from the record preview cards that users see when working
with list views on phones.
• Users see all of the fields in a list, instead of the subset of fields shown on phones.
• List view sorting ( ) from the action bar was added in the Winter ’15 release of the Salesforce1 mobile browser app and in version
7.0 of the Salesforce1 downloadable apps. Now it’s also possible to sort list views by tapping a field column header (2). Same as in
the full site, most fields are sorted alphanumerically but the Opportunity Stage field is sorted by how close the opportunity is to
closing.
• 20 records are displayed per page. If a list has multiple pages, it’s easy to navigate around with the back, forward, first, and last buttons
(3).
• List item actions aren’t available.
List views also offer corresponding charts that graphically represent list view records and their data.

SEE ALSO:
Visualize List View Details with Charts (Tablets Only)
See More List Views (Phones Only)

90
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Visualize List View Details with Charts (Tablets Only)


“Seeing” is sometimes more effective than reading. List view charts in Salesforce1 make it fast and simple for sales reps to get an
easy-to-understand, visual snapshot of their business data. Users can create and edit their own charts to aggregate and calculate
information by one field and group that information by another field. Data can be represented on three types of charts: vertical bar,
horizontal bar, or donut. List view charts are available on tablets only with the Salesforce1 mobile browser app.
Access list view charts by tapping the panel tab (1) on the right side of the page when viewing a list view.

Out-of-the-box charts are provided for standard objects. To create new charts, users tap in the charts panel. On the New Chart page,
give the chart a name and select a chart type. The aggregate type lets users specify how field data is calculated: by sum, count, or average.
The aggregate field tells the chart where to get the data that’s calculated. And the grouping field labels the chart segments.

Note: It’s not possible to delete list view charts, including those created by your users and the out-of-the-box charts, in this release.

Example: An office furniture sales rep wants to compare her accounts by number of employees so she can focus her prospecting
efforts on large corporations. She creates a horizontal bar chart by selecting Count as the aggregate type; selecting Employees
as the aggregate field, and selecting Account Name as the grouping field. Her chart shows the number of employees at each
account by account name.

SEE ALSO:
See Full-Featured List Views (Tablets Only)

91
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

See More List Views (Phones Only)


When using Salesforce1 on smartphones, users can now see more than four list views for an object directly from an object’s home page.
It’s no longer necessary to first open a specific list view to access other list views. This enhancement was initially included in version 7.0
of the Salesforce1 downloadable app for iOS devices and it’s now available in the mobile browser app too.
When using the mobile browser app, simply tap More List Views on an object home page. (If a user hasn’t yet accessed any list views
at all, the option is Show List Views.) Users see up to 200 list views for the object, including list views that haven’t been accessed recently
in the full Salesforce site.
This feature works differently in the downloadable app for iOS devices. The More List Views option is available only after a user has
accessed five or more list views in the full site. This option shows all of the list views a user has recently accessed in the full site; list views
that have never been viewed aren’t shown.

Selecting other list views when using the mobile browser app on a tablet is done differently. Check out See Full-Featured List Views
(Tablets Only) on page 89 for details.

Use Actions and the Action Bar in More Places


The action bar is available in more places in Salesforce1, making it even easier for users to take care of business out of the office. The
action bar is available in the Salesforce1 mobile browser app and the Salesforce1 downloadable apps, versions 7.0 and later.
Here are the new pages that now include the action bar, and the actions that are available in these locations.
Object Home Pages (Tablets Only)
Create new records and sort how records in the recently viewed list are displayed. The New action replaces the New button that
used to be at the top of the page.
Related Lists for Standard Objects
Create new records.

92
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Search Results
Create new records and sort search results. The New action replaces the New button that used to be at the top of the search results
page.
Tasks Lists (Tablets Only)
See the same set of actions that are available as list item actions on items in task lists.
Today (Downloadable Apps Only)
See the set of actions that are defined in your organization’s global publisher layouts. See “Working with Global Publisher Layouts”
in the Salesforce Help for more information.

Customize Recommendations in Community Feeds (Beta)


For the Salesforce1 mobile browser app, create custom recommendations that appear in community
EDITIONS
feeds, encouraging users to watch videos, take training, and more. Custom recommendations are
supported for any community using the “Napili” or “Salesforce Tabs + Visualforce” template. Recommendations available
Note: The administrative interface for recommendations is in beta and has known limitations. in: Enterprise, Performance,
Unlimited, and Developer
For complete functionality, use the Chatter REST API.
Editions
In Community Management, click Admistration > Recommendations. For detailed instructions,
see “Customize Recommendations in Community Feeds” in the Salesforce Help.
USER PERMISSIONS

To access the Community


Management page:
• “Manage Communities”
OR
“Create and Set Up
Communities”

Add Attachments Directly from the New Post Page


Are your users tired of having to use different actions to add attachments to posts? Now users can add a file and a link directly from the
New Post page. This feature is available in the Salesforce1 mobile browser app app only.

93
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

We added the File and Link actions to the Post action. When users compose a post ( ), they can now attach a link and a file to their
post directly from the New Post page.

Here’s how to add link and file attachments from the New Post page.

To attach a file, tap , then select the file you want to attach. You can currently only attach one file per post.
• To attach a link, type or paste the URL into the body of your post.
The attachments display in the post body, including preview images for the file and URL, if available. If you type more than one URL into
the body or your post, only the first URL displays as a link attachment. The subsequent URLs display as inline text links.

The individual Link ( ) and File ( ) actions are also still available from the action bar.

See Multiple Record Updates Bundled into One Post


Do your users want to see fewer feed posts about record updates but they still want to keep track of changes? Bundled posts to the
rescue! If there are more than two updates to tracked fields on the same record, these updates are consolidated into a single post. This
feature is available in the Salesforce1 mobile browser app app only.
Bundled posts display in the record feed and in the What I Follow feed. Bundled posts contain record updates that are less than 10
minutes apart. Updates that are more than 10 minutes apart display as separate posts.

94
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

By default, the bundled post shows the two most recent updates. Tap Show All Updates to see all bundled updates that were made
to the record within the last 24 hours. If someone comments on a post that is part of a bundle, that post is removed from the bundle
and displayed separately in the feed.

Create Cases for Unanswered Questions in Chatter (Generally Available)


If Chatter Questions is enabled for your organization, you can give moderators the ability to escalate
EDITIONS
questions in Chatter to cases, making it easier to track and resolve your customers’ issues.
Question-to-Case is available in the Salesforce1 mobile browser app only. Chatter Questions and
Question-to-Case available
SEE ALSO: in: Group, Professional,
Enterprise, Performance,
Create Cases from Questions in Chatter with Question-to-Case (Generally Available)
Unlimited, and Developer
Manage Questions in Chatter with Question-to-Case (Generally Available) Editions

Add Records to Chatter Groups


All Salesforce1 users can now add records to Chatter groups while on the go.
To make this option available to your users, edit the group layout and add the Add Record quick action to the group publisher, so the
action is available in the Salesforce1 action bar on groups. See Allow Users to Add Records to Chatter Groups on page 199 for more details
on setting up this feature.
In Salesforce1, tap Add Record in the action bar while viewing a group.

Group records display in the Group Records related list.

95
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

SEE ALSO:
Allow Users to Add Records to Chatter Groups

Post Announcements in Chatter Groups


Add the Announcement action to the action bar in groups to allow group owners and managers to share announcements in Chatter
groups from Salesforce1.

For more information on configuring the group layout and action bar, see “Customize Chatter Group Layouts and Quick Actions” in the
Salesforce Help.

96
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

View, Upload, and Delete Group Photos in Chatter Groups


Group owners and managers can view, upload, and delete group photos from the Salesforce1 mobile apps.
Group owners and managers can manage group photos by tapping on the photo (or the photo placeholder) in the highlights area at
the top of the group page. In the Salesforce1 mobile browser app, users can view, update, or delete group photos. In the downloadable
apps, users can view and delete group photos.

For more information on configuring the group layout and action bar, see “Customize Chatter Group Layouts and Quick Actions” in the
Salesforce Help.

Find More Files with New Salesforce Files Filters


Users can find their files faster with new filters for synced and external files and a reorganized filter
EDITIONS
list. This enhancement is available in the Salesforce1 mobile browser app only.
The new Files filters are included in the filter list on the Files home page and when attaching a file Files available in: Group,
to a post or comment. The filter list includes these changes: Professional, Enterprise,
Performance, Unlimited,
Contact Manager, and
Developer Editions

• Filters are arranged differently. Your Recent (1) files are always at the top.
• Synced (2) files are now included in the filter list if you have Salesforce Files Sync turned on.
• External (3) file sources are now included in the filter list if your organization has Files Connect set up and you have connected file
sources. See Browse and Share External Files on page 98 for more details.

Note: Those using the Salesforce1 mobile browser app in Safari / iOS 7 or later must disable the Safari Block Pop-ups setting in
order to access external files. On iOS devices, go to Settings > Safari and disable Block Pop-ups (enabled by default).

97
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Browse and Share External Files


Put all your content at users’ fingertips. If Files Connect is set up for your organization, Salesforce1
EDITIONS
mobile browser app users can browse and share files from external data sources, such as Microsoft
SharePoint and OneDrive for Business. Files Connect available in:
When attaching files to feed posts or comments or navigating Files lists, users can browse for Enterprise, Performance,
external files just as they do files stored in Salesforce. Relevant external files appear in the Files list Unlimited, and Developer
when these filters are applied: Recent, Owned by Me, Shared with Me, or Following. If the Files list Editions
is collapsed, an External section lets users navigate directly to outside files.

SEE ALSO:
Connect to Content in OneDrive for Business
Find More Files with New Salesforce Files Filters

Differentiate between Similar Quick Results


The “quick results” that appear during a search in the Salesforce1 mobile browser app now include more information than just the record
name. This provides more context during a search and distinguishes between records with similar names, helping users get to what
they’re looking for even faster. This feature isn’t available in the downloadable apps.
As a user begins typing a keyword in a search box, the list of quick results shows the name of each matching record, as well as data from
the second field in the object’s search results layout. (Users see this information only if they have permission to view the additional field.)

For example, if Account Name is specified as the second field in the search results layout for opportunities (from Setup > Customize >
Opportunities > Search Layouts in the full Salesforce site), the account name displays below each opportunity name in the quick
results as users type a search term in the search box.
See “Customizing Search Layouts” in the Salesforce Help for more information about editing search results layouts to control the second
fields that displays search quick results.

98
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

See More Details in Search Results (Tablets Only)


When using Salesforce1 on tablets, users get an enhanced search results experience that shows more record details. Tablet-enhanced
search results are currently available in the Salesforce1 mobile browser app only.

When searching on tablets:


• Results are presented in a table, with columns for each field and rows of records, instead of in the list of record preview cards that
users see when searching on phones.
• Users see all of the fields that are defined for the object’s search results, instead of the subset of fields shown on phones.
• 15 results are displayed per page. Navigate through multiple pages with the buttons at the bottom of the page.

Sort Search Results to Find the Right Records Faster


Salesforce1 mobile browser app users can sort search results, making it easier to locate the information they’re looking for.
By default, search results are sorted by relevance, with the records that best match the search term displayed at the top of the search
results page. But what if your users want to see search results organized differently, such as accounts by the date they were created or
opportunities by stage? Now they can, simply by tapping in the action bar on the search results page.

99
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Prevent Duplicate Records (Generally Available)


Data.com Duplicate Management lets you control whether and when you allow users to create
EDITIONS
duplicate records inside Salesforce. Set up duplicate rules in the full Salesforce site and you can also
manage whether Salesforce1 users can save records that are identified as possible duplicates. Available in:
Duplicate management is now generally available in all versions of the Salesforce1 mobile app. • Professional
Duplicate rules tell Salesforce what action to take when users attempt to create records that might • Enterprise
duplicate existing Salesforce records. For example, the rule could block users from saving the possible • Performance
duplicate record or allow them to save it anyway. • Unlimited
• Developer

100
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

By default, duplicate rules run when users save records. You can change this behavior for Salesforce1 so that duplicate rules run as users
complete fields on the record instead. This reduces data entry time, which is always desirable on a mobile device. In the full Salesforce
site, from Setup, click Salesforce1 Setup > Deduplication. In the Duplicate Rule Settings section, select Run duplicate rules
when users complete fields.
For more information about duplicate rules, including how to set them up, see Duplicate Management in the Sales Cloud section of
these release notes.

SEE ALSO:
Duplicate Alerts and Blocking (Generally Available)

See Google Map Images in Standard Address Fields


Records with standard address fields now display a Google Maps image of the address. This saves users time by letting them see where
their contacts or accounts are located, instead of having to locate addresses in an external map application. This feature is available in
all versions of Salesforce1.
On a record, go to the detail page to see the Google Maps image on the address field. To generate a map image, an address must include
the street and city fields and either the state, postal code, or the country.

The map image on the address is static and can’t be zoomed-in or zoomed-out. But tapping the map image opens the address in a map
app, where the user can see more details. The map app that is launched depends on the mobile device: Apple Maps opens on iOS
devices and Google Maps opens on Android, BlackBerry, and Windows 8.1 devices.

Note: The icon that appears in the action bar for some objects is a Salesforce1 productivity action that also launches a device’s
maps app. This action isn’t related to the Google Maps feature and is always available, even if Google Maps is disabled.

101
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

If an address field is missing any of the required information, a map doesn’t display. If your organization has Salesforce1 offline access
enabled, a map doesn’t display when a user’s device is offline.
Currently, maps and location services isn’t available for organizations with Developer edition.
Maps on standard address fields are enabled by default. To disable maps for your organization, see Enabling Maps and Location Services.
on page 216

SEE ALSO:
Use Visualforce Map Components to Show Location Data More Clearly

Use Address Auto-Completion in Standard Address Fields


You can enable auto-complete on standard addresses for all Salesforce1 users. This allows users to enter text on standard address fields
and see possible matching addresses in a picklist.
To enable auto-complete, from Setup in the full Salesforce Site, click Customize > Maps and Locations > Settings and check Enable
autocomplete on standard addresses.

See News about Accounts


With Account News in Salesforce1, sales reps can stay updated with the latest news on their accounts, anytime, anywhere. This feature
is available in all versions of the mobile app.

If you enable Account News for your organization, the Account News card appears on Account related information pages. The card
shows one top news item for the account. Tap More to see up to 10 news items. For Salesforce1 downloadable app users, Account
News also appears in Salesforce Today.
The news items that each user sees are unique, based on the account’s name and industry. In Salesforce Today, articles are also selected
based on the accounts that are associated with attendees on a user’s upcoming mobile calendar events and on recently viewed accounts.

102
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Account News is curated using technology provided by Data.com. Salesforce pre-processes all news articles to ensure relevance, and
to filter out spam and inappropriate content. In Spring ’15, it’s not possible to add or change news sources.
Account News is available in English only, and only to users in the United States.

Note: For most accounts, Salesforce provides articles from our own news processing platform, which collects news from Yahoo,
RSS feeds, and Twitter content of news providers. On occasion, if a match isn’t found in our database, we may search Yahoo for
news specific to your account, using the account name you’ve listed in Salesforce. Queries performed by Salesforce are performed
using secure protocols and are not linked to individual Salesforce users.

SEE ALSO:
Configure Access to Account News
Manage the Day Better with Even More Key Information in Salesforce Today

Configure Access to Account News


When you turn on Account News, the Account News card appears automatically on Account related information pages in all versions
of Salesforce1. It’s also included in Salesforce Today, which is available in the Salesforce1 downloadable apps.
Account News is disabled by default. Turn this feature on in the full Salesforce site. From Setup, click Salesforce1 Setup > Account
News. Look for the Enable Account News checkbox.

SEE ALSO:
See News about Accounts
Manage the Day Better with Even More Key Information in Salesforce Today

Turn Importing Contacts from Mobile Contact Lists On or Off


Starting with version 7.0 of the Salesforce1 downloadable apps, users can import contacts from their mobile device contact lists directly
into Salesforce. If you don’t want your users to import contacts from these sources, you can now turn this feature off for your organization.
From Setup in the full Salesforce site, click Mobile Administration > Salesforce1 > Settings, then select or deselect Allow
Salesforce1 to import Contacts from mobile device Contact lists.

Increase Close Rates with the Sales Path


Make it easy for sales reps to follow your organization’s sales process and get deals to closed! Sales Path is a visual assistant that guides
reps through each of the stages required to complete a sale. At each stage, Sales Path highlights key opportunity fields and offers
additional information, such as tips and Chatter links, that can help with closing the sale. This new tool is available in all versions of
Salesforce1.
When a sales rep views an opportunity in Salesforce1, Sales Path shows the opportunity’s stage, the key fields to complete, and additional
stage-relevant information, such as links to Chatter posts and files, tips for the stage, and policy notes. When the stage is completed, the
rep taps Mark Stage as Complete to continue. The opportunity updates to the next stage, displaying the key fields and information
for the new stage.

103
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Selected Mark Stage as Complete too soon? Sales reps can easily go back to an earlier stage by selecting the stage name and then
tapping Mark as Current Stage, or by changing the stage in the opportunity record. Fast track sale? Reps can skip ahead to a later stage
using the same process.

104
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Reps can hide Sales Path by tapping Show Less and recall it by tapping Show More. In either case, the entire opportunity, including
all of its fields, appears under All Details.

SEE ALSO:
Set Up Sales Path
Sales Reps Can Close Sales Faster with Sales Path

Set Up Sales Path


Setting up Sales Path for your Salesforce1 users is a straightforward process. The stages are populated
USER PERMISSIONS
with information from the opportunity record type you choose. You can have sales paths for each
of your sales processes, with one sales path for each opportunity record type. To enable Sales Path:
Enable Sales Path from Setup in the full Salesforce site. Click Customize > Sales Path > Settings, • “Customize Application”
then click Enable. To set up a sales path:
To set up a sales path, click New Sales Path and you’re on your way. Select the record type and • “View Setup”, AND
“Modify All Data”
the appropriate stages are automatically pulled into the sales path. Then specify the fields that reps
need to complete for each stage, along with some tips, links, or other information to guide your
users to success, and you’re finished.

Tip: For best performance, we recommend you create sales paths for sales processes that have 20 or fewer stages.

105
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

To turn on your sales path after the last step, select Activate on Finish. Your sales path will automatically be available to your
users without any additional configuration on your part.

SEE ALSO:
Increase Close Rates with the Sales Path
Sales Reps Can Close Sales Faster with Sales Path

Convert Leads to Contacts (Beta)


Sales representatives on the go can now convert qualified leads to contacts and create opportunities, which helps sales representatives
grow their revenue pipeline. This option is available in all versions of Salesforce1.

Note: The Lead Conversions feature in Salesforce1 is a beta version that is production quality but has known limitations. You can
provide feedback and suggestions for Lead Conversions on the IdeaExchange.
We’ve improved on what we delivered in Winter ’15. Now, if you enable Duplicate Management, sales representatives will know about
duplicate contacts for the leads they want to convert.
It’s easy to make this option available to your sales reps. From Setup in the full Salesforce site, click Customize > Leads > Settings.
Then, select the option Enable Conversions on the Salesforce1 App.

SEE ALSO:
Avoid Duplicate Contacts and Accounts when Converting Leads

Whisk through a Task List Even Faster on a Tablet


In task lists, tablet users no longer need to switch back and forth between the task list and task details. Instead, a separate column now
shows the details of the task selected in a list. The tablet version of task lists is currently available in the Salesforce1 mobile browser app
app only.

106
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

On a tablet, the action bar displays actions for the selected task record. Swiping left on a task in the list reveals the same actions.

Turn Posts into Tasks


Enhance the feed with a new action that lets users create tasks directly from a post. Enable the Create New Task action in the full Salesforce
site to make it available to your mobile users. When enabled, this feature is available in the Salesforce1 mobile browser app only.
For details about enabling this action, see Enhance the Feed with a New Task Action on page 203. The Create New Task action is only
available on text, content, and link posts. For example, users can’t create a task from a system-generated post like a record update.
Let’s say a user reads a post in her feed that she wants to follow up on. With the Create New Task action, the user can now create a task
directly from that post instead of taking extra steps to create the task from the action bar. The Create New Task action displays in the
drop-down menu on the post.
Here’s a post with the Create New Task action on the post’s drop-down menu. Tap the action to open the Create New Task page.

107
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

None of the task fields are required to submit the task. The task is assigned to the user who submitted it and is associated with the post.
After a user submits a task, the task displays in the user’s feed.

Tap the task name or View more details to see the task details page. To see the original post, tap a post. The task also displays in the
user’s My Tasks list.

Manage the Day Better with Even More Key Information in Salesforce Today
To ensure that Salesforce Today is the one-stop place where sales reps can manage their day, we’ve enhanced the main Today page to
include more key information instead of forcing users to navigate around Salesforce1 to find what they need. Users can now see current
Chatter posts that are directly relevant to them, news about accounts they’re meeting with on the current day, and their most recently
accessed dashboard. Today continues to be available in the Salesforce1 downloadable apps only.
The main Today page now includes this collection of cards, in this order: Current Event, Agenda, My Tasks, My Recent Records, To Me
Feed, Account News, and Dashboard.
To Me Feed card
• This card displays up to two of the most current posts from the To Me feed, so users can see at a glance the activities they need to
respond to or deal with.
• Only posts that are less than 72 hours old are included. If all posts in a user’s To Me feed are older, this card doesn’t display.

108
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

• Tap a post to open the post’s full details, or tap a link in the post to access a file or a record. The More link opens the full To Me feed.
Account News card
• This card displays if Account News is enabled for your organization. It highlights the most relevant news item for a user, based on
the accounts the user is meeting with that day. The More link opens a list of up to 10 top account-related news items for the user.
The news items shown are unique for each user.
• This card doesn’t display if there aren’t any relevant account-related news items to show.
• See See News about Accounts on page 102 for more information about the sources used for news items and how the content is
curated. To turn this card on for your organization, see Configure Access to Account News on page 103.
Dashboard card
• If a user has permission to access dashboards, this card displays the first chart from the user’s most recently visited dashboard. The
chart that’s shown changes with a user’s dashboard activities, and the label of the card always shows the current dashboard’s name.
• Tap the chart to open the component and it’s corresponding report. The More link opens the full dashboard.
• This card doesn’t display if the user hasn’t recently accessed any dashboards, or if the last viewed dashboard is empty.
See Other Salesforce Today Enhancements on page 119 for a few other updates to Today.

Use Filters in Dashboards


Dashboard filters make it easy to provide different combinations of data from a single dashboard.
EDITIONS
Now all Salesforce1 users can view and apply dashboard filters that were previously configured in
the full Salesforce site. Salesforce1 Reporting
available in: Group,
Simply tap to apply filters.
Professional, Enterprise,
Performance, Unlimited,
and Developer Editions

109
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Specify the Running User on Dynamic Dashboards


All Salesforce1 users can choose the running user for dynamic dashboards that are configured to
EDITIONS
run as a specified user. Previously, the default user couldn’t be changed in the mobile app.
Salesforce1 Reporting
available in: Group,
Professional, Enterprise,
Performance, Unlimited,
and Developer Editions

Tap to select a running user to view the dashboard from that user’s access level.

Refresh Dashboards More Easily


In the Salesforce1 apps, the action bar includes a new action for rerunning a dashboard, including
EDITIONS
all of its source reports. Rerunning source reports ensures that the dashboard shows up-to-date
data. Previously, the only way to refresh a dashboard was by using the pull-to-refresh gesture. Salesforce1 Reporting
Pull-to-refresh is no longer available, but dashboards quickly load data from the most recently run available in: Group,
reports when opened. Professional, Enterprise,
Performance, Unlimited,
and Developer Editions

110
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

View All Columns of Your Dashboard at the Same Time (Tablets Only)
On tablets, Salesforce1 users now see up to three columns at once on dashboards. Previously, each
EDITIONS
column was displayed on a separate page and the user had to swipe between pages to see all of
the columns. Swipe vertically through each column to view components in that column. The Salesforce1 Reporting
implementation of dashboards for tablets is available in versions 7.0 and later of the Salesforce1 available in: Group,
downloadable app for iOS and in the Salesforce1 mobile browser app. On phones, users still see Professional, Enterprise,
one column at a time. Performance, Unlimited,
and Developer Editions

111
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Quickly Access Report Charts (Tablets Only)


On tablets in landscape orientation, when users drill into a dashboard component to access the
EDITIONS
report, the chart displays in a new panel that slides open. This feature is available in versions 7.0
and later of the Salesforce1 downloadable app for iOS and in the Salesforce1 mobile browser app. Salesforce1 Reporting
When using tablets in portrait orientation or when using Salesforce1 on a smartphone, charts are available in: Group,
still shown at the top of the report. Professional, Enterprise,
Access the report chart by tapping the panel tab (1) on the right side of the page. Performance, Unlimited,
and Developer Editions

112
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

To filter a report by a value in the chart, simply tap it. Tap it again to remove the filter. To filter by more than one value, tap multiple
entries in the chart’s legend below the chart, but note that filtering using the legend overrides filters applied in the chart. Filtered reports
are sortable. To hide the chart, swipe it closed.

Access Recent Reports from the Navigation Menu


Now users can access their most recently viewed reports right from the Salesforce1 navigation
EDITIONS
menu. Previously, users had to drill into a report from a dashboard. The Reports item is available
in version 7.1 of the Salesforce1 downloadable apps and in the mobile browser app. Salesforce1 Reporting
available in: Group,
Professional, Enterprise,
Performance, Unlimited,
and Developer Editions

113
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Only recently accessed reports are available from the navigation menu. To access other reports, drill down from a dashboard.
All reports are shown in tabular format, with groupings added as columns to the end of the report. For example, on a summary report
grouped by Industry and Type, those fields appear as the last two columns of the report. Reports with the joined format are not shown.

See Fewer Report Rows for Better Performance on the Go (iPhone 6 Plus Only)
For enhanced stability when working on an iPhone 6 Plus, reports in Salesforce1 now display a maximum of 100 rows. Previously, reports
in Salesforce1 displayed a maximum of 2,000 rows. When on other iPhones, phones, tablets, or in the full Salesforce site, reports still
display a maximum of 2,000 rows.

See Promoted Terms and Highlights and Snippets in Salesforce Knowledge Search
Results
Search results for articles in Salesforce1 now show promoted search terms and highlighted search
EDITIONS
terms and snippets of relevant text, so users can quickly identify the best article and see how search
results match search terms. This enhancement is available in the Salesforce1 mobile browser app
only. Salesforce Knowledge is
available in Performance
Knowledge managers can promote an article in search results by associating keywords with the and Developer editions.
article. End users who search for these keywords see the article first in their search results. Promoted
Salesforce Knowledge is
search terms are useful for promoting an article that you know is commonly used to resolve a
available for an additional
support issue when an end user’s search contains certain keywords.
cost in Enterprise and
Search highlights and snippets gives your agents and users context as to why the particular result Unlimited editions.
matched their search query. The relevant text appears below the title with the search terms in bold.

114
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

View All Pending Approval Requests in One Location


Salesforce1 lists all pending approval requests in one central place, making it easy for users to keep
EDITIONS
track of pending approvals and respond to requests while on the go. This feature is now available
in the Salesforce1 downloadable app for Android devices, version 7.2. It was previously released in Approvals are available in:
the Salesforce1 downloadable app for iOS devices, version 6.0 and the Salesforce1 mobile browser Enterprise, Performance,
app. Unlimited, and Developer
To view an approval request, open the Salesforce1 navigation menu and tap Approvals (or Approval Editions, and for an
Requests in the iOS downloadable app). A list of pending approvals for the current user displays. additional cost in:
Tap a specific approval request to view the request details and then tap Approve or Reject. Professional Edition
Approvers can also tap notifications to open an approval request, view request details, and approve
or reject requests.
This item is included in the navigation menu by default. The layout can be configured using the Setup menu in the full site.
For more information, see “Approvals in Salesforce1: Limits and Differences from the Full Salesforce Site” in the Salesforce Help.

View All Paused Flow Interviews in One Location


For users who work with flows, Salesforce1 lists all paused flow interviews in one central place and
EDITIONS
makes it easy to resume interviews when out of the office. This feature is now available in the
Salesforce1 downloadable app for Android devices, version 7.2. And it’s also available in the Flows are available in:
Salesforce1 mobile browser app. Enterprise, Performance,
A flow is an application built in the Cloud Flow Designer that can execute logic, interact with the Unlimited, and Developer
Salesforce database, call Apex classes, and guide users through screens for collecting and updating Editions
data. For example, a flow can step support representatives through a call script that provides different
questions based on selections that the user makes earlier in the call. This way, the support

115
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

representative doesn’t try to sell a product to the customer when she already has the product. A flow interview is a running instance of
a flow.
To view a paused interview in Salesforce1, select Paused Flow Interviews from the navigation menu. A list displays the flow interviews
that the current user paused. The user can tap a specific interview to view details and then tap Resume or Delete. Any valid values that
users entered before they paused are saved with the interview, so they don't have to reenter that information when they resume.
The Paused Flow Interviews item is included in the Salesforce1 navigation menu by default. You can customize where this item appears
in the navigation menu. From Setup in the full Salesforce site, click Salesforce1 Setup > Mobile Navigation.

SEE ALSO:
Visual Workflow

Receive In-App Notifications about Reports (Generally Available)


Mobile users can now receive Salesforce1 in-app notifications about the reports they’re subscribed to, so they can stay up to date on
the metrics they care about most. For example, a user who subscribes to an open-issues report could opt to receive a notification
whenever there are more than 20 open issues. These notifications are available in all versions of the Salesforce1 app.
To receive this notification, a user must set up report notifications in the full Salesforce site and select the Salesforce1 notification type.
For details about setting up report notifications, see Subscribe to Receive Report Notifications (Generally Available) on page 209.
For more information about Salesforce1 notifications, see “Salesforce1 Notifications Overview” in the Salesforce Help.

Use Salesforce1 Offline Caching for Better Online Performance


As you’d expect, the Salesforce1 offline feature lets your Salesforce1 downloadable app users continue viewing recently accessed records
when they can’t connect to Salesforce. Maybe not as obvious, this feature is also useful for improving general performance of the
downloadable apps. When offline access is enabled, recently viewed data is stored in an encrypted, persistent cache on each user’s
mobile device. The downloadable apps use this cache even when a device is online, which means Salesforce1 doesn’t need to retrieve
data as frequently from Salesforce and can display information more quickly.
Access the Salesforce1 Offline settings page in the full Salesforce site, from Setup, by clicking Salesforce1 Setup > Offline Sync.
Informational text on this page has been updated to clarify the role of this setting. And the checkbox on this page is now called Enable
Caching in Salesforce1.

Changes to Salesforce1 Custom Branding


If you customize the Salesforce1 app to match the look and feel of your company’s branding, there are some changes related to where
your custom brand color displays. Custom branding is supported in all versions of Salesforce1.
• The header of all popup, overlay, and dialog windows is now white and no longer changes to show a custom Brand Color
setting. For example, this change can be seen when in edit and create windows or in the windows that open when selecting any
action from the action bar.
This change gives your users a visual indicator that they’re performing an action as opposed to simply viewing information.

• The Brand Color setting doesn’t change the action bar or the action menu icon anymore. (The action bar is available in the
Salesforce1 mobile browser app and the Salesforce1 downloadable apps, versions 7.0 and later.)
This change gives you more flexibility in the color you can set as your brand color. Previously, if you used white as your brand color,
the background of the action menu icon assumed this color and consequently “disappeared” against the action bar’s white
background.

116
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Other Changes in Salesforce1


Learn about other changes in the Salesforce1 app.

Device and Browser Support


Get Salesforce1 Notifications on the Apple Watch
When used on iPhones devices, the Salesforce1 for iOS app delivers all Salesforce1 push notifications to the Apple Watch, so a mobile
user can see alerts and key updates simply by turning her wrist.
Use the Salesforce1 Mobile Browser App on Windows 8.1 Tablets
The Salesforce1 mobile browser app is now available for use on select Windows® tablets. The app must be run in the Microsoft®
Internet Explorer® 11 browser and can be used on Microsoft Surface 2 and Surface Pro 3 devices, running Windows 8.1 Update.
Move Users Off Older iOS Mobile Devices that Are No Longer Supported
To ensure your users have an optimal experience using Salesforce1, we have removed support for these older, slower iOS devices:
• iPhone 4 and 4s
• iPad 2 and iPad 3
• iPad mini (first generation)
For the time being your users can continue to use Salesforce1 on these devices, but Salesforce no longer provides support in the
form of bug fixes or enhancements for any issues encountered. We do recommend that users with these older devices upgrade to
a supported smartphone or tablet soon—when we discontinue support for iOS7 in the upcoming months, it will no longer be
possible to use Salesforce1 on these older devices. See “Requirements for Using the Salesforce1 App” in the Salesforce Help for the
current list of supported devices.

Other Available Data and Navigation Enhancements


See a Different Arrangment of Items in the Default Salesforce1 Navigation Menu
The default arrangment of the navigation menu has changed for new organizations. These items are automatically included in all
of the Salesforce1 apps, in this order: Feed, Today, Dashboards, Tasks, Smart Search Items, People, Groups, Reports, Events, and
Approvals. Organizations that existed prior to Spring ’15 aren’t affected by this change. To modify the navigation menu, see “Customize
the Salesforce1 Navigation Menu” in the Salesforce Help.
Access Canvas Apps from the Navigation Menu in the Downloadable App for Android Devices
If you’ve configured the Salesforce1 navigation menu to include canvas apps, these apps are now included in the downloadable
app for Android devices, versions 7.1 and later. Previously canvas apps were available in the downloadable app for iOS devices and
the mobile browser app only. See Canvas Apps Accessible from the Salesforce1 Navigation Menu in the Spring ’14 release notes for
the steps to add canvas apps to the navigation menu.
Open Most Salesforce URLs Directly in a Salesforce1 Downloadable App
The Salesforce1 downloadable app for Android, version 7.2 now supports URL schemes, same as the Salesforce1 for iOS app. When
a user taps a Salesforce URL hyperlink, or enters a Salesforce URL into a browser address bar on a mobile device, she’s taken directly
to that page in Salesforce1. This saves users from having to manually navigate to desired information in the app.
For example, a user can email a Salesforce URL for an account to some coworkers. Simply by tapping the link in the email, a coworker
using a Salesforce1 downloadable app can automatically open the account record in the app.
An administrator or developer can customize a URL scheme to perform a specific action when Salesforce1 launches. See Salesforce1
Mobile URL Schemes for more information.

117
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release

Other Chatter Enhancements


View Comments Faster on Tablets
When using Salesforce1 on a tablet, all comments on a post appear inline so users don’t have to open the post to see the full
conversation. Users can still see the expanded view of a post and all its comments by tapping the post’s timestamp. Inline comments
are available in all feeds in the mobile browser app and in record feeds only in the downloadable app for iOS tablets. This feature
isn’t available in the downloadable app for Android devices.
Add or Remove Topics for Feed Posts
When using the Salesforce1 mobile browser app on a smartphone, Salesforce1 users can now edit the list of topics on existing feed
posts, just like in the full Salesforce site. Tap a post to see it’s expanded view then tap the icon. This feature isn’t available on a
tablet.
Control Visibility of Profile Pictures
Users of the mobile browser app and the downloadable app for Android devices can specify whether or not to display their profile
photo in front of guest users, directly below the uploaded photograph. This setting is useful for hiding pictures from guest users
without licenses, like in public communities.
See Groups Ordered by Activity in Group List Views
Group list views now show groups in order of usage, with the most recently used group displayed at the top of the list. Previously,
groups were listed alphabetically. This enhancement is available in all of the Salesforce1 apps.
See Member Profile Photos on Group Member Lists
The group member list now displays the profile photos of group members, instead of just their names as in previous releases. This
enhancement is available in all of the Salesforce1 apps.
Join or Ask to Join Groups from the Group Highlights Area
The Join Group and Ask to Join buttons have moved from the group details page to the highlights area at the top of a group,
making it easier for users to join groups. This enhancement is available in all of the Salesforce1 apps.

Other Search Enhancements


See More Relevant Search Results for People and Groups
Prior to Spring ’15, Salesforce1 returned search results for People or Groups whose names started with the search term. Only the
Name field was searched. Now all versions of the Salesforce1 app find people and groups that contain all of the words in the search
term within any of the fields on these objects. But matches on the Name field are ranked as more relevant than other matching
fields.
For example, a user searching for customer support sees results for a group named “Customer Support,” as well as a group
with “We support our customers” in the group’s description.
Search Group Feeds
All Salesforce1 users can now search group feeds to quickly find posts, comments, and files in a group.

Other Relationship and Data Management Enhancements


Create Contacts More Quickly with Auto-Populated Data from Call History
Starting with version 7.1 of the Salesforce1 downloadable app for Android devices, Call History now attempts to automatically fill in
the Phone field when creating a contact from a logged call.
Access More Coaching Features
All Salesforce1 users can now access all of the Work.com Coaching functionality that’s available in the full Salesforce site, including
editing coaching relationships, viewing private notes, and viewing goal metrics related to coaching.

118
Salesforce Spring ’15 Release Notes Salesforce1 Differences from the Full Salesforce Site

Other Salesforce Today Enhancements


Get Updated Information in Today as Needed
All of the Today cards update whenever a user accesses the app from the navigation menu. But the cards aren’t automatically updated
if a user leaves Today (for example, by opening an event or switching to a post, dashboard, task, or other record) then returns using
the button, or does an action that affects the information shown in Today, such as creating a new task. So now users can update
the information on the Today page as needed, using the pull-to-refresh gesture.
Use pull-to-refresh to see updated information on mobile calendar events too.
Do More Actions from Today
In versions 7.0 and later of the downloadable apps, the action bar is now available on the main Today page. The set of actions that
are available are those that are defined on the global publisher layout.
See Today Cards in Two Columns (Tablet Only)
When using versions 7.0 and later of the downloadable app for iOS tablets, the Today cards are displayed in two columns, allowing
users to see more information without scrolling. This enhancement isn’t available in the downloadable app for Android devices.
Weather Information No Longer Displayed in Today
To improve the performance of Today, weather information has been removed from the app.

Salesforce1 Differences from the Full Salesforce Site


The Salesforce1 app doesn’t have all of the functionality of the full Salesforce site, and in some cases includes features that aren’t available
in the full site.
For features introduced or updated in Spring ’15, there are differences in these areas:
• Chatter Questions
• Duplicate Management
• Salesforce1 Reporting
For complete details about the Salesforce features that are different in Salesforce1, see “Salesforce1 Limits and Differences from the Full
Salesforce Site” in the Salesforce Help.

Differences in Using Chatter Questions


• When users ask questions, similar questions and knowledge articles aren’t displayed in Salesforce1.
• To access the action drop-down menu for a question, Salesforce1 users must tap the question.

Differences in Duplicate Management (Generally Available)


• Each possible duplicate is shown on a “duplicate card.” Salesforce1 shows a maximum of 30 duplicates (10 per object), even if there
are more. It was previously documented that Salesforce1 showed a maximum of 15 duplicates.

Differences in Using Salesforce1 Reporting


• Report Charts aren't available.
• On iPhone 6 Plus, reports display a maximum of 100 rows. On other iPhones, phones, and tablets, just as on the full Salesforce site,
reports display a maximum of 2,000 rows.
• Users can’t drill into reports that have more than three checkbox fields.
• When viewing recent reports, users see summary reports, matrix reports, and tabular reports, but not joined reports.

119
Salesforce Spring ’15 Release Notes Salesforce1 App Development Overview

• In Salesforce1, just as in the full site, users can only run dashboards as a user in their role hierarchy. However, in Salesforce1 users
can choose from all users in the organization. Selecting a user outside the role hierarchy results in an error.

Salesforce1 App Development Overview


There are several Force.com platform enhancements that support Salesforce1 development.
• Lightning Pages
• Visualforce
• Name Changes and Label Changes for Quick Actions
• Action Links in the Feed
• API Support

Lightning Pages
Flexible Pages have been renamed Lightning Pages throughout the Salesforce documentation and user interface. They are still known
as FlexiPages in the API, however.

Visualforce
Visualforce has two new mapping components that are mobile-friendly and ready for your Salesforce1 apps. These components make
it easy to show location-based data on a map in as few as 10 lines of code. For details, see Use Visualforce Map Components to Show
Location Data More Clearly on page 263.
A minor change in accepted parameter values was made to the sforce.one.navigateToRelatedList() function. For
details, see Change in Parameter Values for sforce.one.navigateToRelatedList() on page 264.

Name Changes and Label Changes for Quick Actions


We’ve changed the names of a few action types in our documentation and in the Salesforce and Salesforce1 user interfaces so that you’ll
see terminology that accurately describes them. For complete details on these changes and their implications, see Actions Terminology
Changed on page 213.
• Publisher actions are now quick actions.
• Record actions and anchor actions are now productivity actions.
Some quick actions previously had buttons labeled Submit. Those buttons are now labeled Save.

Action Links in the Feed


An action link is a button on a feed element. Clicking an action link can take a user to another Web page, initiate a file download, or
invoke an API call to Salesforce or to an external server. An action link includes a URL and an HTTP method, and can include a request
body and header information, such as an OAuth token for authentication. Use action links to integrate Salesforce and third-party services
into the feed so that users can take action to drive productivity and accelerate innovation.
Action links are available in Apex on page 281 and Chatter REST API on page 314.

120
Salesforce Spring ’15 Release Notes Communities: Easier Setup and Branding, Question-to-Case

API Support
The Force.com APIs support Salesforce1 development. Unless otherwise noted, these enhancements for Salesforce1 development were
made available in API version 33.0.
Objects
The PlatformAction object is now available through the REST API and SOAP API, as well as via a SOQL query. PlatformAction is a
virtual read-only object that enables you to query for actions—such as standard and custom buttons, quick actions, and productivity
actions—that should be displayed in a UI, given a user, a context, device format, and a record ID.
The ListViewChart object represents a graphical chart that’s displayed on list views when the Salesforce1 mobile browser app is used
on a tablet. The chart aggregates data that is filtered based on the list view that’s currently displayed.
For more information, see API on page 303.
Chatter REST API
The Recommendation Definition Resources allow you to create custom recommendations that appear in community feeds. Use
these resources to get information about, create, modify, and delete recommendation definitions. You can also use these resources
to get information about, upload, modify, and delete recommendation definition photos. For details, see “Recommendation Definition
Resources” in the Chatter REST API Developer’s Guide.
The Scheduled Recommendation Definition Resources return information about scheduled recommendations and allow you to
create, update, or delete scheduled recommendations. See “Scheduled Recommendations Resources” in the Chatter REST API
Developer’s Guide.

Communities: Easier Setup and Branding, Question-to-Case


Simplified community setup, improvements to the Community Management design, additional Community Builder functionality, and
more features in the Napili self-service community template are the highlights of the Communities enhancements in Spring ’15.

IN THIS SECTION:
Community Management
In Spring ’15, we’ve added functionality to the Community Management page that was previously accessed through Setup, made
the navigation dynamic based on your community settings, and also provided a new Overview page.
Community Builder
Community Builder has been expanded to simplify your community design experience, and let you customize your pages even
further from a single interface.
Community Templates
The Community Templates have been enhanced with new features such as reCAPTCHA for security, a reputation leaderboard, and
a user settings view where logged in users can update their personal settings.
Dashboard Updates for External Users with Super User Access
In Spring ’15, we’ve made improvements that help external users work with community dashboards.
Get Questions Answered Quickly with Question-to-Case (Generally Available)
As your community develops, it’s important to ensure that users get speedy answers to their questions. With Question-to-Case,
moderators can now follow a simple process to create cases from questions in Chatter, ensuring that questions in the community
are resolved efficiently.
Enable Community Members to Manage Their Own Authentication Settings for External Systems
For access to external data sources and named credentials that use per-user authentication, users can now manage their own
authentication settings, so that you don’t have to.

121
Salesforce Spring ’15 Release Notes Community Management

Other Changes in Communities


Other important changes to Communities include new actions that earn users reputation points, changes to the community welcome
email, and the ability to add and remove topics from posts.

SEE ALSO:
How and When Communities Features Become Available

Community Management
In Spring ’15, we’ve added functionality to the Community Management page that was previously accessed through Setup, made the
navigation dynamic based on your community settings, and also provided a new Overview page.

IN THIS SECTION:
Administration Settings Moved from Setup to Community Management
Community Management is now a one-stop shop for setting up and managing your community. Setup consolidation makes it easier
for community administrators and managers to do their jobs from one location.
Updating Community Administration Settings Requires Community Membership
If you want to update a community’s administration settings in Community Management, you must have “Create and Set Up
Communities” permission and you must also be a member of that community.
Dynamic Navigation in Community Management Displays Only Relevant Community Settings
The Community Management page dynamically displays the customization options relevant to your community based on your
community template and your permissions and preferences. That way, you get only the information that you need.
Change Your Community Template Directly in Community Management
Change your community template if the requirements of your community evolve from when you first set it up.
Moderate Flagged Files Directly in Community Management
In Community Management, you can review and take action on the Flagged Files list, which contains a list of files that members of
the community have flagged as inappropriate. Now you’re no longer limited to using the API.
Manage Topics in Communities
As the number of topics in a community grows, you may want to streamline them to improve usability. Now you can create and
merge topics in one convenient location.
Translate Topic Names in Communities (Beta)
Specify unique, language-specific names for navigational and featured topics, customizing the experience for international versions
of communities.
Simplified Login and Self-Registration Options
We’ve made it simpler for you to configure the login, logout, and self-registration options for your community.
Create Person Accounts for Self-Registering Users
By default, all self-registering users are assigned as contacts to a single business account. If your business deals mostly with individuals
and you prefer to track them as individuals, you can now assign each self-registering user to a person account instead.

Administration Settings Moved from Setup to Community Management


Community Management is now a one-stop shop for setting up and managing your community. Setup consolidation makes it easier
for community administrators and managers to do their jobs from one location.

122
Salesforce Spring ’15 Release Notes Community Management

Administration Settings Moved to Community Management


The Administration Settings options for communities has moved to Community Management. This means that anyone who needs
to customize a community’s administration settings needs to be a member of the community. Previously, Administration Settings
were accessed in Setup, from Customize > Communities > All Communities.
Now, you can access Community Management in either of the following ways:
• From the community, click in the global header.
• From Setup, click Customize > Communities > All Communities, then click Manage next to the community name.
New Overview Page
Community Management now provides an Overview page that you can use to update basic settings in your community. The
Overview page now also includes some of the settings that were previously available in the Administration Settings in Setup. You
can use the Overview page to:
• Edit your community name, description, and URL
• Manage the status of your community
• Change your community template
• Access flagged items and dashboard and member settings via the Quick Links section
• Access your community’s Visualforce, Site.com, or Community Builder pages from the Advanced Customization section

Note: The Overview page displays advanced customization and quick links based on your community configuration and
permissions.

Other Changes in Community Management


Community Statuses Renamed
Previously, community statuses were Preview, Published, and Offline. Now the statuses are Preview, Active, and Inactive. You now
either Activate or Deactivate a community by clicking a button.

123
Salesforce Spring ’15 Release Notes Community Management

Updating Community Administration Settings Requires Community Membership


If you want to update a community’s administration settings in Community Management, you must have “Create and Set Up Communities”
permission and you must also be a member of that community.
Because the administration settings that were previously in Setup have now moved to Community Management, this requires that you
must be a member of the community whose Community Management page you are trying to access. This move means you can now
administer and manage your community in one place.
Users with “Create and Set Up Communities” permission who are not members of a community can still modify that community’s
administration settings through the API.

Note: Users with “Manage Communities” permission who are members of the community can still access Community Management
too, they just won’t see the administration settings.

IN THIS SECTION:
How do I update community membership using the API?
If you aren’t a member of a community, you can’t access Community Management to update administration settings, including
membership. As an alternative, you can use the API and Data Loader to add yourself and others to a community.

How do I update community membership using the API?


If you aren’t a member of a community, you can’t access Community Management to update administration settings, including
membership. As an alternative, you can use the API and Data Loader to add yourself and others to a community.

Tip: You can also use other data loaders to update your community membership such as Workbench.

1. Get the networkId for your community.


From Setup, go to Build > Customize > Communities > All Communities, then right-click your community URL and select
Inspect. The data-networkId property provides your networkId.

2. Get the profileId or permissionsetId you want to add.


From Setup, go to Administer > Manage Users > Profiles or Permission Sets. Click on the profile or permission set that you
want to add. The ID is the last part of the URL.
For example, at mycompany.salesforce.com/00aa11bb22, the ID is 00aa11bb22.

3. Create a .csv file with columns for networkId and parentId. For parentId, list the profileId or permissionsetId
you want to add.
4. Open Data Loader and select the Network Member Group object. Specify the location of the .csv file you created and complete
the Data Loader steps.
Once you have successfully added members using Data Loader, the members will be able to access Community Management from the
Manage link on the All Communities page in Setup.

Note: In order to access Community Management, the member must also have “Create and Set Up Communities” or “Manage
Communities” permission.

124
Salesforce Spring ’15 Release Notes Community Management

Dynamic Navigation in Community Management Displays Only Relevant Community


Settings
The Community Management page dynamically displays the customization options relevant to your community based on your community
template and your permissions and preferences. That way, you get only the information that you need.
This means as you customize your community, the left-hand navigation and the options available on those pages are dynamically
updated to display only the relevant customization options available to you. For example, if you are using the Identity template, you will
not see the Topics, Recommendations, Reputations, or Moderation nodes.
To override the dynamic navigation and show all community settings instead, regardless of whether they’re available for you to use or
not, select Administration > Miscellaneous > Show all settings in Community Management.

Change Your Community Template Directly in Community Management


Change your community template if the requirements of your community evolve from when you
EDITIONS
first set it up.
Available in:
Tip: You won’t lose any data when you change templates, but make sure to review
• Enterprise
“Considerations When Changing Your Community Template” in Getting Started With
• Performance
Communities before performing the steps below.
• Unlimited
If your community is already active and you change templates from a Salesforce Tabs + Visualforce • Developer
template to a Community Builder-based template, or from a Community Builder-based template
to another Community Builder-based template, your template change is saved in a draft version
that you can further customize in Community Builder. You must publish your changes in Community
USER PERMISSIONS
Builder before your active community is updated. To create, customize, or
If your community is already active and you change templates from a Community Builder-based activate a community:
template to a Salesforce Tabs + Visualforce template, your active community is updated immediately. • “Create and Set Up
In this scenario, we recommend that you first deactivate your community. Once you have made Communities”
all of your changes, you can then re-activate it. AND
If your template is listed as None, this means you’re not using a predefined Community Is a member of the
Builder-based template or you have modified a Community Builder-based template. community whose
Community
If you are using a Community Builder-based template and you customize your template, the Management page
Overview page shows the name of template you have in draft mode in Community Builder. A they’re trying to access.
warning message reminds you to publish your changes in Community Builder.
1. Access Community Management in either of the following ways:
• From the community, click in the global header.
• From Setup, click Customize > Communities > All Communities, then click Manage next to the community name.

2. On the Overview page next to your currently selected Template, click to change your template selection.
3. Choose a template that meets your community’s needs.
To learn more about using the Kokua, Koa, and Napili templates, see the Community Templates for Self-Service Implementation Guide.
To learn more about using the Aloha template, see the Identity Implementation Guide.

4. When prompted, select Change Template to confirm your changes.

125
Salesforce Spring ’15 Release Notes Community Management

Moderate Flagged Files Directly in Community Management


In Community Management, you can review and take action on the Flagged Files list, which contains a list of files that members of the
community have flagged as inappropriate. Now you’re no longer limited to using the API.
All community managers with the “Moderate Communities Files” permission can now view the Flagged Files list under Moderation >
Flagged Files and take action on those flagged items. Community managers can remove flags and delete files directly from the
Community Management page. You can continue to use the API to moderate your flagged files.

Manage Topics in Communities


As the number of topics in a community grows, you may want to streamline them to improve
EDITIONS
usability. Now you can create and merge topics in one convenient location.
In Community Management, click Topics > Topic Management. For detailed instructions, see Available in:
the online Help (available when Spring ’15 is released). • Enterprise
• Performance
Note: Topic merging is in beta and has known limitations. Assignments for feed items and • Unlimited
records are merged, but topic-following and endorsement data isn’t. We welcome your • Developer
feedback on the IdeaExchange.

USER PERMISSIONS

To access the Community


Management page:
• “Manage Communities”
OR
“Create and Set Up
Communities”

To create or merge topics:


• “Create Topics”
OR
“Merge Topics”

126
Salesforce Spring ’15 Release Notes Community Management

Translate Topic Names in Communities (Beta)


Specify unique, language-specific names for navigational and featured topics, customizing the
EDITIONS
experience for international versions of communities.
Available in:
Note: Topic translation is in beta and has known limitations. We welcome your feedback
• Enterprise
on the IdeaExchange.
• Performance
1. From Setup, click Translation Workbench > Translate. • Unlimited
2. Select the Language you're translating into. • Developer

3. For Setup Component, select Managed Topic.


USER PERMISSIONS
4. In the Community Name column, expand a community to see its master topic names.
5. Double-click in the Topic Name Translation column to enter language-specific To translate terms:
names for navigational and featured topics. (Only those topic names are translated.) • “View Setup and
Configuration”
AND
Simplified Login and Self-Registration Options Be designated as a
We’ve made it simpler for you to configure the login, logout, and self-registration options for your translator
community.
• Specify the default profile and account that self-registering users should be assigned to directly
in Community Management; you can do this under Administration, on the Login & Registration page. You are no longer required to
update the self-registration Apex controller to configure self-registration, but you can use it to further customize the self-registration
experience. However, if you have configured the self-registration Apex controller in the past, those settings override any settings
you specify via the Community Management UI.

• Search for and assign the login and self-registration pages for your community directly from Community Management. You can pick
between the default page that comes with the community, a custom Community Builder page, or a custom Visualforce page. Any
custom pages must be created and published prior to selecting them for the community.

• You can automatically create person accounts for self-registering users.

127
Salesforce Spring ’15 Release Notes Community Builder

Create Person Accounts for Self-Registering Users


By default, all self-registering users are assigned as contacts to a single business account. If your business deals mostly with individuals
and you prefer to track them as individuals, you can now assign each self-registering user to a person account instead.
To do this, ensure that you have person accounts enabled in your community and leave the Account field blank in the self-registration
options; Salesforce will create separate person accounts for each self-registering user. Note that you must specify a default profile to
assign them to. You can further customize this functionality using the self-registration Apex controller, but you aren’t required to do this.

Creating person accounts for self-registering users is supported for the Customer Community and Customer Community Plus licenses
only.

Community Builder
Community Builder has been expanded to simplify your community design experience, and let you customize your pages even further
from a single interface.

IN THIS SECTION:
Streamline Community Creation with the Enhanced Wizard
Galvanize your community customization with an enhanced wizard for creating a community. Create a community from Setup by
following the prompts to select one of five templates to apply to your community. Define your template and community properties
in one place, then use the newly expanded Community Builder to finish designing and organizing your community—with no need
to go back to Site.com Studio.
Edit Your Pages in Community Builder
Now you can brand and design your community all in one place! Use Community Builder’s new Page Editor and associated Property
Editor to customize your community’s pages perfectly. Seamlessly select and edit any of your page elements, and then preview your
changes before publishing them.
Preview Design Changes with Pop-Out Preview
See your newly designed community through your customers’ eyes with Community Builder’s new preview capability. Preview your
community in the same window where you’re editing to see changes as you work. And use the new pop-out button to view the
community in its own tab, as a customer would.
Navigate to Any Page within Your Community
Jump directly to any page in your community from the enhanced Community Builder toolbar. Community Builder’s expanded
navigation capabilities let you customize any area of your community from one place, so you don’t have to leave Community Builder
to style and preview all of your community’s pages.
Match Your Colors and Styles Precisely with Enhanced Branding
Use Community Builder’s enhanced Branding Editor to efficiently apply the perfect color scheme and styles to your community.
Choose a color scheme with new color palettes, which instantly apply a set of colors to your community. You can even create a
custom color palette from your own logo. Plus, differentiate your text elements with new font weight and style options.

128
Salesforce Spring ’15 Release Notes Community Builder

Update Your Template from Community Builder


Use Community Builder to learn about and apply a new version of your community’s template. Updating your template keeps your
current branding, while saving a copy of your community with the old template version applied. This way, you get the latest styling
and functionality for your community with the option to revert to your previous template version.

Streamline Community Creation with the Enhanced Wizard


Galvanize your community customization with an enhanced wizard for creating a community.
EDITIONS
Create a community from Setup by following the prompts to select one of five templates to apply
to your community. Define your template and community properties in one place, then use the Available in:
newly expanded Community Builder to finish designing and organizing your community—with • Enterprise
no need to go back to Site.com Studio. • Performance
When you create a community, you choose from three responsive, self-service templates plus one • Unlimited
App Launcher template and one standardized structure for customizing with Visualforce. • Developer

Note: If you base your new community on one of the responsive self-service templates, use
the enhanced Community Builder to brand and edit your community pages. Community
USER PERMISSIONS
Builder also lets you update your community’s template. To create, customize, or
With the self-service templates (Koa, Kokua, and Napili), you can create a self-service community publish a community :
that gives your customers easy access to knowledge articles. • “Create and Manage
Communities”
With the App Launcher template (Aloha), give community users Salesforce Identity features, including
OR
their own App Launcher. The App Launcher provides single sign-on access to useful applications
from Salesforce and other service providers in one view. Site.com
Publisher User
With the Salesforce Tabs + Visualforce option, use Visualforce to customize a standardized structure, field enabled on the user
as you could prior to the Spring ’15 release. detail page
Create a community from Setup by clicking New Community above the All Communities list. The AND
wizard prompts you to choose a template, and guides you through specifying your template’s Site administrator or
properties (if relevant). designer role assigned
at the site level

129
Salesforce Spring ’15 Release Notes Community Builder

130
Salesforce Spring ’15 Release Notes Community Builder

For more information on which templates are available and how to use them to optimize your community, see the Community Templates
for Self-Service Implementation Guide.

Edit Your Pages in Community Builder


Now you can brand and design your community all in one place! Use Community Builder’s new
EDITIONS
Page Editor and associated Property Editor to customize your community’s pages perfectly.
Seamlessly select and edit any of your page elements, and then preview your changes before Available in:
publishing them. • Enterprise
The Page Editor lets you modify your community’s design one element at a time. When you open • Performance
your community in Community Builder, it’s in a view-only state. Click the Page Editor icon at the • Unlimited
left (just above the Settings icon) to see a list of the elements on the page. To edit, select a page • Developer
element from the list at the left or directly on the main canvas.
USER PERMISSIONS

To create, customize, or
publish a community:
• “Create and Manage
Communities”
OR
Site.com
Publisher User
field enabled on the user
detail page
AND
Site administrator or
designer role assigned
at the site level

131
Salesforce Spring ’15 Release Notes Community Builder

After you’ve selected a page element, use the Property Editor at the right to modify it.

Use the Preview button in the toolbar to view your changes before publishing.

Note: You still use Site.com Studio to drag and drop or delete page elements.

132
Salesforce Spring ’15 Release Notes Community Builder

Preview Design Changes with Pop-Out Preview


See your newly designed community through your customers’ eyes with Community Builder’s new
EDITIONS
preview capability. Preview your community in the same window where you’re editing to see
changes as you work. And use the new pop-out button to view the community in its own tab, as Available in:
a customer would. • Enterprise
After you’ve made changes to your community, click Preview to see your changes without the • Performance
editing tools in view. • Unlimited
• Developer

USER PERMISSIONS
Even in preview mode, Community Builder’s toolbar and menus appear in your browser window.
To create, customize, or
Use the new pop-out preview feature to eliminate visual “noise” and see how your community will
publish a community:
look to a customer.
• “Create and Manage
Communities”
OR
Site.com
The community appears in its own tab, without any of the Community Builder tools. Publisher User
field enabled on the user
detail page
AND
Site administrator or
designer role assigned
at the site level

133
Salesforce Spring ’15 Release Notes Community Builder

Navigate to Any Page within Your Community


Jump directly to any page in your community from the enhanced Community Builder toolbar.
EDITIONS
Community Builder’s expanded navigation capabilities let you customize any area of your community
from one place, so you don’t have to leave Community Builder to style and preview all of your Available in:
community’s pages. • Enterprise
Use the Page drop-down list in the Community Builder toolbar to navigate to any page of your • Performance
community, including login, registration, and error pages. You can navigate to different pages while • Unlimited
you’re editing pages or while previewing changes that you’ve made. • Developer

USER PERMISSIONS

To create, customize, or
publish a community:
• “Create and Manage
Communities”
OR
Site.com
Publisher User
field enabled on the user
detail page
AND
Site administrator or
designer role assigned
at the site level

The Communities menu just above the new Page drop-down list still takes you back to Community Management, Setup, or Site.com
Studio.

134
Salesforce Spring ’15 Release Notes Community Builder

Match Your Colors and Styles Precisely with Enhanced Branding


Use Community Builder’s enhanced Branding Editor to efficiently apply the perfect color scheme
EDITIONS
and styles to your community. Choose a color scheme with new color palettes, which instantly
apply a set of colors to your community. You can even create a custom color palette from your own Available in:
logo. Plus, differentiate your text elements with new font weight and style options. • Enterprise
Community Builder’s Branding Editor now provides a fully customized design experience for your • Performance
community’s color scheme. When you open your community, the Branding Editor displays by • Unlimited
default. • Developer

USER PERMISSIONS

To create, customize, or
publish a community:
• “Create and Manage
Communities”
OR
Site.com
Publisher User
field enabled on the user
detail page
AND
Site administrator or
designer role assigned
at the site level

Now you can:


• Apply a color scheme that’s appropriate for your template all at once with the color palette;
• Choose colors for your text and border elements while you color your community;
• Upload your own logo image to create a custom color palette;

135
Salesforce Spring ’15 Release Notes Community Builder

• Maintain your own color palettes by saving or removing them as needed;


• Specify font weight and style, in addition to font family;
• Expand and collapse the color palette to save visual space as you work.
For more information on using Community Builder to brand your community, see the Community Templates for Self-Service Implementation
Guide or the Salesforce online help.

Update Your Template from Community Builder


Use Community Builder to learn about and apply a new version of your community’s template.
USER PERMISSIONS
Updating your template keeps your current branding, while saving a copy of your community with
the old template version applied. This way, you get the latest styling and functionality for your To create, customize, or
community with the option to revert to your previous template version. publish a community:
• “Create and Manage
When a new version of your template is available, you’ll see a red notification icon over the Settings
Communities”
icon in Community Builder.
OR
Site.com
Publisher User
field enabled on the user
detail page
AND
Site administrator or
designer role assigned
at the site level

To get your template update, simply click the red notification icon, and then click Update. You’ll see the latest information about your
template.

136
Salesforce Spring ’15 Release Notes Community Templates

When you click Update, your template will be updated to the newest version. The update won’t be live until you publish your community.
You’ll have a chance to check out all your pages and make sure your branding and styles are as you expect.

Note: For the Koa and Kokua self-service templates, general settings are carried over in addition to branding. Otherwise, only
branding is carried over. In all cases, other customizations are not automatically carried over.
Updating your community’s template automatically creates a unique URL for your community’s home page. To restore your community
to the previous template version, set the home page URL back to what it was before, in Site.com Studio, under Site Configuration.

Community Templates
The Community Templates have been enhanced with new features such as reCAPTCHA for security, a reputation leaderboard, and a
user settings view where logged in users can update their personal settings.

IN THIS SECTION:
Prevent Spammers from Creating Cases
Protect your community from spammers by adding a reCAPTCHA widget that guest users must complete before they create a case.
User Settings View Added in the Napili Template
We’ve introduced a new view so that users who are logged in to their self-service community can view their personal settings.
Napili Profile View Enhanced
The Profile View in the Napili template just got even better! We rearranged it so that your users can see what matters most—user
details and activity. We also added a Follow button, user statistics, and an Activity tab that shows a user’s feed.
Attach Files to Questions in Napili Communities
Members of self-service communities built on the Napili template can now attach files to their Question posts. Sharing information
and photos with other community members just got easier!
Highlight Active Members on the Napili Reputation Leaderboard
The Reputation Leaderboard page element displays a list of up to fifteen users with the highest reputation points in your community.
More Topics Functionality in the Napili Template
The Napili template now includes page elements for trending topics and related topics. Also, users can now follow topics from the
topic page.

137
Salesforce Spring ’15 Release Notes Community Templates

Prevent Spammers from Creating Cases


Protect your community from spammers by adding a reCAPTCHA widget that guest users must
EDITIONS
complete before they create a case.
The reCAPTCHA widget requires guest users to complete a text field successfully before they can Available in:
create a case. Setting up the widget on the Case Creation page elements protects your community • Enterprise
from spam case submissions. • Performance
• Unlimited
Note: To use Google’s reCAPTCHA service, go to the Google reCAPTCHA website, register • Developer
your domain, and receive a private and public key pair. For details on which languages are
supported in the widget, see the reCAPTCHA website. Google reCAPTCHA is a resource
provided by Salesforce to support its users and partners, but is not considered part of our
Services for purposes of the salesforce.com Master Subscription Agreement.

User Settings View Added in the Napili Template


We’ve introduced a new view so that users who are logged in to their self-service community can view their personal settings.
The User Settings menu lets users manage their personal settings directly in the Napili template. The My Settings menu is available in
the profile header for authenticated users. The language, locale, and time zone settings let users localize the community so that they
see everything in their own language. The email notification settings let users control when they receive email based on activity in the
community. For example, the user can choose to receive an email if someone starts following them or comments on their post, but not
when someone likes their post. Users can click “My Settings” in the profile header to view and change their settings.
To set up the User Settings view, ensure that the User Settings page element is displayed in the User Profile view. You can configure the
name of the User Settings view in the Profile Header view. The default is My Settings. For more information on setting up and configuring
views, see the Community Templates for Self-Service Implementation Guide

138
Salesforce Spring ’15 Release Notes Community Templates

Example:

User Settings View:

Napili Profile View Enhanced


The Profile View in the Napili template just got even better! We rearranged it so that your users can see what matters most—user details
and activity. We also added a Follow button, user statistics, and an Activity tab that shows a user’s feed.
Profile View Layout:

139
Salesforce Spring ’15 Release Notes Community Templates

New Layout for Profile View


When a user views their profile or someone else’s profile, they expect to see user details first. We reorganized the profile layout so
that user details, statistics, and reputation level are at the top of the profile view. Also when viewing their own profile, a user now
sees the Activity tab in front, so that they can easily access their feed. If they want to view cases, they can click the Cases tab.
Nickname Shown Instead of Full Name in User Detail
We know your users’ privacy is important, so we removed the full name from the user detail and replaced it with the user nickname.
When a user views their own profile, they still see their full name, but when viewing another user’s profile, only the nickname is
shown. Note that nickname display must be enabled in the Administration Settings for the community.
Reputation Points (1)
It’s motivating to see how active you and your fellow community members are. That information is easy to find now that users can
view their reputation point total, in addition to their reputation level, right below their profile photo.
User Statistics (2)
Another way to find out if a community member is active is to see how much they post and comment or receive likes in the
community. The new User Profile Stats page element shows number of posts and comments, likes received, followers, and people
the user is following.
Activity Tab (3)
It’s important for your users to have access to their community feed in one place. The Activity tab on a user’s profile shows all of their
activity in the community. When a user is viewing another user’s profile, they still see that user’s feed in the Activity tab. As an
administrator, you can rename the Activity tab in the User Profile Tabs page element.
Cases Tab (4)
The Cases page element is now available through the Cases tab. When a user views their own profile, they see the Cases tab which
displays all of their cases. When viewing another user’s profile, the Cases tab isn’t visible. As an administrator, you can rename the
Cases tab in the User Profile Tabs page element.

140
Salesforce Spring ’15 Release Notes Community Templates

Follow Button
Users can now easily follow another community member by clicking the Follow button on the user’s profile. The Follow Button page
element on the User Profile view disappears when a user views their own profile.

Attach Files to Questions in Napili Communities


Members of self-service communities built on the Napili template can now attach files to their Question posts. Sharing information and
photos with other community members just got easier!

Attachments on questions are automatically added to new communities created after the Spring ‘15 release, and to communities that
have been upgraded to the templates released in Spring ‘15.

Highlight Active Members on the Napili Reputation Leaderboard


The Reputation Leaderboard page element displays a list of up to fifteen users with the highest reputation points in your community.
The leaderboard allows you to recognize the top active and influential members in the community by highlighting them on the community
home page. You can configure the leaderboard to display up to 15 users in the leaderboard. The list of users is automatically populated
based on reputation points earned by members in the community.

141
Salesforce Spring ’15 Release Notes Community Templates

More Topics Functionality in the Napili Template


The Napili template now includes page elements for trending topics and related topics. Also, users can now follow topics from the topic
page.
• The Trending Topics page element allows users to view up to five of the most popular or active topics on your community’s home
page.

• The Related Topics page element displays on a topic detail page, and lists up to five topics that are closely associated with the topic
being viewed.

• The Follow Button allows users to follow a topic from the topic detail page.

142
Salesforce Spring ’15 Release Notes Dashboard Updates for External Users with Super User
Access

Dashboard Updates for External Users with Super User Access


In Spring ’15, we’ve made improvements that help external users work with community dashboards.

Note: External users with super user access include partner users with “Partner Super User Access” permission and customer users
with the “Portal Super User” permission.
External Users with Super User Access Can Now Be Selected for “Run as specified user”
External users with super user access can now be selected as the “Run as specified user” when working with dashboards in communities.
Specifying external users with super user access for “Run as specified user” is not supported in legacy customer or partner portals.
To take advantage of the “Run as specified user” refresh, you could grant partner managers access to their own performance
dashboards by simply creating one dashboard, and then let those users access the according dashboard folder. Each partner manager
would only see their own data and be able to refresh the dashboard. Previously, to accomplish the same result, you would need to
create one dashboard per partner using the “Run as specified user” option and apply a filter by partner account in each dashboard.
External Users with Super User Access Can Now Refresh Dashboards They Have Access To
• For dashboards set up with “Run as logged-in user,” a refresh button is now available and a timestamp shows the last refresh.
By default these dashboards are refreshed automatically upon access. After the initial refresh, the data is cached for 24 hours.
• For dashboards set up with “Run as specified user,” a refresh button is now available and a timestamp shows the last refresh.
External users with super user access can refresh dashboards set up with “Run as specified user” and “Run as logged-in user” up to
100 times daily per organization. Scheduled and automatic refreshes don’t count against the limit. There is no refresh limit for internal
users.

Get Questions Answered Quickly with Question-to-Case (Generally


Available)
As your community develops, it’s important to ensure that users get speedy answers to their
EDITIONS
questions. With Question-to-Case, moderators can now follow a simple process to create cases
from questions in Chatter, ensuring that questions in the community are resolved efficiently. Available in:
Question-to-Case is available in all Salesforce organizations and communities where Chatter • Group
Questions is enabled. Moderators can escalate questions to cases directly in the feed. You can also • Professional
set up processes—similar to workflow rules—in the Lightning Process Builder that automatically • Enterprise
create cases from questions that meet specified criteria. • Performance
• Unlimited
• Developer

To learn more about Question-to-Case, see Create Cases from Questions in Chatter with Question-to-Case (Generally Available).

143
Salesforce Spring ’15 Release Notes Enable Community Members to Manage Their Own
Authentication Settings for External Systems

Enable Community Members to Manage Their Own Authentication Settings


for External Systems
For access to external data sources and named credentials that use per-user authentication, users
EDITIONS
can now manage their own authentication settings, so that you don’t have to.
Previously, users could manage their own authentication settings for external systems only when Available in:
the organization enabled the improved Setup user interface and the users had access to their • Enterprise
personal settings in Salesforce. Other users, such as those with community licenses, required • Performance
administrators to manage their authentication settings. • Unlimited
• Developer
This feature is supported in communities that use the Salesforce Tabs + Visualforce template.
Community Builder templates don’t support this functionality.
To manage authentication settings for external systems from within a community:
• Users with community licenses click My Settings > Authentication Settings for External Systems.
• Users in your internal organization with access to communities click Your name > My Settings to access their personal settings.
To enable a community user to manage authentication settings for external systems, grant the user access to the external data sources
and named credentials through permission sets or profiles. For users who access external data sources, also grant object permissions
through permission sets or profiles so that they can view the external objects.
For more information about external data sources, see “The Files Connect” and “Set Up External Data Access with Lightning Connect”
in the Salesforce Help.
For more information about named credentials, see “Named Credentials Overview” in the Salesforce Help.

Other Changes in Communities


Other important changes to Communities include new actions that earn users reputation points, changes to the community welcome
email, and the ability to add and remove topics from posts.
Users Can Now Earn Reputation Points for Endorsements
Users can now earn points for endorsing someone for knowledge on a topic or being endorsed. By default, endorsing someone
earns a user 5 points, and being endorsed earns a user 20 points.
Community Welcome Email No Longer Appends Usernames in the Footer
When welcome emails are sent to new community members, their username will no longer be appended in the footer. This change
streamlines the welcome email. For existing communities, if you would like to include their username, you must add the
{!Receiving_User.Username} merge field to your email templates. For new organizations that enable communities for
the first time, the welcome email template includes the {!Receiving_User.Username} merge field by default.
Community Forgot Password and Changed Password Emails No Longer Contain Usernames
When password emails are sent to community members, their username will no longer be in the messages.
Campaign Tab Support Added for Partner Users
Partner users can see the Campaign tab if the administrator has selected to include the tab in the community. Previously, community
administrators had to create a Visualforce page to allow partner users to access campaigns.
Add or Remove Topics from Posts
To the upper-right of an existing post, users can click and choose Edit Topics to change assignments. (To ensure community
usability, at least one topic must remain.)
Accessibility Improvements Added for the Koa, Kokua, and Napili Templates
We’ve added focus indicators and made a number of changes to improve the mobile accessibility experience for users working with
assistive devices, such as speech recognition software and screen readers.

144
Salesforce Spring ’15 Release Notes Sales: Duplicate Management, Sales Path, and More

Sales: Duplicate Management, Sales Path, and More


Spring ’15 makes it easier to manage duplicate records and guide reps through the sales process. And there’s more. The newly christened
Enterprise Territory Management includes key enhancements for tracking territories across companion objects, and with Collaborative
Forecasts, sales reps can now make their own adjustments. Email Connect, Salesforce for Outlook, and Activities also offer exciting new
capabilities.

IN THIS SECTION:
Duplicate Management (Generally Available)
Maintaining clean and accurate data is one of the most important things you can do to help your organization get the most out of
Salesforce, so we’re excited to introduce Data.com Duplicate Management. Now you can control whether and when you allow users
to create duplicate records inside Salesforce; customize the logic that’s used to identify duplicates; and create reports on the duplicates
you do allow users to save.
Avoid Duplicate Contacts and Accounts when Converting Leads
Now your sales teams know when the qualified leads they convert result in duplicate records. Take advantage of duplicate management
rules to keep your sales teams’ contacts and accounts free from duplicates.
Sales Reps Can Close Sales Faster with Sales Path
Help sales reps on the go keep their eyes on the prize—from anywhere. Sales Path guides your reps through each stage of your
company’s sales process and helps them stay focused on important sales tasks, so your reps can close their deals quickly.
Enterprise Territory Management
To reflect our ongoing commitment to developing full-featured enterprise CRM solutions, we’ve renamed Territory Management
2.0 to “Enterprise Territory Management”. Our latest features offer more options for assigning and managing relationships among
accounts, territories, and opportunities, greater insight into territory characteristics through custom fields on list views and records,
and additional territory information on select reports. We’ve also made a few updates to the API and Metadata API. See those sections
of these release notes for more information.
Let All Forecast Users Adjust Their Own Forecasts with Flexible Forecast Adjustments
Collaborative Forecasts continues to get better. Reps now have the power to make adjustments to their own forecasts without
changing the underlying opportunity value. And sales managers can save time by adjusting the rolled up forecast number instead
of each individual forecast number for every rep.
Products Now Have Field History Tracking
Field history tracking is available for Products.
Email Connect
Learn about our new product area—Email Connect. Within it, we’re introducing two of our latest email integration features: Exchange
Sync, which syncs your users’ contacts and events between Exchange-based email systems and Salesforce, and Salesforce App for
Outlook, which lets sales folks create Salesforce contacts, or view them and other sales-related records directly in Microsoft® Outlook
Web App (OWA) Outlook® 2013.
Salesforce for Outlook
Get your sales teams on the path to higher productivity with features that help sales professionals better manage tasks and track
the emails they add to Salesforce records.
Activities
Events and tasks are the building blocks of sales productivity. We’ve made enhancements that boost your sales teams’ edge over
the competition, along with updates to improve performance and usability.

145
Salesforce Spring ’15 Release Notes Duplicate Management (Generally Available)

New Email Templates and Tone for Salesforce to Salesforce


Salesforce to Salesforce has undergone a spring cleaning! For Spring ‘15, Salesforce to Salesforce got a few updates to keep its email
templates, labels, and user interface fresh and intuitive.
Salesforce Console for Sales
The Salesforce Console for Sales gives you easy access to sales intelligence in a dashboard that means more access to contextual
data with fewer clicks and less scrolling.
Other Changes in the Sales Cloud
We’ve made additional changes to the Sales cloud to improve usability.

SEE ALSO:
How and When Sales Features Become Available

Duplicate Management (Generally Available)


Maintaining clean and accurate data is one of the most important things you can do to help your
EDITIONS
organization get the most out of Salesforce, so we’re excited to introduce Data.com Duplicate
Management. Now you can control whether and when you allow users to create duplicate records Available in:
inside Salesforce; customize the logic that’s used to identify duplicates; and create reports on the • Professional
duplicates you do allow users to save. • Enterprise
• Performance
Note: Duplicate Management uses Data.com technology, but does not require a Data.com
• Unlimited
license.
• Developer

146
Salesforce Spring ’15 Release Notes Duplicate Management (Generally Available)

For more information about Data.com Duplicate Management, including detailed information about matching rules, see Managing

Duplicate Records in Salesforce. Also, check out the video: Understanding Matching Rules (4:32).

Key Improvements from the Winter ’15 Beta Release


• Custom objects are supported by duplicate rules and matching rules.
• Cross-object matching is supported by duplicate rules. For example, set up a rule so that when users attempt to save contact records,
they’ll see a list of possible duplicate contacts and leads.
• When your duplicate rules are set up to match across objects, you can decide how the matching rule fields map to each other. For
example, you might map the Account Name field for a contact to the Company name for a lead.
• When your matching rule includes custom fields, you can decide how the fields map to each other. For example, you might map a
custom field called Work Email to the standard Email field.
• You can use fields with picklist values in your custom matching rules.
• We’ve improved how duplicate rules work when converting leads. If your organization has the “Use Apex Lead Convert” permission
and a user converts a lead to a new or existing contact or account, the action specified in the duplicate rule will determine whether
the lead can be converted.
• We’ve improved how duplicate rules work with Data.com. Now, if your organization uses Data.com and the Data.com duplicate
preference option is set to allow duplicate records to be added from Data.com:
– The action specified in the duplicate rule will determine whether the user can add the record.
– Users can click Save (ignore alert) on the comparison page when manually cleaning a record to ignore duplicate alerts and
save the record.

147
Salesforce Spring ’15 Release Notes Duplicate Management (Generally Available)

• We’ve added a bunch of new APIs and Apex classes for duplicate management. See the API and Apex sections of these release notes
for more information.

Duplicate Management Limitations


• Duplicate management is available for accounts, contacts, leads, and custom objects. All other objects, including Opportunities and
Person Accounts, are not currently supported.
• Duplicate rules don’t run when records are created in following ways.
– When records are created using Quick Create.
– When leads are converted to accounts or contacts and your organization doesn’t have the “Use Apex Lead Convert” permission.
– When a record is restored with the Undelete button.
– When records are added using Exchange Sync.
– When records are manually merged.

• In some cases, if duplicate rules are set for an alert to show when potential duplicates are found, users will always be blocked from
saving records and will not see a list of possible duplicates. Examples of this include the following.
– When records are added using the data import tools.
– When a person account is converted to a business account (and the newly created business account matches existing business
accounts).
– When records are added or edited using Salesforce APIs.

• Standard and custom matching rules that use fuzzy matching methods only support Latin characters, and, if you’re using international
data, we recommend you use the Exact matching method with your matching rules.
• If a field on an object is no longer available to your organization, it may cause matching rules with mappings to this field to be
ignored. This could affect your duplicate detection. Make sure you check all duplicate rule field mappings for an object if there is a
change to the fields available to your organization. For example, the Clean Status field is only available to customers with a
Data.com license. If your organization no longer has a Data.com license, this field is no longer available and matching rules with
mappings to this field will be ignored.
• The customizable alert text in duplicate rules isn’t supported by the Translation Workbench.

IN THIS SECTION:
Create or Edit Duplicate Rules
Use duplicate rules to define what happens when a user tries to save a duplicate record.
Create or Edit Custom Matching Rules
Use matching rules to determine how two records are compared and identified as duplicates.
Create Custom Report Types for Duplicate Record Reports
If your organization uses the Report action with its duplicate rules, you can run reports to analyze the quality of your data and to see
how well your duplicate rules are working. That way, you can fine tune your duplicate rules if needed. First, you’ll need to set up the
appropriate custom report types.

148
Salesforce Spring ’15 Release Notes Duplicate Management (Generally Available)

Create or Edit Duplicate Rules


Use duplicate rules to define what happens when a user tries to save a duplicate record.
EDITIONS

Watch a demo: Managing Duplicate Records in Salesforce with Duplicate Rules (3:12) Available in:
• Professional
1. From Setup, click Data.com Administration > Duplicate Management > Duplicate Rules.
• Enterprise
2. To edit an existing rule, click the rule name, then click Edit. To create a new rule, click New • Performance
Rule , then select the object you want the rule to apply to. • Unlimited
3. Enter the rule details, including the rule’s name, description, and record-level security settings. • Developer

4. Select which action will occur when a user tries to save a duplicate record.
If the action includes an alert to users, we’ll provide default alert text that you can customize. USER PERMISSIONS
Only the Allow action includes the report option.
To create, edit, or delete
5. In the Matching Rules section, first select the object that records will be compared with. Then duplicate rules:
select which matching rule will determine how records are identified as duplicates. • “Customize Application”

The drop-down list includes all available matching rules for the selected object. If none of the To activate and deactivate
duplicate rules:
matching rules in the list are what you want, select Create New Matching Rule.
• “Customize Application”
Tip: We recommend you use the standard matching rules because they’ve been carefully To view duplicate rules:
designed to return the best possible set of match candidates. Just be sure you’ve activated • “View Setup and
them. Configuration”
If, however, you decide to create a new matching rule, we recommend you first finish
creating your duplicate rule. Then create and activate the new matching rule. When you
come back to the duplicate rule, it will automatically have the newly created matching
rule associated it, as long as it didn’t already have an associated matching rule.

6. Make sure you’ve selected the field mapping for each matching rule, if needed.
If the matching rule is comparing records from two different objects or uses custom fields:
• You’ll need to decide how you want the fields from the first object to be compared to the fields from the second object. For
example, you might map a custom field called Work Email to the standard Email field.
• Some data may be truncated prior to matching two text fields with different maximum lengths.

7. If you want your duplicate rule to run only if specific conditions are met, specify the conditions.
For example, you could add a condition that tells the rule to run only if the record was entered by a user with a certain profile or
role, or if the record includes a specific country or state.

8. Click Save.
You’ll see a summary of your rule.
9. Click Activate.
For the activation to succeed, all associated matching rules must be active.

10. If you have more than one active duplicate rule for a particular object, you may want to adjust the order in which the rules are
processed. You can reorder rules by clicking Reorder from any rule’s detail page.

Tip: If the first duplicate rule finds a match for a particular record, that record will not be evaluated by subsequent duplicate
rules. Therefore, you should order your duplicate rule so that rules with the Block action are run before rules with the Allow
action.

149
Salesforce Spring ’15 Release Notes Duplicate Management (Generally Available)

Create or Edit Custom Matching Rules


Use matching rules to determine how two records are compared and identified as duplicates.
EDITIONS

Watch a Demo (3:39) Available in:


• Professional
1. From setup, click Data.com Administration > Duplicate Management > Matching Rules.
• Enterprise
2. If editing an existing matching rule, make sure the rule is inactive. • Performance
3. Click New Rule or Edit next to the existing rule you want to edit. • Unlimited
• Developer
4. Select which object this matching rule will apply to.
5. Enter a name and description for the rule.
USER PERMISSIONS
6. Enter the matching criteria.
The matching criteria is where you define which fields to compare and how. To add additional To create, edit, or delete
matching rules:
fields (up to 10 total) click Add Filter Logic... and then Add Row.
• “Customize Application”
7. If you need to adjust the matching equation, click Add Filter Logic.... Here you can, for example, To activate and deactivate
manually change an AND expression to an OR expression. matching rules:
8. Click Save. • “Customize Application”
You’ll see a summary of your saved matching rule. To view matching rules:
• “View Setup and
9. Click Activate. Configuration”
The activation process may take some time, so we’ll send you an email when the process is
complete and your matching rule is ready to use.

After the matching rule is active, it’s available to use with other Data.com Duplicate Management tools. For example, using a matching
rule with a duplicate rule tells Salesforce to take certain actions when users try to save a record the matching rule has identified as a
duplicate.

Create Custom Report Types for Duplicate Record Reports


If your organization uses the Report action with its duplicate rules, you can run reports to analyze
EDITIONS
the quality of your data and to see how well your duplicate rules are working. That way, you can
fine tune your duplicate rules if needed. First, you’ll need to set up the appropriate custom report Available in:
types. • Professional
The only records that will appear in these reports are: • Enterprise
• Performance
• Records identified as duplicates by duplicates rules that include the report action. • Unlimited
• Records that were manually added to the Duplicate Record Set object. • Developer
1. Make sure you’re familiar with custom report types and the general steps for creating and
maintaining them. USER PERMISSIONS
2. Create custom report types with the appropriate object relationships and configure them as
To create or update custom
necessary.
report types:
Here are some examples of custom report types to get you started. • “Manage Custom Report
Types”
To delete custom report
types:
• “Modify All Data”

150
Salesforce Spring ’15 Release Notes Avoid Duplicate Contacts and Accounts when Converting
Leads

Report Type Possible Use A (Primary Object) B Additional Steps


Account Duplicates Create reports on the Accounts Duplicate Record Items
duplicate accounts that
were found by your
duplicate rules.

Contact Duplicates Create reports on the Contacts Duplicate Record Items


duplicate contacts that
were found by your
duplicate rules.

Lead Duplicates Create reports on the Leads Duplicate Record Items


duplicate leads that
were found by your
duplicate rules.

All Duplicates Create reports to see Duplicate Record Set Duplicate Record Items Add the Duplicate
how well your duplicate Rule Name lookup
rules are performing. field to the Duplicate
Record Set page layout.

3. Deploy the report types you want to make available to users.


4. Let users know that they can create reports using these custom report types.

Avoid Duplicate Contacts and Accounts when Converting Leads


Now your sales teams know when the qualified leads they convert result in duplicate records. Take
EDITIONS
advantage of duplicate management rules to keep your sales teams’ contacts and accounts free
from duplicates. Available in:
Depending on the duplicate rules you set up for Duplicate Management, you can help your sales • Professional
teams avoid creating duplicate contacts and accounts when team members convert their qualified • Enterprise
leads. And if you include cross-object matching in duplicate rules, your sales teams see alerts when • Performance
lead conversions result in duplicate records belonging to other objects, like leads or custom objects. • Unlimited
• Developer
Also available as a beta feature for Salesforce1, your sales teams can convert leads on the go—and
still avoid creating duplicate contacts and accounts. Be sure to familiarize yourself with the feature’s
limitations by checking out the Leads section of “Data Supported in Salesforce1: Limits and Differences from the Full Salesforce Site” in
the Salesforce Help.

Sales Reps Can Close Sales Faster with Sales Path


Help sales reps on the go keep their eyes on the prize—from anywhere. Sales Path guides your reps through each stage of your company’s
sales process and helps them stay focused on important sales tasks, so your reps can close their deals quickly.
In Salesforce1, Sales Path guides your reps through each stage of their opportunities. When you set up Sales Path, it’s a good idea to
provide links to Chatter posts and other helpful information, like best practices, potential pitfalls, or even words of
encouragement—anything to keep your reps eager to close their deals.

151
Salesforce Spring ’15 Release Notes Enterprise Territory Management

You’ll enable and set up Sales Path in the full Salesforce site. For more details on Sales Path and its setup, see Set Up Sales Path.

Enterprise Territory Management


To reflect our ongoing commitment to developing full-featured enterprise CRM solutions, we’ve
EDITIONS
renamed Territory Management 2.0 to “Enterprise Territory Management”. Our latest features offer
more options for assigning and managing relationships among accounts, territories, and Available in:
opportunities, greater insight into territory characteristics through custom fields on list views and • Enterprise
records, and additional territory information on select reports. We’ve also made a few updates to • Performance
the API and Metadata API. See those sections of these release notes for more information. • Unlimited
For complete details on implementing Enterprise Territory Management, including these new • Developer
features, see Implementing Enterprise Territory Management

IN THIS SECTION:
View Custom Territory Management Fields in List Views and on Object Pages
Make your organization’s key territory management information readily available by adding custom fields to list views, related lists,
and detail pages, where the information is easily searched and grouped.
Identify Users in Territories Assigned to an Account
Accounts and users are assigned to territories independently, but when an account is assigned to a territory, that territory’s users (if
any) have access to the account. It’s easy to find out who those users are by looking at the account record.
Manually Assign a Territory to an Opportunity
On an opportunity record, your organization can keep track of the territory whose assigned sales reps work that opportunity. The
territories available for assignment are determined by the territories assigned to the account record that the opportunity is associated
with. When you assign a territory to an opportunity, that opportunity is shared with all Salesforce users assigned to that territory's
parent in the territory model's hierarchy.

152
Salesforce Spring ’15 Release Notes Enterprise Territory Management

Show Additional Territory Information on Select Account Reports


Users now have new options for viewing territory information on account reports.
Show Territory Information on Opportunity Reports and List Views
You can assign territories to opportunities, and users can now view that information on opportunity reports and list views.

View Custom Territory Management Fields in List Views and on Object Pages
Make your organization’s key territory management information readily available by adding custom fields to list views, related lists, and
detail pages, where the information is easily searched and grouped.
Custom fields can be added to:
• The sorted list view on the territory hierarchy page.
• The Assigned Territories related list on the Account detail page.
• The Available list on the Manually Assign Territories page.
• The Child Territories related list on the Territory detail page.
• The Territory related list on the Rule detail page.

Example: For example, you might create custom fields to track and show industry coverage, business unit information, sales
strategy, or sales rep quota by territory.

Identify Users in Territories Assigned to an Account


Accounts and users are assigned to territories independently, but when an account is assigned to a territory, that territory’s users (if any)
have access to the account. It’s easy to find out who those users are by looking at the account record.
The Users in Assigned Territories related list is available for Account page layouts. It lets administrators and users see all users assigned
to the territories that are assigned to an account. Users with both “View Setup and Configuration” and “Manage Territories” permissions
can view users in territories from Active, Planning, or Archived territory models that are assigned to an account. Users without
“Manage Territories” can only view users in territories from the Active model.
Add the related list to your Account page layouts and make sure it includes the standard and custom fields (if any) that administrators
and users need to view. Let your users know that this feature is available.

Note: The Modified Date field in this related list tells the last time the user territory association record was modified. It
indicates when the user was assigned to the territory.

Example: Six sales reps are assigned to the East Coast territory. Because XYZ Publishing is also assigned to the East Coast territory,
the six sales reps in the territory have access to the XYZ Publishing account.

Manually Assign a Territory to an Opportunity


On an opportunity record, your organization can keep track of the territory whose assigned sales reps work that opportunity. The territories
available for assignment are determined by the territories assigned to the account record that the opportunity is associated with. When
you assign a territory to an opportunity, that opportunity is shared with all Salesforce users assigned to that territory's parent in the
territory model's hierarchy.
So you can make assignments and users can view them, make sure that you add the Territory field to your Opportunity page
layouts. Then let your users know that this feature is available.
When you archive a territory model or delete a territory on an active model, the Territory field is reset to a blank value on opportunity
records with those territories assigned.

153
Salesforce Spring ’15 Release Notes Enterprise Territory Management

Example: If account Unitel.com has six opportunities and two associated territories (East Coast and West Coast), you can assign
either East Coast or West Coast as the territory for any or all of those six opportunities.

Show Additional Territory Information on Select Account Reports


Users now have new options for viewing territory information on account reports.
Several standard account reports let users show their own territories and their territory teams’ accounts. These options are also available
on custom account reports. Make sure you let your users know about them.

For information about setting up specific custom reports that we recommend for effective territory management, check out the Salesforce
Help or Implementing Enterprise Territory Management.

Show Territory Information on Opportunity Reports and List Views


You can assign territories to opportunities, and users can now view that information on opportunity reports and list views.
Standard opportunity reports and opportunity list views let users show opportunities with and without territories assigned. To display
the territory name, users can add the Territory Name and Territory Description fields. Make sure you let your users
know about these options.

154
Salesforce Spring ’15 Release Notes Let All Forecast Users Adjust Their Own Forecasts with Flexible
Forecast Adjustments

For information about setting up specific custom reports that we recommend for effective territory management, check out the Salesforce
Help or Implementing Enterprise Territory Management.

Let All Forecast Users Adjust Their Own Forecasts with Flexible Forecast
Adjustments
Collaborative Forecasts continues to get better. Reps now have the power to make adjustments to
EDITIONS
their own forecasts without changing the underlying opportunity value. And sales managers can
save time by adjusting the rolled up forecast number instead of each individual forecast number Available in: Professional
for every rep. (no Opportunity Splits or
Forecast adjustments make forecasting more flexible by allowing users to make changes to forecast Custom Field forecasts),
rollup amounts. This lets users adapt their forecasts to revenue or quantity changes they foresee Enterprise, Performance,
that are not yet reflected in the rollup. For example, forecast managers may have sales reps who Unlimited, and Developer
report to them who consistently under- or over-estimate the final amounts of their opportunities. Editions
These managers can adjust those subordinates’ forecast amounts to account for these anticipated
discrepancies.
Now in Spring ’15, administrators can allow all forecast users, including both sales reps and managers, to adjust their own forecast
amounts. This broader adjustment capability lets users adapt their forecasts in more situations. For example, if a manager anticipates
that final revenue amounts will be higher than the current forecast, but they aren’t sure which of their subordinates will be responsible
for the difference, they can adjust their own Best Case forecast amount rather than adjusting an individual subordinate’s forecast. Similarly,
if a sales rep anticipates that her Commit forecast amount will come in higher, but isn’t sure which opportunities will provide the additional
revenue, she can adjust her own Commit forecast amount. Sales Managers can only adjust their forecast totals, not the subtotal for My
Opportunities.

155
Salesforce Spring ’15 Release Notes Products Now Have Field History Tracking

Keep in mind that adding an adjustment doesn't change the underlying gross rollup of opportunities—it just adds a layer of detail,
which can be changed or removed later.

Note: If your organization uses product family forecasts, users can’t adjust their own product family forecast amounts.

IN THIS SECTION:
Enable Owner Adjustments
Administrators enable owner adjustments independently of manager adjustments. This lets you enable only what you need for your
business processes. The settings apply to all forecast types in your organization, but each forecast type maintains its own adjustment
data.

Enable Owner Adjustments


Administrators enable owner adjustments independently of manager adjustments. This lets you
USER PERMISSIONS
enable only what you need for your business processes. The settings apply to all forecast types in
your organization, but each forecast type maintains its own adjustment data. To view Forecast Setup:
Before enabling owner adjustments, make sure you've set up your forecast hierarchy. • “View Setup and
Configuration”
1. From Setup, click Customize > Forecasts > Settings.
To edit Forecast Settings:
2. To allow all forecast users to adjust their own forecast amounts, under Enable Forecast • “Customize Application”
Adjustments, select Enable Owner Adjustments.
Note that the previously existing checkbox, Enable Adjustments, has been renamed
to Enable Manager Adjustments.

3. Click Save.
4. From Setup, click Manage Users > Profiles.
5. Find a profile for which you want adjustments enabled.
6. If you’re using the enhanced profile user interface, click App Permissions and click Edit.
7. Select Override Forecasts and click Save.

Products Now Have Field History Tracking


Field history tracking is available for Products.
EDITIONS
New in this release, Products will have Field History Tracking. You can select certain Product fields
to track and the changes made in the field will be displayed in the History related list. All entries Available in:
will include the date, time, nature of the change, and who made it. • Professional
• Enterprise
• Unlimited
Email Connect • Performance

Learn about our new product area—Email Connect. Within it, we’re introducing two of our latest
email integration features: Exchange Sync, which syncs your users’ contacts and events between Exchange-based email systems and
Salesforce, and Salesforce App for Outlook, which lets sales folks create Salesforce contacts, or view them and other sales-related records
directly in Microsoft® Outlook Web App (OWA) Outlook® 2013.

156
Salesforce Spring ’15 Release Notes Email Connect

IN THIS SECTION:
Exchange Sync (Beta)
Keep the contacts and events in your users’ Exchange-based email systems in sync with contacts and events in Salesforce, without
requiring your users to install and maintain software on their workstations.
Salesforce App for Outlook (Beta)
Get your sales teams to stay on top of important sales opportunities when team members work in either Microsoft® Outlook® Web
App (OWA) or Outlook 2013. Salesforce App for Outlook helps your teams manage their sales more efficiently when they create
Salesforce contacts, or view contacts, leads, accounts, opportunities, and cases—all directly in OWA and Outlook 2013, regardless
of whether team members are at their desks or on the go.

Exchange Sync (Beta)


Keep the contacts and events in your users’ Exchange-based email systems in sync with contacts and events in Salesforce, without
requiring your users to install and maintain software on their workstations.

Note: Exchange Sync is currently available as a beta program, which means it’s a high quality feature with known limitations.
You can enable Exchange Sync for your users from Setup by clicking Email Connect > Exchange Sync Setup, and selecting
Enable Exchange Sync.

IN THIS SECTION:
Sync Users’ Contacts and Events in the Cloud
Make your life easier when you get your users set up with Exchange Sync—our latest and easiest way to sync contacts and events
between your Microsoft® Exchange servers and Salesforce. Exchange Sync makes it easy to manage your users because you don’t
need to nag them about staying current on the latest software releases. Plus, Exchange Sync is compatible with any Microsoft®
Exchange-connected app or device.
Complement Exchange Sync Features with the Salesforce Side Panel
If you’re migrating users from Salesforce for Outlook, they can still take advantage of the side panel. Just make sure to disable
Salesforce for Outlook sync features in your Outlook configurations to keep configurations organized and free of conflicts.

Sync Users’ Contacts and Events in the Cloud


Make your life easier when you get your users set up with Exchange Sync—our latest and easiest
EDITIONS
way to sync contacts and events between your Microsoft® Exchange servers and Salesforce. Exchange
Sync makes it easy to manage your users because you don’t need to nag them about staying current Available in:
on the latest software releases. Plus, Exchange Sync is compatible with any Microsoft® • Enterprise
Exchange-connected app or device. • Performance
• Unlimited
Note: Exchange Sync is currently available as a beta program, which means it’s a high quality
• Developer
feature with known limitations. You can enable Exchange Sync for your users from Setup by
clicking Email Connect > Exchange Sync Setup, and selecting Enable Exchange
Sync.
Exchange Sync increases your users’ productivity, because users can update or create contacts and events in either Salesforce or users’
Exchange-based email systems.

157
Salesforce Spring ’15 Release Notes Email Connect

You decide whether your users sync both contacts and events by defining sync settings in Salesforce. You can also determine whether
users’ records sync between your Exchange servers and Salesforce in both directions, or just one.
Compared with Salesforce for Outlook, Exchange Sync may make better sense for you and your sales teams, because:
• You complete and maintain set up for all users centrally. Neither you nor your users need to install software on your systems.
• Exchange Sync is compatible with several Exchange-supported email systems, including Outlook® for Mac and mobile devices. Even
users working in email systems other than Outlook can sync records.
• Records sync every few minutes, which is more frequent than Salesforce for Outlook.
• Records sync regularly—even when your users’ devices and email systems are powered down.
To implement Exchange Sync, you’ll complete a few procedures to get your Exchange server and Salesforce to communicate with each
other. For setup details, check out our Exchange Sync implementation guide.

Exchange Sync Limitations


Exchange Sync offers a slew of benefits that make syncing your contacts and events a snap. As with any brand new feature, you’ll want
to be aware of a few functionality limitations.
At this time, Exchange Sync doesn’t:
• Sync all-day events or recurring events
• Sync invitees included in events
• Let users delete records from both systems in one action
However, your users can manage these actions as they always have—by manually updating all-day and recurring events, adding event
invitees, and deleting records in both systems.

Complement Exchange Sync Features with the Salesforce Side Panel


If you’re migrating users from Salesforce for Outlook, they can still take advantage of the side panel. Just make sure to disable
Salesforce for Outlook sync features in your Outlook configurations to keep configurations organized and free of conflicts.

Note: Exchange Sync is currently available as a beta program, which means it’s a high quality feature with known limitations.
You can enable Exchange Sync for your users from Setup by clicking Email Connect > Exchange Sync Setup, and selecting
Enable Exchange Sync.

158
Salesforce Spring ’15 Release Notes Email Connect

If you’ve assigned a user to sync the same records with conflicting settings in both an Outlook configuration and an Exchange Sync
configuration, Salesforce automatically gives preference to the settings you’ve set for that kind of record in the Exchange Sync configuration.
Though Salesforce manages these conflicts for you, we recommend disabling Salesforce for Outlook sync settings for your Exchange
Sync users.
But don’t worry! Exchange Sync users can still use the Salesforce Side Panel, even though it’s a Salesforce for Outlook feature.
Here’s how we recommend you set up users to sync contacts and events with Exchange Sync and continue using the side panel.
• For all sync settings in your Outlook configurations, select Don’t sync, and verify you’ve selected the option Side Panel.
• Then, indicate sync settings in your Exchange Sync configurations.
Managing your configurations this way ensures that the configurations for both features are well-organized and free of conflicts that
can create problems in the future.

Salesforce App for Outlook (Beta)


Get your sales teams to stay on top of important sales opportunities when team members work in
EDITIONS
either Microsoft® Outlook® Web App (OWA) or Outlook 2013. Salesforce App for Outlook helps your
teams manage their sales more efficiently when they create Salesforce contacts, or view contacts, Available in:
leads, accounts, opportunities, and cases—all directly in OWA and Outlook 2013, regardless of • Enterprise
whether team members are at their desks or on the go. • Performance
• Unlimited
Note: Salesforce App for Outlook is currently available as a beta program, which means it’s
• Developer
a high-quality feature with known limitations.
We’re working toward providing sales teams a true cloud-based email integration experience. The
result of our beginning efforts is Salesforce App for Outlook, which gets sales folks closer to their Salesforce content when they create
Salesforce contacts related to people in OWA and Outlook 2013 emails, as well as view sales-related records. If you know about the
Salesforce Side Panel—the well-loved Salesforce for Outlook feature that brings Salesforce content into Outlook—you get a sense of
the direction we’re heading.
After you enable Salesforce for Outlook and your sales team members complete their short setup procedures, teammates see Salesforce
records related to their emails whenever they select an email in OWA and Outlook 2013 (1) and then select the Salesforce tab (2).
Teammates then see contacts, leads, and users, as well as related accounts, opportunities, and cases with just a click or swipe (3).

159
Salesforce Spring ’15 Release Notes Email Connect

While the app doesn’t yet offer as many features as the Salesforce Side Panel, we hope you’ll get your sales teams to try out the app and
provide input on enhancements that would help sales teams in future releases.

IN THIS SECTION:
Considerations for You and Guidelines for Your Sales Teams
Get familiar with the things you may not expect before you encourage your sales teams to start using Salesforce App for Outlook.
Turn On Salesforce App for Outlook
Help your sales teams get ready to create Salesforce contacts, as well as view contacts, leads, and users, along with related accounts,
opportunities, and cases directly in Outlook Web App (OWA) and Outlook 2013.
Setup that Your Sales Teams Need to Do
Familiarize yourself with the setup procedures for your team members to get Salesforce App for Outlook running. That way, if team
members need your help, you’ll know how to get them out of their jams.

Considerations for You and Guidelines for Your Sales Teams


Get familiar with the things you may not expect before you encourage your sales teams to start using Salesforce App for Outlook.

Considerations for You


Make sure you’re aware that:
• Salesforce App for Outlook doesn’t include as many features as the Salesforce Side Panel—a Salesforce for Outlook feature. If your
sales teams are familiar with the side panel, we recommend you explain feature limitations for the app, and that the app includes
only a subset of the functions we have in mind for the future.
• Links at the bottom of detail pages don’t work properly.
• Organizations using My Domain cannot use Salesforce App for Outlook.
• When creating contacts, lookup fields don’t work properly with Microsoft® Internet Explorer® and Outlook® 2013.

Guidelines for Your Sales Teams


If your sales teams use the Salesforce Side Panel, we recommend that you disable the side panel from your Outlook configurations.
Otherwise, both the app and the side panel will appear in Outlook 2013.

Turn On Salesforce App for Outlook


Help your sales teams get ready to create Salesforce contacts, as well as view contacts, leads, and users, along with related accounts,
opportunities, and cases directly in Outlook Web App (OWA) and Outlook 2013.
1. In Salesforce Setup, select Email Connect > Salesforce App for Outlook Settings.

160
Salesforce Spring ’15 Release Notes Email Connect

2. Select the Enabled option, then save your changes.

Setup that Your Sales Teams Need to Do


Familiarize yourself with the setup procedures for your team members to get Salesforce App for Outlook running. That way, if team
members need your help, you’ll know how to get them out of their jams.
Sales team members need to complete a few short procedures to get the Salesforce App for Outlook manifest, which gives teammates
access to the app.
Get Access to Salesforce App for Outlook
In Microsoft® Outlook® Web App (OWA) or Outlook 2013, teammates open Settings and then select Manage apps. From there,
teammates select Salesforce (1). But if it’s not available, teammates add the app from the Office Store (2). After the app appears,
teammates select Enable (3).

Give Outlook Access to Salesforce


In OWA or Outlook 2013, your teammates then select an email in either the Inbox or Sent Items. Teammates see a prompt to log in
to Salesforce when they select Salesforce (1). After they log in to Salesforce (2), teammates see a lengthy code, which they need
to copy (3). Finally, they paste the code (4) and click Next.

161
Salesforce Spring ’15 Release Notes Email Connect

See Salesforce Content in Outlook Web App and Outlook 2013


Now that Outlook can access Salesforce, teammates see Salesforce records related to their emails whenever they select an email (1)
and then select the Salesforce tab (2). To see a combination of up to 15 contacts, leads, and users, as well as up to five related
accounts, opportunities, and cases, teammates just click or swipe (3).

162
Salesforce Spring ’15 Release Notes Salesforce for Outlook

Salesforce for Outlook


Get your sales teams on the path to higher productivity with features that help sales professionals
EDITIONS
better manage tasks and track the emails they add to Salesforce records.
Before we share with you the latest enhancements, we urge you to upgrade any team members Available in all editions
still working with Connect for Outlook to Salesforce for Outlook now instead of later. That way, you
avoid the rush of migrating your teams well before our planned end-of-support date tentatively
scheduled for October 2015. Another reason to expedite this upgrade is that Salesforce for Outlook usability and features are superior
compared with the Connect for Outlook usability and features. Specifically, upgrading to Salesforce for Outlook gives your sales teams:
• The Salesforce Side Panel, the feature that brings Salesforce content and functions to sales professionals—directly in Microsoft® Outlook®
• Support for Microsoft Exchange Online—the Microsoft-hosted service that integrates with Office 365™
• Support for Microsoft Outlook 2013 installed using Click-to-Run (a streaming installer for Microsoft Office)
• Options to sync some or all contacts, events, and tasks
• Automatically scheduled sync cycles
Now we’re ready to take a look at our enhancements to Salesforce for Outlook and the side panel.

IN THIS SECTION:
Sync Recurring Salesforce Tasks to Microsoft® Outlook®
Get your sales teams tracking their recurring Salesforce tasks in Outlook. That way, if your sales teams spend lots of time in Outlook,
they won’t forget about the Salesforce tasks they need to complete on a regular basis.
Increase Your Teams’ Chances of Seeing Relevant Contacts and Leads in the Side Panel
Sales teams get better email address matching between the email addresses in their Outlook emails and the ones in all email fields
for their Salesforce contacts and leads.
Sales Teams Can Add Emails to Person Accounts Based on the Teams’ Preferences
Ensure your sales teams add emails to person accounts the way your teams want—as either contacts or accounts, which helps sales
teams track emails added to person accounts the way these folks expect.
Add Emails to Multiple Salesforce Records That Accept Tasks
Help your sales teams add emails to multiple Salesforce records that accept tasks, like accounts, opportunities, and cases—not just
contacts. This means that your sales teams are no longer limited to adding emails to only one record that accepts tasks.

Sync Recurring Salesforce Tasks to Microsoft® Outlook®


Get your sales teams tracking their recurring Salesforce tasks in Outlook. That way, if your sales teams spend lots of time in Outlook, they
won’t forget about the Salesforce tasks they need to complete on a regular basis.
Salesforce for Outlook can now sync recurring Salesforce tasks one way from Salesforce to Outlook. When you set up data sets in your
Outlook configurations to sync recurring tasks, your users see only the current open task in the series, as well as any modified tasks. After
your users complete the current open task, the next task in the series appears.
Get your sales teams syncing their Salesforce tasks to Outlook now.
1. In Salesforce Setup, click Desktop Administration > Outlook Configurations.
2. Select the Outlook configuration for which you want to set recurring Salesforce tasks to sync.
3. For the data set on the Outlook configuration detail page, click Edit.

163
Salesforce Spring ’15 Release Notes Salesforce for Outlook

4. Select the option Sync recurring Salesforce tasks to Outlook.

New Outlook configurations and data sets, by default, are set to sync recurring Salesforce tasks to Outlook.

Increase Your Teams’ Chances of Seeing Relevant Contacts and Leads in the Side Panel
Sales teams get better email address matching between the email addresses in their Outlook emails and the ones in all email fields for
their Salesforce contacts and leads.
Now, the side panel matches email addresses in Outlook emails to all email address fields for contacts and leads in Salesforce—even
custom ones, which means the side panel has better chances of finding relevant contacts and leads related to the emails that matter to
your sales teams.

Sales Teams Can Add Emails to Person Accounts Based on the Teams’ Preferences
Ensure your sales teams add emails to person accounts the way your teams want—as either contacts or accounts, which helps sales
teams track emails added to person accounts the way these folks expect.
By default, the side panel adds emails to person accounts as contacts. But it’s easy to set your Outlook configurations so that the side
panel adds emails to person accounts as accounts instead.
1. In Salesforce Setup, click Desktop Administration > Outlook Configurations.
2. Edit the Outlook configuration for which you want your teams to add emails to person accounts as accounts.
3. Select the option Add emails to person accounts as accounts.

Add Emails to Multiple Salesforce Records That Accept Tasks


Help your sales teams add emails to multiple Salesforce records that accept tasks, like accounts, opportunities, and cases—not just
contacts. This means that your sales teams are no longer limited to adding emails to only one record that accepts tasks.
Salesforce creates separate tasks for each record to which users add emails. To get this feature, just contact Salesforce Customer Support.

164
Salesforce Spring ’15 Release Notes Activities

Activities
Events and tasks are the building blocks of sales productivity. We’ve made enhancements that boost your sales teams’ edge over the
competition, along with updates to improve performance and usability.
Event Links
We are improving events. By the Winter ’16 release, links to previously scheduled events for external users may stop working. We
recommend that you update your events before the Winter ’16 release. New email notifications with updated links are sent when
you update an event.
Self-Assigned Tasks Don’t Generate a Notification
If you create a task and assign it to yourself, no notification is sent to you.
Reassign Recurring Task Owner for a Single Task
You can now reassign the owner of a single task within a recurring task series. The reassigned task is removed from the series.

New Email Templates and Tone for Salesforce to Salesforce


Salesforce to Salesforce has undergone a spring cleaning! For Spring ‘15, Salesforce to Salesforce
EDITIONS
got a few updates to keep its email templates, labels, and user interface fresh and intuitive.
A few labels have been updated to be more intuitive: Available in:
• Contact Manager
• On pages where users subscribe to objects, the ...maps to your objects column is now called • Group
Your Objects. • Professional
• On pages where users subscribe to fields, the ...maps to your fields column is now called • Enterprise
Your Fields. • Performance
• On the New Invitation page, the Connection Template section is now called Connection Features. • Unlimited
• Developer
The Connections page now includes a Connection Type column, which helps organizations who
use both standard Salesforce to Salesforce and Organization Sync keep track of their connections.
If your company uses the default email templates in Salesforce to Salesforce, you’ll notice that the emails notifying you about Salesforce
to Salesforce updates are shorter and more conversational. It’s the same helpful information, but in perfectly worn jeans instead of
polyester slacks.
Finally, you may spot some notes in the help documentation about a new feature called Organization Sync. Organization Sync is a
business continuity feature built on the framework of Salesforce to Salesforce. It uses a replication connection to sync business-critical
data to a second Salesforce organization, where users can continue to work if the primary organization is unavailable. To learn more
about Organization Sync, see Promote Business Continuity with Organization Sync (Generally Available).

165
Salesforce Spring ’15 Release Notes Salesforce Console for Sales

Salesforce Console for Sales


The Salesforce Console for Sales gives you easy access to sales intelligence in a dashboard that
EDITIONS
means more access to contextual data with fewer clicks and less scrolling.
Available in: Enterprise,
Performance, Unlimited,
Salesforce Console Enhancements
and Developer Editions with
The Salesforce Console for Sales and the Salesforce Console for Service share new features that the Service Cloud
make for a smarter and simpler console. For more information, see Salesforce Console for Service. Available in: Performance
and Developer Editions with
the Sales Cloud
Other Changes in the Sales Cloud
Available in: Enterprise and
We’ve made additional changes to the Sales cloud to improve usability. Unlimited Editions with the
Control Your Users’ Access to Orders with Sharing Rules Sales Cloud for an additional
Orders now has its own sharing model. Previously, orders inherited the sharing model for cost
accounts, which is typically shared widely. With this separate sharing model, you get more
control over your users’ access to orders. For example, you can set a more restrictive
organization-wide default value for orders and then extend access through order sharing as needed. The organization-wide default
value for orders is “Controlled by Parent,” so unless you change your organization-wide defaults, your users won’t notice this change.
For more information, see “Sharing Orders” in the Salesforce Help.
Priority Field Added to Territory Type Record
The Territory Type record includes a new field, Priority, which helps you choose the appropriate territory type for territories
you create or edit. The field is also exposed on the Territory2Type object in the SOAP API (version 33) and the Territory2Type metadata
type in the Metadata API (version 33).
Use Thanks and Skills for Free
Recognize your coworkers with custom badges and share your professional expertise for free! Work.com thanks badges and skills
are now included for all Sales Cloud users. For more information, see Use Thanks and Skills for Free.
Contract Approvals No Longer Available
The contract-specific approval functionality has been retired for existing organizations. You are no longer be able to create, approve,
or reject Approval requests and the legacy Contract Approvals function is read-only. The data in the existing approval request records
will be retained and accessible to you in read-only mode. Instead, you can create standard approval processes for contracts, which
are located in Setup at Create > Workflow & Approvals. For more information about standard approval processes, see “Approval
Processes Overview” in the Salesforce Help.

Work.com: Free Features, Single Add-On


Spring ’15 enables you to use Thanks and Skills features for free, customize your coaching experience, and use more features in the Goals
pilot.
Work.com helps managers and teams learn faster and perform better with a suite of sales-management and service-management tools
that boost performance with simple, customizable features including goals, real-time coaching, rewards, and performance reviews.

IN THIS SECTION:
Use Thanks and Skills for Free
Recognize your coworkers with custom badges and share your professional expertise for free! Work.com thanks badges and skills
are now included for all Sales Cloud users.

166
Salesforce Spring ’15 Release Notes Use Thanks and Skills for Free

Access All Work.com Features with the Consolidated Add-On


The three Work.com feature add-ons (Motivate, Align, and Perform) are now being consolidated into a single add-on that includes
Rewards, Feedback, Goals, Coaching, Calibration, and Performance Summaries.
Customize Coaching to Fit Your Organization
You can now customize Coaching fields, page layouts, and list views, and also make additional changes for your teams.
Do More with Enhanced Goals (Pilot)
If you’re signed up for the Goals pilot, your teams can use additional features such as metric weighting, goal progress rollup, and
linking metrics to Salesforce data.
Other Changes in Work.com
We’ve made other important changes in Work.com.

SEE ALSO:
How and When Work.com Features Become Available

Use Thanks and Skills for Free


Recognize your coworkers with custom badges and share your professional expertise for free! Work.com thanks badges and skills are
now included for all Sales Cloud users.

Note: Free Thanks and Skills features are available within 24 hours after the Spring ’15 release.

Your users now have access to all of the Thanks functionality (excluding Rewards) for free. They can create, edit, share, and give thanks
badges without a Work.com license. However, users will still need a Work.com license to give, create, or receive badges tied to rewards.

Users now also have access to all of the Skills functionality. Users can declare individual skills, endorse other users’ skills, and search for
experts with specific skills in their organization.

To enable these features, from Setup, click Customize > Work.com > Settings. The related settings can be found under Thanks
Settings and Skills Settings. For more information, see “Enable or Disable Work.com Settings” in the Salesforce Help.

167
Salesforce Spring ’15 Release Notes Access All Work.com Features with the Consolidated Add-On

Add the Badges tab to make it easier for your users to create and edit thanks badges. For information about adding new tabs, see “Editing
App Properties” in the Salesforce Help.
Note the following limitations:
• Chatter must be enabled to use Thanks and Skills.
• Thanks and Skills features are limited to Professional, Enterprise, Unlimited, Performance, and Developer Editions.
• Default badges and Skills features aren’t available in community organizations.
• Thanks and Skills features are limited to specific user licenses. For more information, see the “Thanks and Skills User Licenses”
Knowledge article in the Salesforce Help.

Access All Work.com Features with the Consolidated Add-On


The three Work.com feature add-ons (Motivate, Align, and Perform) are now being consolidated into a single add-on that includes
Rewards, Feedback, Goals, Coaching, Calibration, and Performance Summaries.

Note: The consolidated add-on is available shortly after the Spring ’15 release. For details about pricing and availability, contact
Salesforce.
With the Spring ’15 release, users can access the Skills and Thanks features (excluding Rewards) for free, and the other Work.com features
are being combined into a single feature add-on.
New customers can only purchase the consolidated Work.com add-on with new pricing. Current customers can keep the add-on they
already have, renew their current add-on at the same price, purchase additional add-ons of the same type, or upgrade to the new
consolidated version.

Customize Coaching to Fit Your Organization


You can now customize Coaching fields, page layouts, and list views, and also make additional changes for your teams.
Coaching has a new user interface that behaves like other Salesforce objects. Access your individual coaching spaces from the Coaching
tab or the Coaching subtab on your Chatter profile. Create new coaching spaces from the Coaching tab.

The coaching detail page lists the goals, metrics, activities, notes, and attachments related to a particular coaching space. This page
shows the goals owned by the person being coached. However, committed goals will no longer be displayed out of the box. Click Show
Feed to see the feed related to a coaching space.

168
Salesforce Spring ’15 Release Notes Do More with Enhanced Goals (Pilot)

You can now customize fields, layouts, list views, and actions related to coaching. The feature also supports standard Salesforce sharing
and has additional support for Salesforce1.
Note the following limitations:
• No default list views are defined. You should create your own filters (such as My Coaches, People I Coach) that are suitable for your
organization.
• Participants won’t be automatically notified when a coaching relationship is set to inactive, but you can configure Chatter feed
tracking on the Inactive field to track this change.

Do More with Enhanced Goals (Pilot)


If you’re signed up for the Goals pilot, your teams can use additional features such as metric weighting, goal progress rollup, and linking
metrics to Salesforce data.

Note: The Enhanced Goals feature is currently available through a pilot program. For more information on enabling Enhanced
Goals, contact Salesforce.
Your users can assign weights to different metrics to precisely track the completion of a goal. Additionally, progress for individual metrics
roll up to the goal they are associated with.

169
Salesforce Spring ’15 Release Notes Other Changes in Work.com

Users can also link metrics to Salesforce data in different reports, and anyone who has access to a metric can now refresh it, rather than
just the metric owner. Sharing also works the way it does for other Salesforce objects. Goals and metrics are also now supported in
Coaching and Performance Summaries.

Other Changes in Work.com


We’ve made other important changes in Work.com.
Receive Detailed Error Messages for Performance Cycle Deployments
Performance summary cycle administrators now receive more details about any errors that occur when deploying performance
summary cycles. Each error describes whether a user or their manager is inactive or doesn’t have the proper object permissions.
Customize Page Layouts for Thanks Objects
Administrators can now customize page layouts for all Thanks objects.
Get More Out of Salesforce1
Access more Coaching features in Salesforce1. For additional information, see Other Changes in Salesforce1.

Data.com
Data.com is the solution for delivering leading business data inside Salesforce. The Data.com product suite includes Data.com Prospector
and Data.com Clean, as well as relatedData.comfeatures: Social Key, Data.com Reports, and Data.com Data Assessments.

Note: The Data.com database does not contain data from all the countries where Salesforce is used. Data.com documentation
may be translated into languages used in countries not represented in the Data.com database.

IN THIS SECTION:
Data.comAPI: Improved
We’ve made enhancements and added new functionality to the Data.com API.

Data.comAPI: Improved
We’ve made enhancements and added new functionality to the Data.com API.
Data.com is the solution for delivering leading business data inside Salesforce. The Data.com product suite includes Data.com Prospector
and Data.com Clean, as well as related Data.com features: Social Key, Data.com Reports, and Data.com Data Assessments.
For Spring ’15 we’ve enhanced the Data.com API and added more detail to our API documentation.
You can now scroll through large result sets using queryMore() for any of the Datacloud objects. We’ve also made the Name and
LocationStatus fields filterable in the DatacloudDandB object. Read more about these changes in Data.com API.
For complete information about the Data.com API, see Data.com API Developer’s Guide.

Service: Turn Posts Into Cases, Manage Support Expectations


Spring ’15 includes ways to quickly turn emails and social media posts into cases. You can also track the support contracts your customers
have and the products they own, offer more Knowledge articles, and help your agents out with a new Console tab.

170
Salesforce Spring ’15 Release Notes Service: Turn Posts Into Cases, Manage Support Expectations

IN THIS SECTION:
Case Feed
Case Feed gives support agents a more streamlined way of creating, managing, and viewing cases. It includes publishers, which let
agents create case notes, log calls, change the status of cases, and communicate with customers in a Chatter-like feed.
Use Macros in Case Feed to Work More Efficiently
Support agents who use Case Feed now can run macros to automatically complete repetitive tasks—such as selecting an email
template, sending an email to a customer, and updating the case status—all in a single click. Macros save time and add consistency
to support agents’ work.
Entitlement Management
Entitlement Management lets you and your support agents verify and fulfill customers’ support contracts.
Assets Object Redesigned as a Standard Object
The Assets object tracks products that your customers own. Assets can include your company’s products and competitors’ products.
The Assets object has been enhanced in Spring ‘15 to give your users a more robust way to manage assets.
Knowledge
Salesforce Knowledge is your Knowledge Centered Support certified knowledge base.
Salesforce CTI Toolkit
The Salesforce CTI Toolkit helps partners build adapter programs that call center users install on their machines to integrate Salesforce
with computer-telephony integration systems.
Open CTI
Open CTI helps partners integrate Salesforce with Computer-Telephony Integration (CTI) systems without installing adapter programs
on call center users’ machines.
Salesforce Console for Service
The Salesforce Console for Service is an app that’s designed for users in fast-paced environments who need to find, update, and
create records quickly to support their customers.
Console Tab (Agent Console)
The Console tab is our first-generation customer service console for agents.
Service Communities
Chatter Questions, Chatter Answers, and Ideas provide customers with a self-service community where they can post questions and
receive answers from other customers or support agents, as well as post, vote for, and comment on innovative ideas. With
Question-to-Case, moderators can escalate questions in Chatter to cases, making it easier to track and resolve your customers’ issues.
Social Customer Service
Social Customer Service is the next-generation integration between Radian6 and the Salesforce Service Cloud. Customer service
agents can engage with their customers by responding to cases created from leading social networks like Twitter and Facebook.
Salesforce Adminstrators can customize how the inbound social content is processed using an Apex class and they can configure
who in their organization has permission to respond by using social accounts.
Business Continuity
Looking for a way to give your users access to Salesforce during maintenance and planned upgrades? Organization Sync lets you
set up a secondary, synced Salesforce organization where users can work when your primary organization is unavailable.

SEE ALSO:
How and When Service Features Become Available

171
Salesforce Spring ’15 Release Notes Case Feed

Case Feed
Case Feed gives support agents a more streamlined way of creating, managing, and viewing cases. It
EDITIONS
includes publishers, which let agents create case notes, log calls, change the status of cases, and
communicate with customers in a Chatter-like feed. Available in:
• Enterprise
IN THIS SECTION: • Performance
• Unlimited
Set Default Email Action Defaults with Apex • Developer
The default handler for email actions makes it easy for support agents to respond to customers
more quickly, more accurately, and with greater consistency. The email publisher fields are
preloaded, saving agents time spent writing emails. You can use custom logic in Apex classes to specify the email fields so that they
make sense for your business context.

Set Default Email Action Defaults with Apex


The default handler for email actions makes it easy for support agents to respond to customers
EDITIONS
more quickly, more accurately, and with greater consistency. The email publisher fields are preloaded,
saving agents time spent writing emails. You can use custom logic in Apex classes to specify the Available in:
email fields so that they make sense for your business context. • Enterprise
For example, suppose your support center handles issues related to multiple products in multiple • Performance
countries. You could create a specific template for each product and a specific organization-wide • Unlimited
email addresses for each country, and automatically load the appropriate template and From: • Developer
address based on a case’s origin, subject, or other criteria.
Before you can enable the default handler for email actions, you must create an Apex class that contains the logic for the pre-populated
email publisher fields. The class must implement the QuickAction.QuickActionDefaultsHandler interface.

Use Macros in Case Feed to Work More Efficiently


Support agents who use Case Feed now can run macros to automatically complete repetitive
EDITIONS
tasks—such as selecting an email template, sending an email to a customer, and updating the case
status—all in a single click. Macros save time and add consistency to support agents’ work. Available in: Enterprise,
You can create macros to perform multiple actions on the Case Feed. For example, a macro can Performance, Unlimited,
enter the subject line of an email and update the case status. A single macro can perform multiple and Developer Editions with
actions on different parts of the Case Feed at the same time. a Service Cloud license

Note: Macros are only supported on Feed-based layouts for Accounts, Contacts, Leads, and
Cases Objects.

IN THIS SECTION:
Use Shortcuts with Macros
You also can use shortcuts to work more efficiently with macros.
View and Run Macros
Support agents can use the Macros widget to search for macros, select a macro, see descriptions of a macro, look at the instructions
that tell a the macro what to do, and run a macro. That way, agents can work more efficiently when responding to customers and
working on cases.

172
Salesforce Spring ’15 Release Notes Use Macros in Case Feed to Work More Efficiently

Create and Edit Macros


You can create and edit macros to help support agents automate repetitive tasks. Both administrators and support agents can create
and edit macros with the appropriate user permissions.
Share Macros
Macros use the same sharing model as other objects in Salesforce. You can share macros with public groups and other users, allowing
other support agents to increase their efficiency with macros. Both administrators and support agents can share macros with the
appropriate user permissions.
Delete Macros
You can delete macros that you don’t need anymore. Both administrators and support agents can delete macros with the appropriate
user permissions.

Use Shortcuts with Macros


You also can use shortcuts to work more efficiently with macros.
EDITIONS
Table 1: Macro Shortcuts
Available in: Enterprise,
Press: To: Performance, Unlimited,
M Open the Macros widget. and Developer Editions with
a Service Cloud license
S Put your cursor in the search bar.

E Edit the selected macro.

V View the Macro Details page.

Enter Run the selected macro.

Space bar Expand or collapse the selected macro’s


instructions.

Up Arrow Scroll up the macros list.

Down Arrow Scroll down the macros list.

View and Run Macros


Support agents can use the Macros widget to search for macros, select a macro, see descriptions
EDITIONS
of a macro, look at the instructions that tell a the macro what to do, and run a macro. That way,
agents can work more efficiently when responding to customers and working on cases. Available in: Enterprise,
In the Service Console, open the Macros widget by clicking Macros in the lower right corner of the Performance, Unlimited,
screen, or press M. and Developer Editions with
a Service Cloud license
Scroll through the macros list to see available macros, or press the UP ARROW and DOWN ARROW
to move through the list. Click the name of the macro to select it and to see its description.

173
Salesforce Spring ’15 Release Notes Use Macros in Case Feed to Work More Efficiently

1. Enter some letters from the macro’s name to search for it.
2. Click Run ( ) to start the macro. A message displays indicating whether or not the macro ran successfully. Also, a green dot displays
next to each instruction that ran successfully. A red dot displays next to each instruction that could not be performed, so you can
see where the problem occurred.
3. Click Edit ( ) to change the macro’s name, edit its description, or modify its instructions.
4. Click View Details ( ) to see who created the macro, see when it was created, edit it, clone it, share it, or delete it.
5. The lightning bolt icon ( ) indicates that the macros performs an action—such as sending an email—that cannot be un-done.
6. Click + Create Macro to create a new macro.
7. Click the Instructions bar to see the steps that the macro performs. The instructions tell the macro what to do.

Create and Edit Macros


You can create and edit macros to help support agents automate repetitive tasks. Both administrators
EDITIONS
and support agents can create and edit macros with the appropriate user permissions.
In the Service Console, open the Macros widget by clicking Macros in the lower right corner of the Available in: Enterprise,
screen, or press M. Click + Create Macro. Performance, Unlimited,
and Developer Editions with
a Service Cloud license

174
Salesforce Spring ’15 Release Notes Use Macros in Case Feed to Work More Efficiently

1. The Macro Name helps support agents identify which macro to use.
2. Although Description is optional, it is useful for helping support agents to understand what the macro does.
3. The first macro instruction specifies the case tab that the macro acts upon.
4. The next macro instruction specifies the context, or part of the Case Feed, in which the macro works. For example, the Email Action
context allows the macro to set fields and perform actions within the Email Publisher.
5. The next macro instruction specifies the action that the macro performs. For example, the macro changes the CC: address on the
email to [email protected].
6. You can add additional instructions in the same context or in a different context.

Share Macros
Macros use the same sharing model as other objects in Salesforce. You can share macros with public
EDITIONS
groups and other users, allowing other support agents to increase their efficiency with macros.
Both administrators and support agents can share macros with the appropriate user permissions. Available in: Enterprise,
In the Salesforce Console Home Page, click Macros or M to open the Macros widget. You also can Performance, Unlimited,
access macros from the Macros tab. and Developer Editions with
a Service Cloud license
Select the macro that you want to share. If you are using the Macros widget, click the View Detail
icon ( ). (This step is not necessary if you are using the Macros tab.)
Click Share, and then search for the public group or user with whom you want to share the macro. Select a group or user from the
Available list and click Add. To stop sharing a macro, select a group or user from the Share With list and click Remove.
If you’re sharing the macro, set the Access Level to either Read Only or Read/Write:
• Read Only allows the group member or user to view and run the macro.
• Read/Write allows the group member or user to edit, view, and run the macro.
When you’re done, click Save.

175
Salesforce Spring ’15 Release Notes Entitlement Management

Delete Macros
You can delete macros that you don’t need anymore. Both administrators and support agents can
EDITIONS
delete macros with the appropriate user permissions.
In the Salesforce Console Home Page, click Macros or M to open the Macros widget. You also can Available in: Enterprise,
access macros from the Macros tab. Performance, Unlimited,
and Developer Editions with
Select the macro that you want to delete. If you are using the Macros widget, click the View Detail
a Service Cloud license
icon ( ). (This step is not necessary if you are using the Macros tab.)
Click Delete, and then click OK in the confirmation window.

Entitlement Management
Entitlement Management lets you and your support agents verify and fulfill customers’ support
EDITIONS
contracts.
Available in: Enterprise,
IN THIS SECTION: Performance, Unlimited,
and Developer Editions with
Milestone Countdown Timer Redesigned
the Service Cloud
The Milestone countdown timer on the Case Feed has been redesigned to be more intuitive,
so it’s easier for support agents to see how much time remains before the milestone must be
met.

Milestone Countdown Timer Redesigned


The Milestone countdown timer on the Case Feed has been redesigned to be more intuitive, so it’s
EDITIONS
easier for support agents to see how much time remains before the milestone must be met.
The timer now shows the remaining hours, minutes, and seconds. Available in: Enterprise,
Performance, Unlimited,
When the milestone is in progress, the milestone is represented by a green circle. The circle winds
and Developer Editions with
down clockwise as time elapses. The remaining hours, minutes, and seconds are shown in the
the Service Cloud
center of the circle.

176
Salesforce Spring ’15 Release Notes Assets Object Redesigned as a Standard Object

When the time to complete the milestone expires, the circle turns red. The amount of time that the milestone is overdue is shown in
the center of the circle.

Note: The milestone circle and countdown animation are static in Internet Explorer 8 and below.

Assets Object Redesigned as a Standard Object


The Assets object tracks products that your customers own. Assets can include your company’s
EDITIONS
products and competitors’ products. The Assets object has been enhanced in Spring ‘15 to give
your users a more robust way to manage assets. Available in:
Previously, the Assets object was a child object of the Accounts object. In Spring ‘15, the Assets • Professional
object has been redesigned as a standard object and has the same standard features, including a • Enterprise
tab, sharing settings and record types. • Performance
• Unlimited
• Developer
IN THIS SECTION:
Add the Assets Tab to the Home Page
The Assets object now has its own top-level tab, which you can add to your home page for quick access.
Sharing Rules Added to Assets Object
You can use sharing rules to control access to asset records in the Assets object. Sharing rules allow you to make automatic exceptions
to your organization-wide sharing settings for defined sets of users.
Asset Owner Field Added to Asset Records
Asset records now have an Asset Owner field, which is used to set hierarchy and sharing-based access controls. By default, the
asset owner is the user who created the asset record.
Field History Tracking Supported on Asset Records
Now you can track changes to asset record fields. Previously, field history tracking was not supported on asset records.
Record Types Added to Asset Records
Now, you can define record types, such as a picklists, to make it easier for your users to track customer assets. Record types let you
offer different business processes, picklist values, and page layouts to different users. Previously, the Assets object did not support
record types on assets.

177
Salesforce Spring ’15 Release Notes Assets Object Redesigned as a Standard Object

Add the Assets Tab to the Home Page


The Assets object now has its own top-level tab, which you can add to your home page for quick
EDITIONS
access.
Available in:
Note: The Assets tab is hidden by default in organizations created before Spring 15. You
• Enterprise
can make the Assets tab visible to your users by changing their user profiles.
• Performance
To add the Assets tab to your home page, click the Plus (+) icon to the right of your tabs. Then click • Unlimited
Customize My Tabs, select the tab you want to add from the Available Tabs list, and add it to the • Developer
Selected Tabs list, and click Save.

Sharing Rules Added to Assets Object


You can use sharing rules to control access to asset records in the Assets object. Sharing rules allow
EDITIONS
you to make automatic exceptions to your organization-wide sharing settings for defined sets of
users. Available in:
Previously, an asset’s visibility was based on the settings of the asset’s parent account. In Spring ‘15, • Professional
the Assets object is an individual standard object, and an asset’s visibility is based on the Assets • Enterprise
object’s settings. • Performance
• Unlimited
Note: For organizations created after Spring ‘15, the asset sharing preference is enabled by • Developer
default. For organizations created before Spring ‘15, the asset sharing preference is disabled
by default. To enable sharing, from Setup, click Customize > Assets > Settings and click
the checkbox next to Enable Asset Sharing model.
To set sharing rules for assets, from Setup, click Security Controls > Sharing Settings, and then click the Assets Sharing Rules related
list. You can set sharing on the Assets object to:
• Controlled by Parent (default)
• Private
• Public Read-Only
• Public Read/Writer
You also can apply criteria-based sharing rules.

178
Salesforce Spring ’15 Release Notes Assets Object Redesigned as a Standard Object

Note: If you have assets in the Recycle Bin, and you change the Assets object’s sharing setting from Private, Read-Only, or Read/Write
to Controlled by Parent, the system will permanently delete asset records that are not associated with an account or a contact.

Asset Owner Field Added to Asset Records


Asset records now have an Asset Owner field, which is used to set hierarchy and sharing-based
EDITIONS
access controls. By default, the asset owner is the user who created the asset record.
Previously, assets did not have an owner field because access to asset records was based on the Available in:
settings for the asset’s parent account. Now, the Asset Owner field is used for access control • Professional
when the Assets object’s sharing setting is Private, Public Read-Only, or Public Read/Write. If the • Enterprise
Assets object’s sharing setting is Controlled by Parent, the asset owner field has no effect on access • Performance
control, because the parent account’s settings control access to the asset. • Unlimited
• Developer
By default, the Asset Owner field is not shown in the page layout. To add the Asset Owner
field to the page layout, from Setup, click Customize > Assets > Page Layouts.
In organizations created before Spring ‘15, you can automatically update the asset owner field on asset records when you enable the
Assets object sharing preference. The sharing preference sets the value of the asset owner field to equal either:
• The user who created the asset, or
• The user who is the owner of the parent account
To update the owner field, from Setup, click Customize > Assets > Settings. In the Asset Settings page, enable the preference by
selecting the check box next to Enable Asset Sharing model. After you’ve selected the check box, two options will appear.
You can select either:
• Set the Asset Owner to be the asset creator, or
• Reset the Asset Owner to the owner of the parent account
To change the asset owner of an asset record, click the Assets tab and select an asset record or open the asset record from the Assets
related list on the Accounts or Contacts tabs. In the Asset Detail section, click Change next to the Asset Owner field and select a
different user from the lookup menu.

Field History Tracking Supported on Asset Records


Now you can track changes to asset record fields. Previously, field history tracking was not supported
EDITIONS
on asset records.
You can use field history tracking to see information about: Available in:
• Professional
• The date and time when the field was changed • Enterprise
• What changed • Performance
• Who made the change • Unlimited
• Developer
To enable tracking on asset fields, from Setup, click Customize > Assets > Fields > Set History
Tracking.

179
Salesforce Spring ’15 Release Notes Knowledge

Record Types Added to Asset Records


Now, you can define record types, such as a picklists, to make it easier for your users to track customer
EDITIONS
assets. Record types let you offer different business processes, picklist values, and page layouts to
different users. Previously, the Assets object did not support record types on assets. Available in:
To define asset record types, from Setup, click Customize > Assets > Record Types. • Professional
• Enterprise
• Performance
• Unlimited
• Developer

Knowledge
Salesforce Knowledge is your Knowledge Centered Support certified knowledge base.
EDITIONS

IN THIS SECTION: Salesforce Knowledge is


Linked Cases Related List on Articles available in Performance
Agents and Salesforce Knowledge managers can now see a list of cases an article is attached and Developer editions.
to. This helps validate if the article is the right solution for a case and shows which articles are Salesforce Knowledge is
used most, without running a report. available for an additional
cost in Enterprise and
Updated Article Preview Page for Internal Users
Unlimited editions.
Internal users no longer have to click Edit to view an article’s properties. All property information
is shown by default on the new Article Preview page design.
Canceling an Unsaved Draft of a Published Article No Longer Saves the Draft
In the past, if a published article was edited, but not saved, and then the changes were canceled, a new version was saved in a draft
state. To delete the draft version, an article manager had to delete them from the Article Management tab. Now, if a draft of a
published article is not saved, canceling deletes the draft version.
Send Article Content via Email (Beta)
When using Knowledge One, agents can send a case email with an article’s contents embedded in the body of the email.
Other Changes for Salesforce Knowledge
Learn about other changes that affect your Salesforce Knowledge users.

Linked Cases Related List on Articles


Agents and Salesforce Knowledge managers can now see a list of cases an article is attached to. This helps validate if the article is the
right solution for a case and shows which articles are used most, without running a report.
To enable the Linked Cases related list:
1. From Setup, go to Customize > Knowledge > Settings.
2. Click Edit.
3. Under Case Settings, check Enable list of cases linked to an article.

180
Salesforce Spring ’15 Release Notes Knowledge

4. Click Save.
The Linked Cases related list is visible on the detail or preview page of any article that has been published at least once.

The Linked Cases related list:


• Shows a maximum of 200 cases.
• Is sorted in descending order by the date the article was linked to the case. The sort order can’t be changed.
• Doesn’t appear on archived articles or a translation’s edit and detail pages.
• Doesn’t appear for external users such as portal or communities users or on Salesforce1.

Updated Article Preview Page for Internal Users


Internal users no longer have to click Edit to view an article’s properties. All property information is shown by default on the new Article
Preview page design.
The article properties are to the right of the article content.

181
Salesforce Spring ’15 Release Notes Knowledge

Canceling an Unsaved Draft of a Published Article No Longer Saves the Draft


In the past, if a published article was edited, but not saved, and then the changes were canceled, a new version was saved in a draft
state. To delete the draft version, an article manager had to delete them from the Article Management tab. Now, if a draft of a published
article is not saved, canceling deletes the draft version.

Note: The draft is only deleted if there is a published version and the draft was not saved. It isn’t applicable for archived articles
and translations.

Send Article Content via Email (Beta)


When using Knowledge One, agents can send a case email with an article’s contents embedded in the body of the email.

182
Salesforce Spring ’15 Release Notes Knowledge

Agents can send article content within a case email rather than just sending a URL, letting your customers access the information without
going to a website and letting your agents send articles without rewriting or copy and pasting an internal article. Administrators can
assign the Share internal Knowledge articles externally permission to only those agents with a good knowledge
of what is acceptable for an external audience.

Note: Sending article content via email is available through a beta program and is not supported on Internet Explorer 7. For new
organizations, the user permission, Share internal Knowledge articles externally, is off on all standard
profiles but on for the System Administrator profile. For existing organizations, contact your Salesforce representative to enable
the permission on standard profiles.
To enable and setup which article fields go into emails for each article type.
1. From Setup go to Customize > Cases > Page Layout.
2. Under Page Layouts for Case Feed Users, click the drop-down menu in the Action column next to the layout where
you want to enable sending article content in email.
3. Select Edit feed view.
4. Under Articles Tool Settings, check Enable attaching articles inline.
5. Click Save.
6. From Setup go to Customize > Knowledge > Article Types.
7. Click on the label or name of the article type you’d like to share via email.
8. Under Communication Channel Mappings, click New or Edit.

9. Enter a Label and Name.


10. Select and add Email to the Selected Channels list.

183
Salesforce Spring ’15 Release Notes Salesforce CTI Toolkit

11. Select and add the fields you’d like included in the body of an email.

Note: Smart links can’t be included in the email and the following fields are not supported:
• ArticleType
• isDeleted
• Language
• MultiPicklist
• Picklist
• Publish Status
• Source
• Validation Status

12. Click Save.


Now, while solving customer cases, agents with the Share internal Knowledge articles externally permission
can insert article content into the body of an email. Anywhere agents can attach articles to cases, such as the Knowledge One sidebar
in the Salesforce Console, the Articles list in the case feed, the Article widget, or the suggested articles in a Knowledge One search, they
can email any article of that type within the body of an email by selecting Email article with HTML in the action drop down. The article
content is inserted at top of email thread or wherever the agent left their cursor. Once an article has been emailed on the case an envelope
icon appears to the left of the title. When the article has files that exceed the 10mb attachment limit, agents are asked to select which
files to attach and retry sending the email.

Note: If rich text is not enabled on your case feed layout for the article type, only article text is embedded into the email and the
action changes to Email article text only.

Other Changes for Salesforce Knowledge


Learn about other changes that affect your Salesforce Knowledge users.
Increased default maximum articles limit
The default maximum amount of articles per organization was increased from 10,000 to 50,000.
Indexed column available on article detail field list
A new Indexed column that indicates when a field is indexed by the database help improve the performance of reports or SOQL
queries that use them.
Article widget actions on cases syncs with article permissions
Now only the available article actions are listed on the article widget on a case. For example, if an article is not published on a public
channel, the article widget on a case doesn’t show attaching the article as a PDF as an action.

Salesforce CTI Toolkit


The Salesforce CTI Toolkit helps partners build adapter programs that call center users install on
EDITIONS
their machines to integrate Salesforce with computer-telephony integration systems.
Available in:
IN THIS SECTION: • Professional
• Enterprise
Retirement of Support for the Salesforce CTI Toolkit • Performance
After the Spring '15 release, Salesforce will no longer provide support for all versions of the • Unlimited
Salesforce CTI Toolkit. • Developer

184
Salesforce Spring ’15 Release Notes Open CTI

Retirement of Support for the Salesforce CTI Toolkit


After the Spring '15 release, Salesforce will no longer provide support for all versions of the Salesforce CTI Toolkit.
The toolkit helps partners build adapter programs that call center users install on their machines to integrate Salesforce with
computer-telephony integration systems. We understand that retiring support for this feature might cause a disruption for partners. But
we strongly encourage partners to move to Open CTI at their earliest convenience so that they can provide greater value to their customers
and the Salesforce community.

Open CTI
Open CTI helps partners integrate Salesforce with Computer-Telephony Integration (CTI) systems
EDITIONS
without installing adapter programs on call center users’ machines.
Several new and updated methods are available to help developers and advanced administrators Available in:
customize SoftPhones for users. For more information, see Open CTI API on page 334. • Professional
• Enterprise
• Performance
• Unlimited
• Developer

Salesforce Console for Service


The Salesforce Console for Service is an app that’s designed for users in fast-paced environments
EDITIONS
who need to find, update, and create records quickly to support their customers.
Available in: Enterprise,
IN THIS SECTION: Performance, Unlimited,
and Developer Editions with
New Methods for the Console Integration Toolkit
the Service Cloud
Access API methods to customize a console programmatically.
Available in: Performance
Other Changes in the Salesforce Console—for a Smart & Simple Console and Developer Editions with
We’ve made it easier for console users to find and update information. the Sales Cloud
Available in: Enterprise and
Unlimited Editions with the
New Methods for the Console Integration Toolkit Sales Cloud for an additional
Access API methods to customize a console programmatically. cost
New and updated methods are available to help developers and advanced administrators show or
hide a console’s sidebars. For more information, see Salesforce Console API (Integration Toolkit) on
page 333.

Other Changes in the Salesforce Console—for a Smart & Simple Console


We’ve made it easier for console users to find and update information.
Users Can Increase Productivity with New Keyboard Shortcuts
Console users can now use the following shortcuts to work faster:

185
Salesforce Spring ’15 Release Notes Salesforce Console for Service

Action Key Command


Move a cursor to footer components and choose specific F/RIGHT ARROW or LEFT ARROW/1 through 9
components. Not supported for Microsoft® Internet Explorer® versions 7 or 8
or for right-to-left languages. If you choose the Macros or
Presence component, press ESC to move the cursor to other
components.

Open items in tabs without shifting focus from current work. CTRL+click for PCs; CMD+click for Macs

Hide or show a pinned list. SHIFT+N

Hide or show a sidebar and its components. SHIFT+arrow keys

Zoom in or out on primary tabs by hiding or showing the header, Z


footer, and pinned list.

To use or customize keyboard shortcuts, you must turn them on for users.
Users Can Boost Console Performance by Adopting New System Recommendations
Salesforce completed rigorous system testing of the console and recommends that users adopt the Google Chrome™ browser and
machines with 8 GB of RAM to work with a faster console that saves time.
Clone Console Apps
You can now clone existing console apps so that you don’t have to create consoles from scratch. By clicking the new Clone button
on a console’s detail page, you can copy the app’s fields, such as navigation tab and record display settings. To update cloned push
notification and keyboard shortcut settings, you must first save the console that you’ve copied. To clone or create a console, see
“Create a Salesforce Console App” in the Salesforce Help.
Users Can Access Several Console Features Automatically
Users can now access keyboard shortcuts and multi-monitor components, and their sessions are automatically saved for them so
that they can quickly return to where they left off in a console before they logged out. Previously, you had to turn on each of these
console features. Now, these features are turned on for all consoles. To turn off these features, see the Salesforce Help.
Assign an Automatic Height and Width to Stacked Components
When you select Autosize Components on page layouts, Salesforce automatically sizes components so that they fit nicely
in sidebars when users resize their browsers. If browsers don’t match the components’ minimum size requirements, the components
don’t appear unless users hover a mouse over the sidebar. You can’t change automatic-sizing values. The automatic-sizing option
is unavailable for Visualforce Page, Canvas App, and Knowledge One components, as well as Internet Explorer® 7.
Users Can Rearrange Console Tabs
You and your users can now click a primary tab or subtab and drag it to a new position on the tab bar to personalize a workspace.
Tabs maintain their status as primary tabs or subtabs, meaning that you can’t move primary tabs to the subtabs bar or vice versa.
The Details tab also maintains its position on subtabs. Rearranging tabs is unavailable for Internet Explorer® 7.
Let Users Customize Navigation Tabs
You can now let users personalize the items that appear in the navigation tab. On a console app, after you click Show Customize
My Tabs on the Navigation Tab, users can access Customize My Tabs to hide, display, and organize the items that matter to
them most.

186
Salesforce Spring ’15 Release Notes Console Tab (Agent Console)

Console Tab (Agent Console)


The Console tab is our first-generation customer service console for agents.

IN THIS SECTION:
Console Tab Removed from New Organizations
The Console tab, also known as the Agent Console, is no longer available in Setup for new organizations.

Console Tab Removed from New Organizations


The Console tab, also known as the Agent Console, is no longer available in Setup for new
EDITIONS
organizations.
To provide users with the best console experience, we’re no longer providing the Console tab to Available in:
new organizations. The Console tab is our first-generation customer service console, but the • Professional
Salesforce console exceeds its capabilities and offers agents more productivity tools. • Enterprise
• Performance
• Unlimited
• Developer

187
Salesforce Spring ’15 Release Notes Service Communities

Service Communities
Chatter Questions, Chatter Answers, and Ideas provide customers with a self-service community
EDITIONS
where they can post questions and receive answers from other customers or support agents, as
well as post, vote for, and comment on innovative ideas. With Question-to-Case, moderators can
escalate questions in Chatter to cases, making it easier to track and resolve your customers’ issues. Chatter Questions is
available in: Personal,
Group, Professional,
IN THIS SECTION: Developer, Performance,
Create Cases from Questions in Chatter with Question-to-Case (Generally Available) Enterprise, and Unlimited
Editions
Chatter Questions lets customers ask questions in the feed in communities and in your Salesforce
organization. With Question-to-Case, you can now give moderators the ability to escalate Question-to-Case is
questions in Chatter to cases, making it easier to track and resolve your customers’ issues. available in: Group,
Professional, Enterprise,
Performance, Unlimited,
and Developer Editions
Chatter Answers is available
in: Enterprise, Developer,
Performance, and
Unlimited Editions
Ideas is available in:
Enterprise, Developer,
Performance, Unlimited,
and Professional Editions

Create Cases from Questions in Chatter with Question-to-Case (Generally Available)


Chatter Questions lets customers ask questions in the feed in communities and in your Salesforce
EDITIONS
organization. With Question-to-Case, you can now give moderators the ability to escalate questions
in Chatter to cases, making it easier to track and resolve your customers’ issues. Question-to-Case is
Question-to-Case is available in the full Salesforce site and the Salesforce1 mobile browser app, as available in: Group,
well as in communities where Chatter Questions is enabled. You can add it to your Salesforce Professional, Enterprise,
organization, your communities, or both! Performance, Unlimited,
and Developer Editions

How It Works
If a question in Chatter isn’t resolved, moderators can escalate the question to a case directly in the feed. You can also set up
processes—similar to workflow rules—in the Lightning Process Builder that automatically create cases from questions that meet specified
criteria. Cases created from questions are added to a queue for support agents to claim, based on your organization’s case routing rules.

188
Salesforce Spring ’15 Release Notes Service Communities

When a customer’s question is turned into a case, the customer receives an email with the case number and a link to the case. The
customer can also view the case via a link on the question that’s visible only to them, while moderators see a note on the question
indicating that a case was created.

Customer Flag

Moderator Flag

Note: On escalated questions in Salesforce (as opposed to communities), the notification is visible to all users, not just moderators.

When agents find a solution, they can respond to questions directly from the case, and the customer sees the agent’s response on the
question or in the My Cases view. Agents choose whether the reply is visible to the community, or only to the customer who asked the
question.

The Question-to-Case setup has several steps. To get started, see the Salesforce Help.

189
Salesforce Spring ’15 Release Notes Social Customer Service

Social Customer Service


Social Customer Service is the next-generation integration between Radian6 and the Salesforce
EDITIONS
Service Cloud. Customer service agents can engage with their customers by responding to cases
created from leading social networks like Twitter and Facebook. Salesforce Adminstrators can Social Customer Service is
customize how the inbound social content is processed using an Apex class and they can configure available in Enterprise,
who in their organization has permission to respond by using social accounts. Performance, and
Unlimited editions.
IN THIS SECTION:
Social Customer Service Starter Pack
Get started with Social Customer Service quickly and easily. Once Social Costumer Service is enabled via a support case, you can
connect your Facebook and Twitter accounts directly from Salesforce and deliver social customer care without a separate Radian6
contract.
Improved Administration
The Social Customer Service settings navigation is now organized in four tabs with greater detail and functionality.
Interact with Social Posts with New Case Feed Actions
Agents can now favorite tweets, like posts, and view source content for social posts, all within the case feed.
Respond to Leads in the Lead Feed with the Social Action
Your sales agents can now interact with your social customers on the Lead feed, creating prospective business where your customers
are, when they are available.
Broad Listening Content from Blogs Forums and Sites
If broad listening sources are configured in Radian6, customers can now import and track customer issues from the entire social
web.
Google+ Social Customer Service (Pilot)
Let your customer service agents listen and respond to Google+ posts about your company’s products and services.
Sina Weibo Social Customer Service (Pilot)
Let your customer service agents listen and respond to Sina Weibo posts about your company’s products and services. A brand
presence on Sina Weibo is vital when doing business in China. With the Sina Weibo Social Customer Service pilot, your agents can
respond to Sina Weibo mentions, posts, and comments in the case feed. Administrators can authorize agents to receive Sina Weibo
social help inquiries.

Social Customer Service Starter Pack


Get started with Social Customer Service quickly and easily. Once Social Costumer Service is enabled via a support case, you can connect
your Facebook and Twitter accounts directly from Salesforce and deliver social customer care without a separate Radian6 contract.
With the starter pack, you can enable Social Customer Service and up to two social accounts directly on the Social Customer Service
settings page (from Setup Customize > Social Apps Integration > Social Customer Management > Settings). Your two social
accounts can be from either Facebook or Twitter or one from each.

Note: To enable Social Customer Service, log a support case. Once Salesforce has enabled Social Customer Service, you can setup
Social Customer Service with a starter account or your existing Radain6 accounts.

190
Salesforce Spring ’15 Release Notes Social Customer Service

Note: The Social Customer Service Starter Pack doesn’t support the moderation feature; all posts become cases. You can’t
downgrade from a Radian6 account to the starter pack. And the default Apex code can’t be customized.
When you outgrow the starter pack, for example when you need more than two social accounts or want to moderate which incoming
social posts become cases, upgrading to a Radian6 account is also quick and easy.

Improved Administration
The Social Customer Service settings navigation is now organized in four tabs with greater detail and functionality.
The settings page now has four tabs:
• Settings: Allows you to enable Social Customer Service and create (with the Starter Pack) or login to your Radian6 account.
• Social Accounts: Allows you to add accounts from all your social networks, refresh accounts, and start and stop accounts within
Salesforce.
• Inbound Settings: Allows you to change the user to run the Apex class and, if you aren’t using the Starter Pack, change the Apex
class.
• Error Log: Shows more details of up to 100 post errors and allows you to reprocess the posts.

Also, Facebook pages with duplicate names include an extra value in their label to help tell the pages apart. Facebook pages can have
unique URLs to be separately identified.

191
Salesforce Spring ’15 Release Notes Social Customer Service

Interact with Social Posts with New Case Feed Actions


Agents can now favorite tweets, like posts, and view source content for social posts, all within the case feed.
Agents work securely and save time by staying in the case feed to like Facebook posts and favorite Twitter tweets, which removes reasons
to share secure credentials Twitter and Facebook handles and keeps agents from working in multiple systems.
Favorite and unfavorite Twitter tweets from the case feed
Agents can favorite and unfavorite tweets in Twitter without leaving the case feed.

Like and unlike Facebook posts from the case feed


Agents can like and unlike posts in Facebook without leaving the case feed.

Go to the original post from the case feed


Agents can use the View Source link to go to the original post within its social network with the click of a link.
URLs in the case feed become clickable links for all social networks.
Now all URLs entered in social case feed posts are turned into clickable links. In the past only Twitter posts changed URLs into
hyperlinks.

192
Salesforce Spring ’15 Release Notes Social Customer Service

Content from non-replyable sources available in the case feed


Content posted on a social network thread attached to a case appears in the case feed even though agents can’t respond to it. For
example, customers post a Flickr videos to illustrate their issues and your agents can still view the posts even though they can’t reply
to those particular posts.

Respond to Leads in the Lead Feed with the Social Action


Your sales agents can now interact with your social customers on the Lead feed, creating prospective business where your customers
are, when they are available.
If a social post is associated with a lead in Salesforce, sales representatives can now respond from the feed on the lead object.

Note: When a lead is converted to an account or contact, the social items in the feed are removed.

For the social action to appear in the feed on the lead object, the social post must be associated with the lead through the Who field.
You also need a feed-based layout for page layout in Leads (from Setup go to Customize > Leads > Page Layouts) and to enable feed
tracking for leads (from Setup go to Customize > Chatter > Feed Tracking and ensure Enable Feed Tracking and All
Related Objects are checked).
Lead support also works in Salesforce1.

193
Salesforce Spring ’15 Release Notes Social Customer Service

Broad Listening Content from Blogs Forums and Sites


If broad listening sources are configured in Radian6, customers can now import and track customer issues from the entire social web.
Import blog, forum, and site content as posts into Salesforce to understand what's being said about your company, products, and industry
on social media. Service teams can surprise and delight customers with social customer care. Also, sales teams can find and connect to
new customers faster with social lead generation.

Note: Broad listening sources must be configured in Radian6 topic profiles and pushed to Social Customer Service through either
Social Hub or Social Studio.
With broad listening, customers can see a complete picture of their social service footprint and identify where requests are coming from
and which sites or forums need attention. Also, agent actions are tracked in one place for all data sources. Agents can use Activities, Case
Comments, Log a Call, or Chatter comments to track handling and triage whether broad listening posts from sources blogs and forums
constitute cases.

Google+ Social Customer Service (Pilot)


Let your customer service agents listen and respond to Google+ posts about your company’s products and services.

Note: Google+ Social Customer Service is available through a pilot program. For information on enabling Google+ for your
customer service agents, contact Salesforce.
With the Google+ Social Customer Service pilot, your agents can respond to Google+ mentions, posts, and comments in the case feed.
Administrators can authorize Google+ pages so agents can receive Google+ content that +mentions your company and respond to
comments on your posts. You can also publish back comments in reply to other comments or posts.

194
Salesforce Spring ’15 Release Notes Social Customer Service

Google+ Social Customer Service Pilot Limitations


• Agents can’t delete their outbound posts.
• Agents can’t +1 inbound posts.
• Links in outbound post aren’t clickable within Google+.
• Agents can’t see whether conversations are public or private.
• Agents can’t change conversations between public and private.
• Agents can’t see if a private conversation is changed to private on Google+.

Note: Private conversations can become public, if the conversation is changed within Google+.

• Google+ inbound data may take up to 30 minutes to arrive in Salesforce.


• In outbound replies, +1 mentions may not work properly.

Sina Weibo Social Customer Service (Pilot)


Let your customer service agents listen and respond to Sina Weibo posts about your company’s products and services. A brand presence
on Sina Weibo is vital when doing business in China. With the Sina Weibo Social Customer Service pilot, your agents can respond to
Sina Weibo mentions, posts, and comments in the case feed. Administrators can authorize agents to receive Sina Weibo social help
inquiries.

Note: Sina Weibo Social Customer Service is available through a pilot program. For information on enabling Sina Weibo for your
customer service agents, contact Salesforce.
Aents receive Sina Weibo posts and other content that directly @mentions your company or responds to your posts, and previous replies.
Agents can receive reposts, or forwards, but these come through as regular posts and not a distinct message type. Agents can also
publish back comments and replies in reponse to other comments or posts.

195
Salesforce Spring ’15 Release Notes Business Continuity

Note: To submit a Sina Weibo reply, you must have the reply you are replying to and also the original post in Salesforce.

Sina Weibo Social Customer Service Pilot Limitations


• Agents can’t delete their outbound posts.
• Agents can’t repost/forward inbound posts.
• Links in outbound post aren’t clickable within Sina Weibo.
• Direct or private messages aren’t supported.
• Sina Weibo inbound data may take up to 30 minutes to arrive in Salesforce.

Business Continuity
Looking for a way to give your users access to Salesforce during maintenance and planned upgrades?
EDITIONS
Organization Sync lets you set up a secondary, synced Salesforce organization where users can
work when your primary organization is unavailable. Available for an additional
cost in: Enterprise,
Performance, Unlimited,
and Developer Editions

196
Salesforce Spring ’15 Release Notes Chatter: Reporting, Question-to-Case, Records in Groups

IN THIS SECTION:
Promote Business Continuity with Organization Sync (Generally Available)
At Salesforce, we recognize that you need to access your data at a moment’s notice—even when Salesforce is down for maintenance.
With Organization Sync, you can set up a secondary, synced Salesforce organization where users can work on your most business-critical
processes and data whenever your primary organization is experiencing downtime or maintenance.

Promote Business Continuity with Organization Sync (Generally Available)


At Salesforce, we recognize that you need to access your data at a moment’s notice—even when
EDITIONS
Salesforce is down for maintenance. With Organization Sync, you can set up a secondary, synced
Salesforce organization where users can work on your most business-critical processes and data Available in:
whenever your primary organization is experiencing downtime or maintenance. • Enterprise
Organization Sync is ideal for companies whose users need access to Salesforce at all times. For • Performance
example, representatives in a 24/7 call center can continue to serve customers during maintenance • Unlimited
windows with minimal disruption. • Developer

Organization Sync uses the framework of Salesforce to Salesforce, a feature that lets customers
share records with other companies that use Salesforce. To set up Organization Sync, you’ll establish a secondary Salesforce organization
with matching metadata and create a data replication connection between the primary and secondary organizations. You can specify
which types of data are copied to the secondary organization by mapping essential objects and fields to the secondary organization
through a publish and subscribe process. Then, records are copied to the secondary organization in a way that ensures that they remain
synced.
When the primary organization is unavailable, users are redirected to the secondary organization until the maintenance is complete.
Nearly all actions (creating a case, deleting an attachment, and more) that users perform in one organization are automatically applied
to the other organization.
To learn more about Organization Sync, contact Salesforce.

Chatter: Reporting, Question-to-Case, Records in Groups


Spring ’15 enables you to report on Chatter activity in your organization, add records to groups, and create cases from Chatter Questions.
There are also several improvements to files, feeds, and unlisted groups functionality.

IN THIS SECTION:
Report on Chatter Usage with the Salesforce Chatter Dashboards Package
The Salesforce Chatter Dashboards package gives administrators an essential set of dashboards and reports to keep tabs on Chatter
activity. Administrators can gain insights from the latest metrics and rapidly spot trends.
More Collaboration Options in Chatter Groups
Chatter groups now include features that help you collaborate on records, send group emails, and change unlisted groups.
Files
Simplify file management for your users with file syncing, sharing, and collaboration.
More Communication Options in Chatter Feeds
Chatter Feeds now allow users to create a task from a post and to use emoticons.
Manage Questions in Chatter with Question-to-Case (Generally Available)
Chatter Questions lets users ask questions in the feed in your Salesforce organization and communities. With Question-to-Case,
questions that aren’t resolved can be escalated to cases, making it easier to quickly resolve users’ issues.

197
Salesforce Spring ’15 Release Notes Report on Chatter Usage with the Salesforce Chatter
Dashboards Package

Moderate Chatter Private Messages with Apex Triggers


The ChatterMessage object now supports triggers, which enable you to automate private message moderation in an organization
or community. For example, use triggers to ensure that messages conform to your company’s messaging policies and don’t contain
blacklisted words.
Other Changes in Chatter
Smaller changes that improve your experience with Chatter.

SEE ALSO:
How and When Chatter Features Become Available

Report on Chatter Usage with the Salesforce Chatter Dashboards Package


The Salesforce Chatter Dashboards package gives administrators an essential set of dashboards and reports to keep tabs on Chatter
activity. Administrators can gain insights from the latest metrics and rapidly spot trends.

Note: The Salesforce Chatter Dashboards package will be available on AppExchange shortly after Spring '15.

Dashboard Description
Overview See the overall state of Chatter at a glance.

Content Track content uploads, downloads, engagement, and content creators.

Groups Monitor membership and post and comment activity within groups.

Moderation Track unanswered questions and posts, group growth rates, and the overall health of your groups.

Q&A See metrics about questions, answers, and best answers posted in your groups.

Topics See metrics about navigational and featured topics.

User Profiles Monitor post and comment activity within user profiles.

More Collaboration Options in Chatter Groups


Chatter groups now include features that help you collaborate on records, send group emails, and change unlisted groups.

IN THIS SECTION:
Allow Users to Add Records to Chatter Groups
Adding records to groups allows users to collaborate on and discuss the records as a team in the group.
Group Posts Via Email Now Support Non-Unique Email Addresses
Starting in Spring ’15, Chatter groups support posts via email from non-unique email addresses in your organization, as long as
they’re unique at the group level.
Unlisted Group Enhancements
You can now convert unlisted groups to public or private groups when you want to open them up to a wider audience. We’ve also
changed the access limitations for some users.

198
Salesforce Spring ’15 Release Notes More Collaboration Options in Chatter Groups

Allow Users to Add Records to Chatter Groups


Adding records to groups allows users to collaborate on and discuss the records as a team in the
EDITIONS
group.
The ability to add records to groups is enabled by default, but you need to configure the group Available in:
publisher before users can use this feature. • Group
• Professional
1. From Setup, click Customize > Chatter > Settings. In the Groups section, verify that Allow • Enterprise
Records in Groups is selected. • Performance
2. Customize the group layout and add the Add Record action to the group publisher. • Unlimited
3. We recommend that you customize object layouts to include the Groups related list on record • Contact Manager
• Developer
detail pages. Do this for all the standard and custom objects in your organization that support
group-record relationships.
The Groups list allows users to view the list of groups that a record is associated with. USER PERMISSIONS

A few things to bear in mind about adding records to groups: To enable records in Chatter
groups:
• Groups that allow customers and groups in communities don’t support records in groups.
• “Customize Application”
• Users can add account, contact, lead, opportunity, contract, campaign, case, and custom object
records to groups. Other objects aren’t supported.
• Users must have permissions to access the record as well as the group.
• Users can add any number of records to a group.
• Adding a record to a group doesn’t affect the group feed, record feed, or record visibility (sharing). No feed items are created; only
a confirmation message appears. The group doesn’t follow the record, or vice versa.
• Only users with the necessary permissions (via license, profile, permission sets, or sharing) can see the records in a group.
For example, Chatter Free users don’t see any records in groups. Or, a user with permissions to view accounts and contacts can’t
view any case records in the group. This sometimes means that users see fewer records than the actual count indicated on the group
records list.

• Records can be added to groups using the Salesforce SOAP API or the Chatter REST API. Group-record relationships are stored in the
CollaborationGroupRecord object.
Group records are supported in both the SOAP API and the Chatter Rest API.

Group Posts Via Email Now Support Non-Unique Email Addresses


Starting in Spring ’15, Chatter groups support posts via email from non-unique email addresses in your organization, as long as they’re
unique at the group level.
Previously, email addresses shared by more than one user record were blocked from posting to groups. Going forward, posts from such
email addresses will not be blocked. Of the multiple user records an email address is associated with, posts to the group feed display as
posted by the user record that is also a member of the group. If multiple user records that share email addresses are members in the
same group, then posts from that email address to that group are blocked.

Unlisted Group Enhancements


You can now convert unlisted groups to public or private groups when you want to open them up to a wider audience. We’ve also
changed the access limitations for some users.
• Users with the “Manage Unlisted Groups” can now delete feed content without requiring the “Modify All Data” permission.

199
Salesforce Spring ’15 Release Notes Files

• Users with the “Modify All Data” permission can’t delete feed content from unlisted groups, unless they are group members.

Files
Simplify file management for your users with file syncing, sharing, and collaboration.

IN THIS SECTION:
New Salesforce Files Setup Node for Files and Content
Files and Content have a new home in Setup! Now, you can manage all your Files and Content settings under a single Salesforce
Files node. Previously, these settings pages were widely dispersed across Setup.
Files Support Record Types and Page Layouts
Salesforce Files now support Record Types and Page Layouts. Previously, most customizable objects supported Record Types and
Page Layouts, but Files did not. Administrators can now set both of these for Files, using the Record Types and Page Layouts Setup
pages in the new Salesforce Files node.
New OS Support in Salesforce Files Sync
Salesforce Files Sync now supports Windows 8 and 8.1, and Mac OS X Yosemite.
Sync Shared Files
Now users can sync files shared by others, directly from Chatter feed posts, file lists, and file detail pages. Previously, users could only
sync their own files.
Distribute a Managed Version of Salesforce Files Sync (Pilot)
Salesforce Files Sync is piloting a new Managed Version feature in the Spring '15 release. This feature allows IT Administrators to
deploy Salesforce Files Sync desktop client at scale.
Connect to Content in OneDrive for Business
Let Salesforce users access and share files from Microsoft’s latest cloud-based content system. Fully integrate your external content
by including it in global Salesforce searches.
Secure Agent Enhancements
If you use Files Connect with on-premises data sources like SharePoint 2010 or 2013, you need a Secure Agent to securely communicate
with Salesforce. Improvements in Spring ’15 help you install and update Secure Agents, as well as track their activity.

New Salesforce Files Setup Node for Files and Content


Files and Content have a new home in Setup! Now, you can manage all your Files and Content settings under a single Salesforce Files
node. Previously, these settings pages were widely dispersed across Setup.
From Build > Customize > Salesforce Files, you can configure settings for Files and Content.

200
Salesforce Spring ’15 Release Notes Files

Here is what we’ve done to make Files and Content Setup easier to find:
• There is a new Salesforce Files node (1) in Setup.
• Salesforce CRM Content and Content Deliveries (2) have moved to the new Salesforce Files node.
• Salesforce Files Sync (3) has moved from Chatter Settings to its own Setup page within the Salesforce Files node.
• Files Connect (4) has moved to the new Salesforce Files node.

Files Support Record Types and Page Layouts


Salesforce Files now support Record Types and Page Layouts. Previously, most customizable objects supported Record Types and Page
Layouts, but Files did not. Administrators can now set both of these for Files, using the Record Types and Page Layouts Setup pages in
the new Salesforce Files node.

New OS Support in Salesforce Files Sync


Salesforce Files Sync now supports Windows 8 and 8.1, and Mac OS X Yosemite.

Sync Shared Files


Now users can sync files shared by others, directly from Chatter feed posts, file lists, and file detail
USER PERMISSIONS
pages. Previously, users could only sync their own files.
Now you can sync not only your own files between your desktop and Salesforce, but also files shared To sync a shared file
by others. If you have Collaborator rights for the synced file, you can sync the file, make changes, • “Sync Files”
and save. Salesforce Files Sync handles the rest, so colleagues always have the latest version. If you
have Viewer rights for the file, you can sync the file and rest assured knowing that your file is always
up-to-date.

201
Salesforce Spring ’15 Release Notes Files

Note: This feature was released in Salesforce Files Sync version 1.3.0. For more details about syncing shared files, refer to Sync
Shared Files in Salesforce Files Sync Help.

Distribute a Managed Version of Salesforce Files Sync (Pilot)


Salesforce Files Sync is piloting a new Managed Version feature in the Spring '15 release. This feature allows IT Administrators to deploy
Salesforce Files Sync desktop client at scale.

Note: The Managed Version of Salesforce Files Sync is currently available through a pilot program. For more information on
enabling the Managed Version of Salesforce Files Sync, contact Salesforce.
Managed Version can be deployed in an organization by IT Administrators using a Group Policy or Configuration Management Software.
Enabling the Managed Version disables all user-accessible download links and banners for the Files Sync Client in Salesforce, so IT
Administrators become the only ones who can deploy and upgrade Files Sync.
If your organization is participating in the pilot program, access the Managed Version settings in Setup > Administer > Desktop
Administration > Salesforce Files Sync Settings.

Connect to Content in OneDrive for Business


Let Salesforce users access and share files from Microsoft’s latest cloud-based content system. Fully
EDITIONS
integrate your external content by including it in global Salesforce searches.
The following online Help topics outline the setup process. (When Spring ’15 is released, these will Available in:
include additional configuration details for OneDrive for Business.) • Enterprise
• Performance
1. Enable Files Connect for your organization. • Unlimited
2. Let users access OneDrive for Business. • Developer
3. Create an authentication provider for OneDrive for Business.
4. Define an external data source for OneDrive for Business. USER PERMISSIONS
5. To let users access external data in global Salesforce searches, create an external object and To enable Files Connect,
give users access to its fields. This is an optional step, but highly recommended to best integrate create an external data
external data with Salesforce. source, and include that
source in global search:
6. Ask users to provide their data source credentials. Now they can download and share external
• “Customize Application”
files via the Files tab and feed, and search for them right alongside their Salesforce content.

Secure Agent Enhancements


If you use Files Connect with on-premises data sources like SharePoint 2010 or 2013, you need a
EDITIONS
Secure Agent to securely communicate with Salesforce. Improvements in Spring ’15 help you install
and update Secure Agents, as well as track their activity. Available for an additional
Note: Connecting to SharePoint 2010 or 2013 requires a paid permission set license, “Files cost in: Enterprise,
Performance, Unlimited,
Connect for on-premises external data sources.” For details, see the online Help.
and Developer Editions
Install Windows agents with a user-friendly interface
From Setup, click Develop > Secure Agents. Go to the details page for an agent, and click
Download Installer > Windows Agent to download a new, standard Windows installer that USER PERMISSIONS
walks you through the process step-by-step.
To set up a Secure Agent:
• “Customize Application”

202
Salesforce Spring ’15 Release Notes More Communication Options in Chatter Feeds

Track agent activity with log files


From the details page for an agent, click Download Logs to download a .zip file containing text logs you can use for monitoring or
troubleshooting.
Receive automatic update notifications
To optimize performance, Salesforce regularly improves Secure Agent plug-ins. Automatic emails let administrators know when
current versions should be updated.

More Communication Options in Chatter Feeds


Chatter Feeds now allow users to create a task from a post and to use emoticons.
EDITIONS

IN THIS SECTION: Available in:


• Group
Enhance the Feed with a New Task Action • Professional
The Create New Task action lets users create a task directly from a post in their feed. • Enterprise
Use Action Links to Take Action from Posts (Generally Available) • Performance
Action links are buttons on posts that, when clicked, can call a Salesforce or third-party API, • Unlimited
download a file, or open a Web page. Developers create action links that integrate Salesforce • Contact Manager
and third-party services into the feed so that users can take action to drive productivity and • Developer
accelerate innovation. Developers can create action links in their organization and distribute
them in packages.
Emoticons Added in the Feed
Now your users can add expressions like a smiley face to their posts and comments by typing a character combination.

Enhance the Feed with a New Task Action


The Create New Task action lets users create a task directly from a post in their feed.
USER PERMISSIONS
Enable actions in the publisher and feed tracking for task objects, before you add the Create New
Task action to the feed item layout. To customize Chatter feed
item layouts
1. Enable Actions in the Publisher. • “Customize Application”
a. From Setup, click Customize > Chatter > Settings, then click Edit.
b. In the Actions in the Publisher section, select Enable Actions in the Publisher, then click
Save.

2. Enable feed tracking for tasks.


a. From Setup, click Customize > Chatter > Feed Tracking.
b. Select Task from the list of objects.
c. Select Enable Feed Tracking, then click Save.

3. Add the Create New Task action to the Actions in the Publisher layout.
a. From Setup, click Customize > Chatter > Feed Item > Layouts.
b. Click Edit next to Feed Item Layout.
c. In the Feed Item Layout, click Actions.
d. Select the Create New Task action and drag it to the Actions in the Publisher section.

203
Salesforce Spring ’15 Release Notes More Communication Options in Chatter Feeds

e. Click Save.

After the Create New Task action has been enabled, the action displays on the drop-down menu on posts with text, content, or link
attachments in Salesforce and in Salesforce1.

When a user creates a task from a post, the task also shows up in the My Tasks list on the user’s Home page.
The Create New Task action
• Is available on text, content, and link posts, but not on system-generated posts like record updates
• Generates an update that displays in the user’s feed
• Can be partly customized. You can’t change the fields, but you can change the layout of the fields.

Use Action Links to Take Action from Posts (Generally Available)


Action links are buttons on posts that, when clicked, can call a Salesforce or third-party API, download a file, or open a Web page.
Developers create action links that integrate Salesforce and third-party services into the feed so that users can take action to drive
productivity and accelerate innovation. Developers can create action links in their organization and distribute them in packages.
For example, let’s imagine that a fictional 3D print shop called “BuildIt” creates an AppExchange app that uses action links to integrate
with Salesforce. If a BuildIt customer has the app installed, they can go to the BuildIt website, create an account, and send posts containing
action links to Salesforce that invite certain users to order parts from BuildIt. In this sample feed element posted from BuildIt customer

204
Salesforce Spring ’15 Release Notes More Communication Options in Chatter Feeds

Pam Jones to her report Jin Chang, clicking the Download action link downloads a file with parts information from the BuildIt website.
Clicking the Order action link takes Jin Chang to a page on the BuildIt website to order a part.

For information about how to create action links in Apex, see General Updates to Chatter in Apex on page 282. For information about
how to create action links in Chatter REST API, see General Updates to Chatter REST API on page 314.

Emoticons Added in the Feed


Now your users can add expressions like a smiley face to their posts and comments by typing a character combination.
We support these character combinations.

Character Combinations Emoticon

• :) (smile)
• :-)

• :P (tongue)
• :-P
• :p
• :-p

• :( (frown)
• :-(

• >:( (angry)
• >:-(

• :(( (crying)

205
Salesforce Spring ’15 Release Notes Manage Questions in Chatter with Question-to-Case
(Generally Available)

Character Combinations Emoticon

• >:’(
• :’-(

To make emoticons available to your users, navigate to Setup and click Customize > Chatter > Settings. In the Emoticons in Feed
section, select Allow Emoticons.
Emoticons aren’t supported in Salesforce1.

Manage Questions in Chatter with Question-to-Case (Generally Available)


Chatter Questions lets users ask questions in the feed in your Salesforce organization and
EDITIONS
communities. With Question-to-Case, questions that aren’t resolved can be escalated to cases,
making it easier to quickly resolve users’ issues. Available in:
Question-to-Case is available in all Salesforce organizations and communities where Chatter • Group
Questions is enabled. Moderators can escalate questions to cases directly in the feed. You can also • Professional
set up processes—similar to workflow rules—in the Lightning Process Builder that automatically • Enterprise
create cases from questions that meet specified criteria. • Performance
• Unlimited
• Developer

To learn more about Question-to-Case, see Create Cases from Questions in Chatter with Question-to-Case (Generally Available).

206
Salesforce Spring ’15 Release Notes Moderate Chatter Private Messages with Apex Triggers

Moderate Chatter Private Messages with Apex Triggers


The ChatterMessage object now supports triggers, which enable you to automate private message
EDITIONS
moderation in an organization or community. For example, use triggers to ensure that messages
conform to your company’s messaging policies and don’t contain blacklisted words. Available in: Enterprise,
To create a trigger for private messages from Setup, click Customize > Chatter > Triggers > Performance, Unlimited,
ChatterMessage Triggers. Alternatively, you can create a trigger from the Developer Console by and Developer Editions
clicking File > New > Apex Trigger and selecting ChatterMessage from the sObject drop-down
list. USER PERMISSIONS
Write an Apex before insert trigger to review the private message body and information about the
sender. You can add validation messages to the record or the Body field, which causes the message To save Apex triggers for
ChatterMessage:
to fail and an error to be returned to the user.
• “Author Apex”
Although you can create an after insert trigger, ChatterMessage is not updatable, and consequently
AND
any after insert trigger that modifies ChatterMessage will fail at run time with an appropriate error
message. “Manage Chatter
Messages”
This table lists the fields that are exposed on ChatterMessage.

Table 2: Available Fields in ChatterMessage


Field Apex Data Type Description
Id ID Unique identifier for the Chatter message

Body String Body of the Chatter message as posted by the sender

SenderId ID User ID of the sender

SentDate DateTime Date and time that the message was sent

SendingNetworkId ID Network (Community) in which the message was sent.


This field is visible only if communities are enabled and Private
Messages are enabled in at least one community.

Example: This example shows a before insert trigger on ChatterMessage that’s used to review each new message.
trigger PrivateMessageModerationTrigger on ChatterMessage (before insert) {
ChatterMessage[] messages = Trigger.new;

for (ChatterMessage currentMessage : messages) {


// Review current message
}
}

If a message violates your policy, for example when the message body contains blacklisted words, you can prevent the message
from being sent by calling the Apex addError method. You can call addError to add a custom error message on a field or
on the entire message. The following code snippet shows how to add an error to the message Body field.
if (moderator.isMessageUnacceptable(currentMessage)) {
currentMessage.Body.addError('This message violates the acceptable use policy.');
}

207
Salesforce Spring ’15 Release Notes Other Changes in Chatter

Other Changes in Chatter


Smaller changes that improve your experience with Chatter.
More Preview Links Added
Salesforce provides rich media support for various URLs to make your users’ experience even better. Previews are powered by
Embed.ly, a third-party service, and include thumbnails, descriptions, and video players for links to videos. In this release, we’ve added
support for
• allego.com
• amazon.com, amazon.cn, amazon.in, amazon.co.jp, amazon.fr, amazon.de, amazon.es, amazon.it, amazon.co.uk, amazon.ca,
amazon.com.au, amazon.com.mx, amazon.com.br
• espn.go.com
• etsy.com
• facebook.com, fb.com
• kaltura.com
• maps.google.com, google.com/maps
View a Link and a File Attachment on the Same Post
A post can now have two attachments, a link and a file, providing your users with even more information at their fingertips.

While you can view the attachments on a post in Salesforce, you can currently add the attachments only using the Salesforce1 mobile
browser app on your mobile device. For more information about how to add the attachments using your mobile device, see Add
Attachments Directly from the New Post Page.

Salesforce1 Reporting: Report Notifications


Reporting enhancements give you even more ways to keep tabs on key metrics.

208
Salesforce Spring ’15 Release Notes Subscribe to Receive Report Notifications (Generally Available)

IN THIS SECTION:
Subscribe to Receive Report Notifications (Generally Available)
Your users can now sign up for report notifications, to stay up-to-date on the metrics they care about most. Subscribe to a report
and set the conditions that should trigger notification. For example, subscribe to an open-issues report and get notified every morning
whenever there are more than 20 open issues. Notifications are delivered right to the subscriber, via Salesforce1 notifications, Chatter,
or email. Users can even specify that a custom action–defined via Apex–be triggered.
Increase the Session Security Level Required to Export and Print Reports
You can now set a security policy that requires users to have a high assurance session to export and print reports. Set this policy to
restrict access to users who can perform these tasks.
Dashboard Wizard and API Create Correct Relative URLs
The dashboard wizard and API no longer cause errors when you enter Drill Down to locations other than absolute URLs.
Other Changes in Salesforce1 Reporting
Additional updates to Reporting help you track your data.

SEE ALSO:
How and When Salesforce1 Reporting Features Become Available

Subscribe to Receive Report Notifications (Generally Available)


Your users can now sign up for report notifications, to stay up-to-date on the metrics they care
EDITIONS
about most. Subscribe to a report and set the conditions that should trigger notification. For example,
subscribe to an open-issues report and get notified every morning whenever there are more than Available in: All editions
20 open issues. Notifications are delivered right to the subscriber, via Salesforce1 notifications, except Database.com
Chatter, or email. Users can even specify that a custom action–defined via Apex–be triggered.
Report notification subscriptions are automatically enabled. You can disable the feature from Setup,
USER PERMISSIONS
by clicking Customize > Reports & Dashboards > Report Notifications.
On the Report Run page, users see a new option to Subscribe. Each user can subscribe to up to To subscribe to reports:
five reports. • “Run Reports”
To enable or disable report
notification subscriptions:
• “Customize Application”

These scheduled notifications are different from the existing ability to schedule future runs from the Report Run page (Run Report >
Schedule Future Runs...). Schedule future runs lets users schedule reports to be emailed at specified times, without specifying conditions.

209
Salesforce Spring ’15 Release Notes Subscribe to Receive Report Notifications (Generally Available)

Here’s a summary of how to set up notifications on the new Report Subscription page.

1. Specify each condition in three parts: aggregate, operator, value. For example, trigger notifications whenever the sum of amount is
less than $1 million.
Your conditions are evaluated when the report is run, and notifications are sent if all conditions are met (up to five conditions per
report).
2. Schedule how often (every weekday, daily, or weekly) and when to evaluate for your conditions. For example, run the report every
weekday at 7 a.m.
3. Select one or more notification types.

Note: There are new Apex classes and methods in the Reports namespace related to report notifications. See New and
Changed Apex Classes for details.

On the Reports tab, users can now also filter their list view by Items I’m Subscribed to.

210
Salesforce Spring ’15 Release Notes Increase the Session Security Level Required to Export and
Print Reports

Increase the Session Security Level Required to Export and Print Reports
You can now set a security policy that requires users to have a high assurance session to export
EDITIONS
and print reports. Set this policy to restrict access to users who can perform these tasks.
Previously, you could require a high assurance session to access resources like reports, dashboards, Available in: All editions
and connected apps. Now, to give you finer access control, you can also require a high assurance except Database.com
session to restrict access to exporting and printing reports.
If you enable this feature, when a user with Standard security-level session tries to export or print USER PERMISSIONS
a report, Salesforce prompts the user to login again, based on the login method associated with
the High Assurance security level. Once the user completes the login flow successfully, the user can To set up high assurance
export or print the report. security:
• “Customize Application”
You can enable the feature from Setup by clicking Build > Customize > Reports & Dashboards >
Access Policies. On the Access Policies page, select High Assurance session required > Raise
the Session Level with Step-up Authentication for 'Report Export' and 'Printable View'. By default, this feature is disabled.

Dashboard Wizard and API Create Correct Relative URLs


The dashboard wizard and API no longer cause errors when you enter Drill Down to locations other than absolute URLs.
To fix a potential security issue, the dashboard builder, wizard, and API now create correct relative URLs when you use text to represent
the location Salesforce takes users to when they click a dashboard component. The text you enter is escaped with a backslash and
converted into a relative URL. All three ways of creating dashboard components accept absolute URLs as is and don’t convert them to
relative URLs. (Absolute URLs look like salesforce.com and www.salesforce.com.)
Previously, an error resulted when you used text (other than an absolute URL) in the wizard and API to represent the locations users are
taken to when they click components.

Other Changes in Salesforce1 Reporting


Additional updates to Reporting help you track your data.
The Reports and Dashboard Tabs Are Protected from Clickjacking
For enhanced security, clickjack protection is now enabled for Salesforce1 Reporting. This means that the Reports and Dashboards
tabs can no longer be embedded inside an iframe. Previously, you could turn clickjack protection on and off. Now, clickjack protection
is always active. For more information, see Clickjack Protection Enabled for Salesforce1 Reporting.

Force.com Customization: Adapt Salesforce with Clicks and Code


Customization features enable you to expand your organization by enhancing your objects, data, and fields, customizing your organization’s
look and feel, augmenting your business processes, creating websites, and creating apps—all by using point-and-click tools and maybe
some code. Customization features also include tools to administer and secure your organization.

IN THIS SECTION:
General Administration
Administration helps you manage your organization to suit your business needs.

211
Salesforce Spring ’15 Release Notes General Administration

Data
The Force.com platform makes it easy for you to manage and track your data. Your users, apps, and processes can seamlessly interact
with all relevant data, including data that’s stored in external systems.
Business Logic and Process Automation
The Process Builder and Visual Workflow provide point-and-click tools for automating and simplifying complex business processes.
Security and Identity
Use security to protect both your data and applications. These features also provide user identity and access management.
Sharing
Sharing improves your control over who sees what.
Globalization
Globalization tools help administrators manage resources that vary from country to country, such as multilanguage, multicurrency,
and translated content.
Critical Updates
This release includes updates that improve the performance, logic, and usability of Salesforce but might affect your existing
customizations.
Other Changes in Force.com Customization
Even small customization enhancements can make Salesforce easier to use.

SEE ALSO:
How and When Force.com Customization Features Become Available

General Administration
Administration helps you manage your organization to suit your business needs.

IN THIS SECTION:
Actions Terminology Changed
We’ve changed the names of a few action types in our documentation and in the Salesforce user interface so that you’ll see terminology
that accurately describes them.
Delegated Administrators Can Manage Public Groups
Now delegated administrators can create public groups, and you can specify public groups in which delegated administrators can
add and remove users in specified roles and all subordinate roles. This way, you can delegate public group management tasks while
maintaining strict control over which public groups delegated administrators can manage.
Permission for Managing Custom Permissions Changed
The permission that’s required for creating, editing, and deleting custom permissions is now “Manage Custom Permissions.” Now
organizations that want more precise control over their administrators’ user-management permissions can grant this permission
instead of “Customize Application.”
Create or Edit Records Owned by Inactive Users
You don’t have to reactivate a user to update certain records owned by the inactive user.
Search for Additional Items in Setup (Beta)
Use Advanced Setup Search to find the items that you need quickly, without having to click repeatedly through menus and page
links, such as a specific custom link. With Spring ’15, we’ve expanded the list of individual setup items that you can search for by
name from Setup. You can now search for assignment rules, custom buttons, and custom links.

212
Salesforce Spring ’15 Release Notes General Administration

Availability of Compound Fields in Formula Functions Changed


You could previously use address and geolocation compound fields in all formula expressions, but unhandled exceptions would
often result. Compound fields have been enabled in the ISNULL, ISBLANK, and ISCHANGED functions, and have been blocked
in several other functions, so that you don’t encounter these errors.
Standard Address Fields Show Google Maps
Records with standard address fields now display a Google Maps image of the address. This saves users time by letting them see
where their contacts or accounts are located, instead of having to locate addresses in a separate browser tab.
Limitations Changed for Geolocation Fields (Generally Available)
Geolocation fields, formerly available only as a beta release, are now generally available. Now you can get the most out of geolocation
thanks to fewer limitations and increased functionality, including improvements in Visual Workflow, workflow updates and approvals,
Apex, search tools, and more.
Indexed Column Added to Lists of Fields in Setup
Listings of fields in Setup include a new Indexed column that indicates when a field is indexed in the database. We recommend that
filter conditions in reports, list views, and SOQL queries target indexed fields for better response time.

Actions Terminology Changed


We’ve changed the names of a few action types in our documentation and in the Salesforce user interface so that you’ll see terminology
that accurately describes them.
Publisher actions are now quick actions
Throughout the Salesforce and Salesforce1 user interface and documentation, we’ve renamed the term publisher action to quick
action. With the recent uncoupling of actions from their reliance on Chatter and its publisher, the term publisher action no longer
accurately described these types of actions. They’ve been known as quick actions in the Salesforce API from their inception, and so
we decided to use that term consistently everywhere.
The Publisher Actions section of the page layout editor is now Actions in the Publisher
As a result of the publisher action terminology change, we renamed the actions section in the enhanced page layout editor and
across all global publisher layouts.
The Enable Publisher Actions Chatter organization preference is now Enable Actions in the Publisher
We renamed the Chatter organization preference for actions in the publisher, located in Setup at Customize > Chatter >
Settings.
Record actions are now productivity actions
Throughout the Salesforce and Salesforce1 user interface and documentation, we’ve renamed the term record action to productivity
action.

These actions, which appear only in Salesforce1, include Send Email ( ), Log a Call ( ), Map ( ), View Website ( ), and
Read News ( ). Productivity actions are available on accounts, contacts, leads, opportunities, person accounts, and mobile calendar
events in Salesforce Today.

213
Salesforce Spring ’15 Release Notes General Administration

Delegated Administrators Can Manage Public Groups


Now delegated administrators can create public groups, and you can specify public groups in which
EDITIONS
delegated administrators can add and remove users in specified roles and all subordinate roles.
This way, you can delegate public group management tasks while maintaining strict control over Available in:
which public groups delegated administrators can manage. • Enterprise
For more information, see “Delegate Public Group Management” in the Salesforce Help. • Performance
• Unlimited
• Developer
• Database.com

Permission for Managing Custom Permissions Changed


The permission that’s required for creating, editing, and deleting custom permissions is now “Manage
EDITIONS
Custom Permissions.” Now organizations that want more precise control over their administrators’
user-management permissions can grant this permission instead of “Customize Application.” Available in:
In earlier releases, the “Customize Application” user permission was required for managing custom • Enterprise
permissions. The “Customize Application” permission still exists and provides the same access that • Performance
it has provided in earlier releases. When “Customize Application” is enabled, “Manage Custom • Unlimited
Permissions” is automatically enabled. • Developer

Create or Edit Records Owned by Inactive Users


You don’t have to reactivate a user to update certain records owned by the inactive user.
EDITIONS
Previously, only administrators were able to edit accounts, opportunities, and custom object records
that are owned by inactive users. With Spring ’15, administrators and all users with the create or Available in:
edit permission can create or edit accounts, opportunities, and custom object records that are • Group
owned by inactive users. For example, you can edit the Account Name field on an opportunity • Professional
record that is owned by an inactive user. • Enterprise
• Performance
• Unlimited
• Developer
• Contact Manager

Search for Additional Items in Setup (Beta)


Use Advanced Setup Search to find the items that you need quickly, without having to click
EDITIONS
repeatedly through menus and page links, such as a specific custom link. With Spring ’15, we’ve
expanded the list of individual setup items that you can search for by name from Setup. You can Available in:
now search for assignment rules, custom buttons, and custom links. • Professional
• Enterprise
Note:
• Performance
• Advanced Setup Search is in beta. It is production quality but has known limitations. • Unlimited
• After Spring ’15 is available for your organization, it might take a few weeks before your • Developer
organization’s setup data is indexed and searchable. During those initial weeks, searches
might not return all possible results.

Use Advanced Setup Search to find:

214
Salesforce Spring ’15 Release Notes General Administration

• Approval post templates


• Approval processes
• Assignment rules—new in Spring ’15
• Compact layouts
• Custom buttons or links—new in Spring ’15
• Custom fields
• Custom home pages
• Custom objects
• Duplicate rules
• Email templates
• Groups
• Home page components
• Permission sets
• Profiles
• Queues (with results in the Groups and Queues category)
• Roles
• Static resources
• Users
• Workflow email alerts
• Workflow field updates
• Workflow outbound messages
• Workflow rules
• Workflow tasks
Advanced Setup Search uses the same search box as you use to quickly find the right menu item in Setup.

To find setup items, enter at least two consecutive characters of the item that you want in the setup search box, and then click or
press Enter. In the Setup Search Results page that appears, select an item from the list.

Availability of Compound Fields in Formula Functions Changed


You could previously use address and geolocation compound fields in all formula expressions, but
EDITIONS
unhandled exceptions would often result. Compound fields have been enabled in the ISNULL,
ISBLANK, and ISCHANGED functions, and have been blocked in several other functions, so Available in all editions
that you don’t encounter these errors.
The following have been blocked from using compound fields.
• BLANKVALUE
• CASE
• NULLVALUE

215
Salesforce Spring ’15 Release Notes General Administration

• PRIORVALUE
• The comparison and equality operators: = and == (equal), <> and != (not equal), < (less than), > (greater than), <= (less than
or equal), >= (greater than or equal), && (AND), and || (OR)
When you edit formulas that contain these blocked expressions, you can’t save your changes until you’ve removed any blocked expressions
that use compound fields. But, any formulas that use compound fields in these blocked expressions almost certainly aren’t working. For
more information on compound fields, see “Compound Field Considerations and Limitations” in the SOAP API Developer's Guide.

Standard Address Fields Show Google Maps


Records with standard address fields now display a Google Maps image of the address. This saves users time by letting them see where
their contacts or accounts are located, instead of having to locate addresses in a separate browser tab.
On a record, go to the detail page to see the Google Maps image on the address field. To generate a map image, an address must include
the street and city fields and either the state, postal code, or the country. If an address field is missing any of the required information,
a map won’t display.

The map image on the address is static, but clicking the map image opens Google Maps in a new browser tab.
Maps on standard address fields are enabled by default. To disable maps for your organization, from Setup in the full Salesforce site, click
Customize > Maps and Locations > Settings and uncheck Enable Maps and Location Services.

Limitations Changed for Geolocation Fields (Generally Available)


Geolocation fields, formerly available only as a beta release, are now generally available. Now you
EDITIONS
can get the most out of geolocation thanks to fewer limitations and increased functionality, including
improvements in Visual Workflow, workflow updates and approvals, Apex, search tools, and more. Available in all editions
Spring ’15 includes the following changes to geolocation field limitations.
• Geolocation fields are available in Visual Workflow and in formula-based criteria in workflow rules and approval processes, but cannot
be used in filter-based criteria in workflow rules and approval processes.
• Geolocation fields can be searched in SOQL and SOSL.
• DISTANCE formulas are supported in:
– Entry criteria for workflow rules and approval processes
– Field update actions in workflow rules and approval processes
– Custom validation rules

216
Salesforce Spring ’15 Release Notes Data

• The only formula functions that you can use with compound fields are ISBLANK, ISCHANGED, and ISNULL. You can’t use
BLANKVALUE, CASE, NULLVALUE, PRIORVALUE, or the equality and comparison operators with compound fields. The
equality and comparison operators include = and == (equal), <> and != (not equal), < (less than), > (greater than), <= (less
than or equal), >= (greater than or equal), && (AND), and || (OR).
• Geolocation fields are now queryable in Apex. However, their locations are editable in Apex only as components of the compound
field. Read and set geolocation field components by appending “__latitude__s” or “__longitude__s” to the field name, instead of
the usual “__c.” For example:
Double theLatitude = myObject__c.aLocation__latitude__s;
myObject__c.aLocation__longitude__s = theLongitude;

For a full list of limitations, see “Geolocation Custom Field Overview” in the Salesforce Help.

Indexed Column Added to Lists of Fields in Setup


Listings of fields in Setup include a new Indexed column that indicates when a field is indexed in
EDITIONS
the database. We recommend that filter conditions in reports, list views, and SOQL queries target
indexed fields for better response time. Available in all editions
The new column is available for standard and custom objects and indicates indexing for standard
and custom fields.

Optimizing the performance of filter conditions and SOQL queries, as on any database system, is as much art as science. Before you begin
a custom indexing adventure, keep the following in mind.
• More indexes aren’t necessarily better.
• Not every index improves performance.
• If you have fewer than 100,000 records to be queried, you probably don’t need an index.
See the Query & Search Optimization Cheat Sheet for more specific details and tips. If you think a custom index might improve the
performance of your reports or SOQL queries, see the Salesforce Knowledge article “Custom Indexing” for details on how to get started.

Data
The Force.com platform makes it easy for you to manage and track your data. Your users, apps, and processes can seamlessly interact
with all relevant data, including data that’s stored in external systems.

IN THIS SECTION:
Enable Users to Manage Their Own Authentication Settings for External Systems
For access to external data sources and named credentials that use per-user authentication, users can now manage their own
authentication settings, so that you don’t have to.

217
Salesforce Spring ’15 Release Notes Data

Terminology Changed for Authentication Settings for External Systems


We now refer to authentication settings for external data sources by using consistent language throughout Salesforce to avoid
confusing you and your users. These authentication settings also apply to named credentials, which are new in Spring ’15.
Compress Requests to and Responses from External Data Sources of Type “Lightning Connect: OData 2.0”
When you define an external data source, you can now choose to send compressed HTTP requests to the external server. Doing so
can improve performance over low-bandwidth connections. Just make sure that the external server is set up to receive gzip-compressed
data. You can also set up the external server to send gzip-compressed data to Salesforce, which automatically accepts gzip-compressed
responses from external data sources.
SOQL Queries of External Objects Can Include the COUNT() Aggregate Function
The COUNT() aggregate function is now supported on external objects whose external data sources support the $inlinecount
system query option.
Retain Field History with Field Audit Trail (Generally Available)
Field Audit Trail lets you define a policy to retain archived field history data up to ten years, independent of field history tracking.
This feature helps you comply with industry regulations related to audit capability and data retention.
Manage Customer Data with Data Pipelines (Pilot)
We’re continuing the pilot availability of Data Pipelines, a new capability to leverage all your customer data for intelligence and
actionable information. Data Pipelines helps you engage with customers and build data-driven applications. With Data Pipelines,
you can use the power of custom Apache Pig scripts on Hadoop to process large-scale data that’s stored in Salesforce.
Other Changes in External Data Integration
Learn about other changes that we’ve made to external data integration.

Enable Users to Manage Their Own Authentication Settings for External Systems
For access to external data sources and named credentials that use per-user authentication, users
EDITIONS
can now manage their own authentication settings, so that you don’t have to.
To enable a user to manage authentication settings for external systems, grant the user access to Available in all editions
the external data sources and named credentials through permission sets or profiles. For users who
access external data sources, also grant object permissions through permission sets or profiles so
that they can view the external objects.
Previously, users could manage their own authentication settings for external systems only when the organization enabled the improved
Setup user interface and the users had access to their personal settings in Salesforce. Other users, such as those with community licenses,
required administrators to manage their authentication settings.
For more information about external data sources, see “The Files Connect” and “Set Up External Data Access with Lightning Connect”
in the Salesforce Help.
For more information about named credentials, see “Named Credentials Overview” in the Salesforce Help.

Terminology Changed for Authentication Settings for External Systems


We now refer to authentication settings for external data sources by using consistent language
EDITIONS
throughout Salesforce to avoid confusing you and your users. These authentication settings also
apply to named credentials, which are new in Spring ’15. Available in all editions
The settings are now called “Authentication Settings for External Systems.” Previously, you might
have seen the authentication settings referred to as one of the following, depending on your
organization’s setup.

218
Salesforce Spring ’15 Release Notes Data

• External Authentication Settings


• External Data User Authentications
• External User Authentication Settings
• My External Authentication Settings

Compress Requests to and Responses from External Data Sources of Type “Lightning
Connect: OData 2.0”
When you define an external data source, you can now choose to send compressed HTTP requests
EDITIONS
to the external server. Doing so can improve performance over low-bandwidth connections. Just
make sure that the external server is set up to receive gzip-compressed data. You can also set up Available in: Developer
the external server to send gzip-compressed data to Salesforce, which automatically accepts Edition
gzip-compressed responses from external data sources.
Available for an additional
This screenshot shows the location of the new Compress Requests field for external data cost in: Enterprise,
sources. Performance, and
Unlimited Editions

SOQL Queries of External Objects Can Include the COUNT() Aggregate Function
The COUNT() aggregate function is now supported on external objects whose external data
EDITIONS
sources support the $inlinecount system query option.
To support the COUNT() function in SOQL queries, the response from the external system must Available in: Developer
include the total row count that’s determined after any $filter system query options are Edition
applied. For details about $inlinecount and $filter, see “OData Query String Options” Available for an additional
in the Salesforce Help. cost in: Enterprise,
Performance, and
Unlimited Editions

219
Salesforce Spring ’15 Release Notes Data

Retain Field History with Field Audit Trail (Generally Available)


Field Audit Trail lets you define a policy to retain archived field history data up to ten years,
EDITIONS
independent of field history tracking. This feature helps you comply with industry regulations related
to audit capability and data retention. Available in:
As part of a larger initiative for compliance essentials, Salesforce is releasing Field Audit Trail for • Contact Manager
general availability (GA). • Group
• Professional
Note: You may need to purchase additional services or subscriptions to use this feature. For • Enterprise
pricing details, please contact your Salesforce account executive. • Performance
Use Salesforce Metadata API to define a retention policy for your field history. Then use REST API, • Unlimited
SOAP API, and Tooling API to work with your archived data. For information about enabling Field • Developer
Audit Trail, contact your Salesforce representative. • Database.com

Field history is copied from the History related list into the FieldHistoryArchive object
and then deleted from the History related list. You define one HistoryRetentionPolicy object for your related history lists,
such as Account History, to specify Field Audit Trail retention policies for the objects that you want to archive. You can then deploy the
object by using the Metadata API (Workbench or Force Migration Tool). In production organizations that have Field Audit Trail enabled,
data is archived by default after 18 months. In sandbox organizations, the default is one month. You can update the retention policies
as often as you like.
After you define and deploy a Field Audit Trail policy, production data is migrated from related history lists such as Account History into
the FieldHistoryArchive object. The first copy writes the field history that’s defined by your policy to archive storage and
sometimes takes a long time. Subsequent copies transfer only the changes since the last copy and are much faster. A bounded set of
SOQL is available to query your archived data.

Note: For some time after the initial GA release, data might not be automatically deleted from the History related list and may
reside in both the FieldHistoryArchive object and in the History related list. Salesforce reserves the right to delete
archived data from the History related list in accordance with the customer-defined policy in future releases.
To learn more, see the Field History Retention Implementation Guide.

Manage Customer Data with Data Pipelines (Pilot)


We’re continuing the pilot availability of Data Pipelines, a new capability to leverage all your customer
EDITIONS
data for intelligence and actionable information. Data Pipelines helps you engage with customers
and build data-driven applications. With Data Pipelines, you can use the power of custom Apache Available in:
Pig scripts on Hadoop to process large-scale data that’s stored in Salesforce. • Enterprise
• Performance
Note: This feature is currently available to select customers through a pilot program. To be
• Unlimited
nominated to join this pilot program, contact Salesforce. Additional terms and conditions
• Developer
may apply to participate in the pilot program. Please note that pilot programs are subject to
change, and as such, we cannot guarantee acceptance into this pilot program or a particular
time frame that this feature can be enabled. Any unreleased services or features referenced
in this or other press releases or public statements are not currently available and may not
be delivered on time or at all. Customers who purchase our services should make their purchase
decisions based upon features that are currently available.
Each connection to your customer drives an ever-increasing scale of data. This growth demands a new set of tools, and the Data Pipelines
pilot enables highly scalable batch processing, transformation, and understanding of customer data.
As Apex enables developers to control and execute flow and transaction control, Data Pipelines offers a complementary tool set for data
flow control. This tool set ia based on Apache Pig, a broadly used and high-level language for expressing data flow control, along with

220
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

a set of functions to help evaluate data. Pig offers an abstraction on top of the Salesforce Hadoop infrastructure to permit MapReduce
processing within the context of the established Salesforce multitenant architecture.
Data Pipelines jobs are expressed as Pig Latin scripts that are deployed to your organization by using mechanisms that are familiar to
the Salesforce developer community (the Metadata API and the Tooling API). Data Pipelines supports Apache Pig 0.13 distribution and
Apache DataFu 1.2.0, and delivers a whitelisted set of Apache DataFu and PiggyBank UDF libraries to broaden the computational
expressiveness for a comprehensive set of use cases.
For this release of the pilot, we’ve added the following to Data Pipelines.
• Performance improvements
• Enhanced job status information
• The ability to write and submit jobs via the Developer Console
To learn more about the pilot, see the Data Pipelines Implementation Guide.
For more information about joining the pilot, contact your account team or Salesforce Customer Support.

Other Changes in External Data Integration


Learn about other changes that we’ve made to external data integration.
EDITIONS
Rename Tabs and Labels for External Objects
You can now change the display labels of external objects that appear on all user pages to Available in: Developer
make the labels more relevant to your users. Edition
With rare exception, all pages in the Setup area use the default, original labels. For instructions, Available for an additional
see “Rename Object, Tab, and Field Labels” in the Salesforce Help. cost in: Enterprise,
Performance, and
Text Clarified for External Data Sources Unlimited Editions
We clarified some of the text that appears on the pages where you view and define external
data sources to make them easier to understand.
• We changed the Server URL field to URL.
• In the Authentication Protocol field, we changed the option “Oauth” to “OAuth 2.0.” External data sources always
supported only OAuth 2.0, so we changed the option text to be more specific.
• We also cleaned up the instructional text on the pages and some of the field-level help, which appears when you hover over a
field’s help icon.

Business Logic and Process Automation


The Process Builder and Visual Workflow provide point-and-click tools for automating and simplifying complex business processes.

IN THIS SECTION:
Visually Automate Your Business Processes (Generally Available)
Now generally available, the Lightning Process Builder is a workflow tool that helps you easily automate everything from daily tasks,
like follow-up emails, to more complex processes, like order renewals and new-hire onboarding. In just a few clicks you can automate
business processes and help your organization operate more efficiently.
Process Builder—Changes Since the Beta
If you’re already familiar with the Lightning Process Builder, check out the new features we added in Spring ’15. Now you can create
versions of a process, call Apex, customize condition logic, and more.

221
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Visual Workflow
Spring ’15 has unlocked a bunch of functionality for flow administrators and users. Among other things, you can enable your users
to pause flow interviews, customize the condition logic that’s used in Decision and Wait elements, and more. We should also mention
that what you used to know as “trigger-ready” flows are now called “autolaunched” flows.

Visually Automate Your Business Processes (Generally Available)


Now generally available, the Lightning Process Builder is a workflow tool that helps you easily
EDITIONS
automate everything from daily tasks, like follow-up emails, to more complex processes, like order
renewals and new-hire onboarding. In just a few clicks you can automate business processes and Available in:
help your organization operate more efficiently. • Enterprise
• Performance
Note: The Process Builder is not available in the Spring ’15 pre-release program.
• Unlimited
The Process Builder’s simple and powerful design allows you to: • Developer

• Create your processes by using a convenient visual layout with point-and-click efficiency
• Create your whole process in one place rather than using multiple workflow rules
• Create processes by collaborating with different teams in your business
• Stop using Apex code to automate simple tasks
You can use the more powerful and flexible Process Builder to perform the same actions as workflow. The Process Builder doesn't have
a specific outbound message action, but you can create and fully customize your outbound messages using Process Builder's new “Call
Apex” action. With the Process Builder, you can:
• Create a record
• Update any related record—not just the record or its parent
• Use a quick action to create a record, update a record, or log a call
• Trigger an autolaunched flow—from immediate and also scheduled actions
• Send an email
• Post to Chatter
• Submit a record for approval
If you need your process to do more than what those actions allow, don’t worry. You can also call Apex from a process.

222
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

With the Process Builder, it’s easy to get started creating automated business processes. For example, you can create automated processes
that:
• Update all the mailing addresses on all child contacts when a billing address is changed on an account.
• Submit a record for approval without requiring users to submit manually.
• Create records and notifications based on stages of an opportunity and schedule follow-up tasks that execute based on changes to
records.
• Create an order record with the data in the opportunity and associated account when the opportunity stage changes to closed and
won.
• Send an email reminder to the account team if a high-value opportunity is still open ten days before the specified close date.

Process Builder—Changes Since the Beta


If you’re already familiar with the Lightning Process Builder, check out the new features we added
EDITIONS
in Spring ’15. Now you can create versions of a process, call Apex, customize condition logic, and
more. Available in:
• Enterprise
Note: The Process Builder is not available in the Spring ’15 pre-release program.
• Performance
• Unlimited
IN THIS SECTION: • Developer

Create Versions of a Process


Easily track, maintain, and optimize your business processes without having to rebuild an entire process from scratch with the Process
Builder’s new versioning capability.
Call an Apex Method from a Process
When no other process action can get the job done, add customized functionality to your Salesforce processes by calling an Apex
method.

223
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Trigger a Process Multiple Times in a Single Transaction


Make your automated processes even more efficient by reevaluating a record multiple times in a single transaction.
Determine Whether Specific Fields Changed
It’s now easier in a process’s criteria to determine whether specific fields on a record changed. We are deprecating the ISCHANGED
formula function and replacing it with the Is changed operator. This operator is available for filter conditions.
Customize the Condition Logic in Process Builder
You’re no longer limited to using the same logic between all of the conditions for a given criteria in the Process Builder. Just like
with reports and workflow criteria, you can now customize the logic.
Create and Manage Processes More Efficiently
We’ve updated the Process Builder to make it more usable. Now you can view and sort your processes, expand and collapse actions,
and more.
Other Changes in the Process Builder
Learn about other enhancements in the Process Builder.

Create Versions of a Process


Easily track, maintain, and optimize your business processes without having to rebuild an entire process from scratch with the Process
Builder’s new versioning capability.
Now if you want to make changes to an existing process, just clone it. You can save the clone as a new process with its own version
history or as a new version of the current process. While a given process can have up to 50 versions, only one of those versions can be
active.
If you want the clone to run concurrently with the original process, use the clone to create a completely new process. You don't have
to deactivate the first process in order to activate the clone.
If you want to make changes to the clone and use it to replace the original process, save the clone as a new version of the original process.
When you activate the new version, the previously active version is automatically deactivated.

Call an Apex Method from a Process


When no other process action can get the job done, add customized functionality to your Salesforce processes by calling an Apex
method.
To call an Apex method, add the Call Apex action to your process and select an Apex class with an invocable method. It’s that easy.
If the class contains one or more invocable variables, manually enter values or reference field values from a related record. Each value
must match the variable’s data type.

Trigger a Process Multiple Times in a Single Transaction


Make your automated processes even more efficient by reevaluating a record multiple times in a single transaction.
Previously, when a record changed, the process always evaluated it with the specified criteria and executed an action group only once.
This means that if another process, workflow rule, or flow changed the record, the process wouldn’t immediately evaluate the criteria
again and wouldn’t apply to any changes made by other processes.
Now your processes can (optionally) evaluate the same record up to five additional times if another process, workflow rule, or flow
updates the record in the same transaction.
When you choose an object and specify when to start the process, you are asked if you want to Allow process to evaluate a record
multiple times in a single transaction?. Select Yes to allow the process to reevalute a record multiple times.

224
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Determine Whether Specific Fields Changed


It’s now easier in a process’s criteria to determine whether specific fields on a record changed. We are deprecating the ISCHANGED
formula function and replacing it with the Is changed operator. This operator is available for filter conditions.
Existing active processes continue to work with the ISCHANGED formula function, but you can’t clone the process. Similarly, you can’t
make changes to existing inactive processes that use the ISCHANGED formula function. Instead, use the Is changed operator in a
filter condition.

Customize the Condition Logic in Process Builder


You’re no longer limited to using the same logic between all of the conditions for a given criteria in the Process Builder. Just like with
reports and workflow criteria, you can now customize the logic.
To customize the condition logic for a criteria node in a process, select Customize the filter logic .

Example: In an opportunity process, you want to execute an action group if a high value deal is won. The criteria checks whether
the opportunity stage is won. In addition, you want to check whether the opportunity is either greater than $1,000,000 or in an
emerging market. You can use three criteria conditions and customize the condition logic to be 1 AND (2 OR 3).

Create and Manage Processes More Efficiently


We’ve updated the Process Builder to make it more usable. Now you can view and sort your processes, expand and collapse actions,
and more.
Sort Your List of Processes
From the updated process management page, you can sort your processes by name, description, object, last modified date, or status.
Expand and Collapse Actions on the Canvas
Sometimes you don’t want to see all the details of a process. Now you can expand or collapse actions on the Process Builder’s canvas
with the new Expand All and Collapse All buttons.
See What You’re Editing on the Canvas
When you open a node on the canvas, that node is highlighted with a blue border so you always know what you’re working on.

225
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Process Status Simplified


We’ve deprecated three of the possible statuses for processes: Draft, Obsolete, and InvalidDraft. Instead, processes are either Active
or Inactive. If an existing process is set to Draft, Obsolete, or InvalidDraft, the status will be updated to Inactive.
Find and Enter Values More Easily
Previously, when you entered values, you couldn’t see a list of all available options. Now, when you enter values, you can either:
• Type to search for a specific value

Click next to the field to browse all available options
The names of values now appear as field labels instead of unique API names.
Use Multi-Select Picklist Fields
Previously, you couldn't select multiple values for any fields. Now you can do so for fields that accept more than one value. For
example, if an action creates a record and the record has a multi-select field, you can select multiple values for the multi-select field.

Get More Information When You’re Getting Started


When you start using the Process Builder and have no processes, the process management page now displays some helpful links.

226
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Other Changes in the Process Builder


Learn about other enhancements in the Process Builder.
Spaces No Longer Required in Formula Functions
Previously, you had to include a space between a function’s parenthesis and the contents of the parenthesis, for example: TEXT(
[Account].LastModifiedDate ). You no longer need to include these spaces.
Create More Actions
You are no longer limited to 10 immediate actions and 10 scheduled actions for a given criteria node.
Deploy Processes
You can now deploy processes using change sets, packages, and the Metadata API. For change sets and packages, processes are
Flow component types. To deploy a process using the Metadata API, you must create a flow of type Workflow.
Namespaced Organizations Supported
Processes are supported in organizations with a registered namespace so your processes can now be saved and added to managed
packages.
Navigate More Easily with Field Tooltips

Previously, the only way to see tooltips on fields was to hover over . Now, when navigating the Process Builder with a keyboard,
the tooltips appear every time you focus on an input field that has tooltips.

Visual Workflow
Spring ’15 has unlocked a bunch of functionality for flow administrators and users. Among other
EDITIONS
things, you can enable your users to pause flow interviews, customize the condition logic that’s
used in Decision and Wait elements, and more. We should also mention that what you used to Available in:
know as “trigger-ready” flows are now called “autolaunched” flows. • Enterprise
• Performance
IN THIS SECTION: • Unlimited
• Developer
Let Users Pause Flow Interviews
With a little bit of setup, you can enable your users to pause their flows. A user might pause a
flow when a call gets dropped or a customer needs to find her account number and call back. USER PERMISSIONS
Users can resume the interview when it’s time to proceed. An interview is a running instance To open, edit, or create a
of a flow. flow in the Cloud Flow
Customize the Condition Logic in Flows Designer:
You’re no longer limited to using the same logic between all of the conditions for a given • “Manage Force.com
Flow”
outcome or wait event in a flow. Just like with reports and workflow criteria, you can now
customize the logic.
Create a Dynamic Label for Flow Interviews
Depending on how frequently your users start a given flow, the same flow can have multiple interviews running at the same time.
Make it easier for administrators and users alike to tell the difference between those interviews by customizing Interview
Label, a new flow property.
Give Flows Access to Apex Classes More Easily
For things that the out-of-the-box flow elements can’t handle, configure an Apex class to make it available from a flow. Previously,
you could use the cumbersome Process.Plugin interface. Now, there’s a better, simpler way: the @InvocableMethod
annotation.

227
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Trigger-Ready Flows Renamed to Autolaunched Flows


We’ve changed the name of trigger-ready flows in our documentation and in the Salesforce user interface to more accurately describe
their functionality.
Identify a Flow’s Type
You can now identify what type of flow you want to create when you save, rather than having to decode the Run Restrictions
column on the flow management or detail pages.
Get More Information about Waiting Interviews
Last release, we added a list to the flow management page, where you can monitor interviews that are waiting for events. In this
release, we updated the list view and the interview record detail page to display more information about those interviews.
Reference the ID of a Chatter Post That a Flow Created
If you create Chatter posts in a flow, you can now use the created feed item’s ID later in that flow. For example, provide the user with
a link to the new feed item. Assign Feed Item ID to a flow variable when you configure the “Post to Chatter” element.
Reference Information from an Approval Request That a Flow Submitted
If you submit an approval request in a flow, you can now use information from the approval request later in that flow. For example,
use the approval request’s status in a Decision element. Assign the approval request’s outputs to flow variables when you configure
the Submit for Approval element.
Assign an Event’s Outputs to Flow Variables
If you’ve created a time-based flow, you can now use information from the event that the flow waited for later in that flow. For
example, the actual time at which the event occurred.
Change in Activation Date for “Enable governor limits on all executed flows” Critical Update
Salesforce issued a critical update in the Summer ’14 release, available in the Critical Update Console (CRUC), titled “Enable governor
limits on all executed flows.” This critical update originally had an auto-activation date of 1/11/2015. In order to give customers and
partners more time to validate and resolve issues that have arisen from this change, the auto-activation date has been postponed
until the Summer ’15 release: 4/15/2015.
Other Changes in Visual Workflow
In addition to the major enhancements, here are some other enhancements that make it easier to work with flows. These enhancements
include predefined names for default connectors, new events for troubleshooting flows, and more.

Let Users Pause Flow Interviews


With a little bit of setup, you can enable your users to pause their flows. A user might pause a flow
USER PERMISSIONS
when a call gets dropped or a customer needs to find her account number and call back. Users can
resume the interview when it’s time to proceed. An interview is a running instance of a flow. To configure a flow’s
If the user has partially filled out a screen when she pauses the interview, that information is saved screens in the Cloud Flow
Designer:
with the interview. So when she resumes later, she doesn’t have to fill in that information again, so
• “Manage Force.com
long as the values were valid. If any values were invalid, those values aren’t saved with the interview. Flow”
Note: If your flow executes any elements before a pausable screen, make sure it’s appropriate To edit workflow and
for a time delay to occur between those elements and the elements after a pausable screen. approval settings, create or
A new transaction starts at each screen. When the previous transaction is closed, any actions change home page layouts,
in the flow’s path before that screen are performed. or customize Salesforce1
navigation:
For example, this flow executes a Screen element, a Post to Chatter element, a pausable • “Customize Application”
Screen element, and then a Record Create element.

228
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

If a user pauses at the second screen, the Chatter post is created before the user sees the second screen. After the user resumes
the interview and clicks Finish, the record is created. The flow doesn’t defer all actions and perform them when the flow finishes.
Depending on how long before the user resumes, the record could be created well after the Chatter post.

1. Configure each flow screen that you want users to be able to pause from.
a. Select Show Pause button.
b. In Pause Message, provide a confirmation message so that your users know the interview was successfully paused.
We recommend: You’ve paused this interview. When you’re ready to continue, resume
the interview from Paused Flow Interviews on your Home tab or in Salesforce1.

2. In that flow’s properties, customize the interview label.


3. In your workflow and approvals settings, select Let Users Pause Flows.
If this setting is disabled, Pause buttons never display in any flows.

4. Let your users easily resume their paused interviews.


a. Add Paused Flow Interviews to your users’ Home tab page layouts.
b. Add Flow Interviews to your organization’s Salesforce1 navigation menu.
For details, see “Designing Home Tab Page Layouts” and “Customize the Salesforce1 Navigation Menu” in the Salesforce Help.

Only the user who paused the flow or an administrator can resume or delete a paused interview.

IN THIS SECTION:
Control Which Users Can Pause Flows
After you embed a flow in a Visualforce page, consider whether you want to let users pause flows from that page. This is a good way
to allow some users to pause a certain flow, but not others. Set the allowShowPause attribute for <flow:interview> to
false to prevent users from pausing.
Debug Paused and Resumed Interviews
We’ve added new debug log messages to help you troubleshoot flow interviews that users have paused or resumed.

Control Which Users Can Pause Flows


After you embed a flow in a Visualforce page, consider whether you want to let users pause flows from that page. This is a good way to
allow some users to pause a certain flow, but not others. Set the allowShowPause attribute for <flow:interview> to false
to prevent users from pausing.

229
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Example: Your organization allows users to pause, and the screens in the flow “PausableFlow” are configured to show the Pause
button. Many users have access to this flow, but only users with the Account Manager profile should be able to pause it.
Account managers have access to the following Visualforce page, which allows them to pause the flow.
<apex:page>
<flow:interview name="PausableFlow" allowShowPause="true" />
</apex:page>

All other users have access to the following Visualforce page, which doesn’t allow them to pause the flow.
<apex:page>
<flow:interview name="PausableFlow" allowShowPause="false" />
</apex:page>

For details, see “Control Whether Users Can Pause a Flow from a Visualforce Page” in the Visualforce Developer’s Guide.

Attribute Name Attribute Type Description Required? Default Value


allowShowPause Boolean A Boolean value that allows the flow to display No true
the Pause button.

The allowShowPause attribute is available in API version 33.0 and later.

Debug Paused and Resumed Interviews


We’ve added new debug log messages to help you troubleshoot flow interviews that users have paused or resumed.
New debugging messages are available when you allow users to pause, and later resume, flow interviews. To help you trace what occurs
when users pause and resume flows, the following events are available in the Workflow category of debug logs when the level logged
is set to INFO and above.
• FLOW_INTERVIEW_PAUSED
• FLOW_INTERVIEW_RESUMED

Customize the Condition Logic in Flows


You’re no longer limited to using the same logic between all of the conditions for a given outcome
USER PERMISSIONS
or wait event in a flow. Just like with reports and workflow criteria, you can now customize the
logic. To customize condition logic
To customize the condition logic for a wait event or an outcome in a decision, select Advanced in a “Wait” or “Decision”
element:
logic (combination of ANDs and ORs).
• “Manage Force.com
Example: In an employee survey, you want the flow to take a certain path depending on Flow”
the choices a user makes on a screen. The user must have indicated that they bike to work.
In addition, the user must have selected either Technology or Customer Support as their
department.
Instead of using multiple decisions to evaluate those two requirements, you can use one
decision and customize the outcome’s condition logic to be 1 AND (2 OR 3).

230
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Create a Dynamic Label for Flow Interviews


Depending on how frequently your users start a given flow, the same flow can have multiple
EDITIONS
interviews running at the same time. Make it easier for administrators and users alike to tell the
difference between those interviews by customizing Interview Label, a new flow property. Available in:
Administrators see Interview Label in the Paused and Waiting Interviews list on the flow • Enterprise
management page. End users see Interview Label in the Paused Flow Interviews component • Performance
on the Home tab and the Paused Flow Interviews item in Salesforce1. • Unlimited
• Developer
The interview label for new flows is prepopulated with FlowName -
{!$Flow.CurrentDateTime}. If you open an existing flow and place your cursor in the
Description or Interview Label fields, the same value is prepopulated in Interview USER PERMISSIONS
Label. To customize the interview label, open a new flow and click Save or open an existing flow
To edit a flow’s interview
and click . label:
• “Manage Force.com
Tip: Use a text template to reference additional information, like the contact associated with Flow”
the flow interview.

Example: The Interview Label for this flow is set to a text template called
{!myCustomInterviewLabel} that contains Customer Satisfcation
Survey 2014 - {!Account.Name} - {!$Flow.CurrentDateTime}.

231
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

When a user runs this flow for the Acme Wireless, Inc. account and then pauses it, the interview label is:

Customer Satisfaction Survey 2014 - Acme Wireless, Inc. - 11/25/2014 01:03 PM

Give Flows Access to Apex Classes More Easily


For things that the out-of-the-box flow elements can’t handle, configure an Apex class to make it
USER PERMISSIONS
available from a flow. Previously, you could use the cumbersome Process.Plugin interface.
Now, there’s a better, simpler way: the @InvocableMethod annotation. To configure a “Call Apex”
element:
Here’s a quick comparison between the two ways that you can make a class available from a flow.
• “Manage Force.com
Flow”
Process.Plugin Interface @InvocableMethod Annotation

Apex data Doesn’t support: Doesn’t support:


type support • Blob • Generic Object
• Collection • Generic sObject
• sObject • Sets
• Time • Maps
• Enums
The Cloud Flow Designer doesn’t
support mapping an Apex method’s
input or output parameters to an
sObject collection variable.

Bulk Not supported Supported


operations

232
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Process.Plugin Interface @InvocableMethod Annotation

Element name in Class name or the value of the name property. Class name
the Cloud Flow
Designer

Reusability Classes with this interface implemented are available Classes with this annotation implemented are available
in flows in:
• Flows
• Processes
• Rest API

Section in the Cloud Apex Plug-in or the value of the tag property. Apex
Flow Designer

More Details in the Passing Data to a Flow Using the InvocableMethod Annotation and
Force.com Apex Process.Plugin Interface InvocableVariable Annotation
Code Developer’s
Guide

Once you have made an Apex method invocable, that method’s class appears in the Cloud Flow Designer’s palette under the Call Apex
section. To call one of those classes from a flow, simply drag the class onto the canvas and configure the element that appears.

Example: To illustrate the difference between these two implementation methods, here are two classes that do the same thing:
get an account name from a flow and return that account’s ID.
This class implements the @InvocableMethod annotation.
global class lookUpAccountAnnotation {
@InvocableMethod
public static List<String> getAccountIds(List<String> names) {
List<Id> accountIds = new List<Id>();
List<Account> accounts = [SELECT Id FROM Account WHERE Name in :names];
for (Account account : accounts) {
accountIds.add(account.Id);
}
return accountIds;
}
}

This class implements the Process.Plugin interface.


global class lookUpAccountPlugin implements Process.Plugin {

global Process.PluginResult invoke(Process.PluginRequest request) {


String name = (String) request.inputParameters.get('name');
Account account = [SELECT Id FROM Account WHERE Name = :name LIMIT 1][0];

Map<String,Object> result = new Map<String,Object>();


result.put('accountId', account.Id);
return new Process.PluginResult(result);
}

233
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

global Process.PluginDescribeResult describe() {


Process.PluginDescribeResult result = new Process.PluginDescribeResult();
result.Name = 'Look Up Account ID By Name';
result.Tag = 'Account Classes';
result.inputParameters = new
List<Process.PluginDescribeResult.InputParameter>{
new Process.PluginDescribeResult.InputParameter('name',
Process.PluginDescribeResult.ParameterType.STRING, true)
};
result.outputParameters = new
List<Process.PluginDescribeResult.OutputParameter>{
new Process.PluginDescribeResult.OutputParameter('accountId',
Process.PluginDescribeResult.ParameterType.STRING)
};
return result;
}
}

Notice that lookupAccountAnnotation is less than half the length (11 lines) of lookupAccountPlugin (28 lines).
In addition, because the annotation supports bulk operations, lookupAccountAnnotation performs one query per batch
of interviews. lookupAccountPlugin performs one query per interview.

Trigger-Ready Flows Renamed to Autolaunched Flows


We’ve changed the name of trigger-ready flows in our documentation and in the Salesforce user interface to more accurately describe
their functionality.
Before Spring ’15, we referred to flows that don’t require user interaction as trigger-ready flows, because the main method of launching
these flows was a flow trigger. But now you can launch flows that don’t require user interaction in other ways, too. Trigger-ready flows
are now called autolaunched flows.

Identify a Flow’s Type


You can now identify what type of flow you want to create when you save, rather than having to
USER PERMISSIONS
decode the Run Restrictions column on the flow management or detail pages.
To customize a flow’s type:
To customize the type, open a new flow and click Save or open an existing flow and click . • “Manage Force.com
For a given flow, the versions don’t have to have the same type. It’s okay to have some Flow versions Flow”
and some Autolaunched Flow versions for one flow.

Get More Information about Waiting Interviews


Last release, we added a list to the flow management page, where you can monitor interviews that are waiting for events. In this release,
we updated the list view and the interview record detail page to display more information about those interviews.

Changes to the List View


You’ll see the following changes on the list view on the flow management page. To see the list view, from Setup click Create > Workflow
and Approvals > Flows.
Renamed List View
The list view’s title is now “Paused and Waiting Interviews”. Before, it was “Waiting Interviews”. The list now displays interviews that
were paused by end-users.

234
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Removed Columns
The following columns are no longer available in new custom list views. If you added one or more of these columns to a custom list
view before Spring ’15, those columns are available in the existing list view.
• Interaction Definition Version ID
• Definition
Added Columns
The following columns were added.
• Type: The type for the flow that was run. If the flow contains subflows, this is the master flow. For details, see “Flow Types” in
the Salesforce Help.
• Current Flow Type: The type for the flow at which the interview is paused.
• Interview Label: Dynamic text configured by the flow creator to differentiate multiple interviews of the same flow. For
details, see Create a Dynamic Label for Flow Interviews on page 231.
• Why Paused: Text entered by end-users when they pause flow interviews.
• Current Flow Version: The version of the flow at which the interview is paused. The “current flow” can differ from the
“flow” if the flow references a subflow.
Changed Columns
The following columns were changed.
• Flow Name: In Spring ’15, there were two columns named Flow Name. In the list view, the one that corresponds to the
current flow is now named Current Flow Name.
• Version: Changed to Flow Version to differentiate it from Current Flow Version.
• Created Date: Changed to Paused Date because the date/time value reflects when the flow interview started waiting.
• Definition Version: In Winter ’15, there were two columns named Definition Version. The one that corresponds
to the flow that was run is now named Flow Version Label. The one that corresponds to the flow at which the interview
is paused is now named Current Flow Version Label.

Changes to the Record Detail Page


You’ll see the following changes on the interview record detail page. To see an interview record detail page, refer to the Paused and
Waiting Interviews list on the flow management page and click the link under Name. If the list doesn’t include any interviews, run a flow
that contains a Wait element.
Renamed Object
The object name for interview records is now Flow Interview. Previously, it was Interaction Interview.
Removed Field
The Definition Version field is no longer available from interview records.
Added Fields
The following fields are now available on interview records.
• Interview Label
• Why Paused
• Paused Date
Added Sections
The following sections were added.
• Current Flow Information—Contains fields related to the flow at which the interview is paused. If this information differs from
what’s in Flow Information, the interview was paused in a subflow.

235
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

• Flow Information—Contains fields related to the flow that was run. If this information differs from what’s in Current Flow
Information, this is the master flow.
• System Information
Added Fields to Current Flow Information
The following fields were added to the Current Flow Information section.
• Flow Name
• Version
• Type
• Current Element
Added Fields to Flow Information
The following fields were added to the Flow Information section.
• Flow Name
• Version
• Type

Reference the ID of a Chatter Post That a Flow Created


If you create Chatter posts in a flow, you can now use the created feed item’s ID later in that flow.
USER PERMISSIONS
For example, provide the user with a link to the new feed item. Assign Feed Item ID to a flow
variable when you configure the “Post to Chatter” element. To configure a “Post to
Chatter” element:
• “Manage Force.com
Flow”

Reference Information from an Approval Request That a Flow Submitted


If you submit an approval request in a flow, you can now use information from the approval request
USER PERMISSIONS
later in that flow. For example, use the approval request’s status in a Decision element. Assign the
approval request’s outputs to flow variables when you configure the Submit for Approval element. To configure a “Submit for
Approval” element:
Optional Output Description • “Manage Force.com
Parameter Flow”

Instance ID The ID of the approval process that was submitted for approval.

Instance The status of the current approval process. Valid values are “Approved,”
Status “Rejected,” “Removed,” or “Pending”.

New Work Item The IDs of the new items submitted to the approval process. There can
IDs be 0 or 1 approval processes.

Next Approver The IDs of the users who are assigned as the next approvers.
IDs

Record ID The ID of the record that the flow submitted for approval.

236
Salesforce Spring ’15 Release Notes Business Logic and Process Automation

Assign an Event’s Outputs to Flow Variables


If you’ve created a time-based flow, you can now use information from the event that the flow
USER PERMISSIONS
waited for later in that flow. For example, the actual time at which the event occurred.
If you assign one of the following output parameters to flow variables, the variable is populated To configure a “Wait”
when the event occurs and the flow resumes. element:
• “Manage Force.com
Flow”
Parameter Description Example
Base Time The actual time at which the event occurred and 11/26/2014
the flow interview resumed. 10:12 AM

Event Delivery The status of the event when the flow interview Delivered
Status resumed. After an event occurs, Salesforce
delivers the event to the flow that’s waiting for
it, so that the flow knows to resume. Valid values
are:
• Delivered: The event was successfully
delivered.
• Invalid: An error occurred during delivery, but
the flow successfully resumed.

Change in Activation Date for “Enable governor limits on all executed flows” Critical Update
Salesforce issued a critical update in the Summer ’14 release, available in the Critical Update Console (CRUC), titled “Enable governor
limits on all executed flows.” This critical update originally had an auto-activation date of 1/11/2015. In order to give customers and
partners more time to validate and resolve issues that have arisen from this change, the auto-activation date has been postponed until
the Summer ’15 release: 4/15/2015.
Please ensure that your organization is tested and updated as needed in preparation for this activation, per the description in the Critical
Update.

Other Changes in Visual Workflow


In addition to the major enhancements, here are some other enhancements that make it easier to work with flows. These enhancements
include predefined names for default connectors, new events for troubleshooting flows, and more.
Add Decision and Wait Elements to Flows without Configuring Default Connectors
To help you build and distribute flows even faster, you no longer have to provide a name for default outcomes or paths. Default
outcomes are configured in Decision elements, and default paths are configured in Wait elements. The Cloud Flow Designer provides
a name automatically, but if the predefined name doesn't work for your flow you can still change that value.
Debug Flow Elements That Were Deferred at Runtime
Salesforce defers bulk elements, such as Record Create elements, until all the flow interviews in the transaction have finished or
reached a bulk element. The new FLOW_ELEMENT_DEFERRED Apex debug log event provides details about events that were
deferred.
Use Date/Time Fields on Additional Objects to Create a Time-Based Flow
By using a relative alarm event in a Wait element, you can configure a flow to wait until a date/time value that’s stored in a record.
You can now configure a relative alarm event to use a date/time field from:
• FeedItem

237
Salesforce Spring ’15 Release Notes Security and Identity

• MacroInstruction
• MetricDataLink
• UserProvAccount
• UserProvAccountStaging
• UserProvMockTarget
• UserProvisioningLog
• WorkFeedbackTemplate
Monitor a Flow’s Type Instead of Run Restrictions
We replaced the Run Restrictions column on the flow management and flow detail pages with the Type column. The
Run Restrictions column is no longer available in the default flow list view or in new custom flow list views. If you created
a list view before Spring ’15 that uses the Run Restrictions column, the column is still supported.
Each type supports different elements and resources, as well as methods of implementing the flow. See “Flow Types” in the Salesforce
Help for details on the restrictions for each flow type.
User Interface Text Updated for Navigation Options
In Winter ‘15 and earlier, you configured the buttons that appear on a screen via the Navigation Options picklist. Now that you can
let users pause at a given screen, we made the following changes so that the navigation options support the new feature.
• The picklist is now in the Navigation Options section.
• The default value, which was “No navigation restrictions”, is now “Show Finish and Previous buttons”.

Security and Identity


Use security to protect both your data and applications. These features also provide user identity and access management.

IN THIS SECTION:
Configure a Google Authentication Provider
Let users log in to a Salesforce organization using their Google accounts.
Set Up an Authentication Provider Using Salesforce-Managed Values
When setting up a Facebook, Salesforce, LinkedIn, Twitter, or Google Auth. Provider, you can choose to let Salesforce automatically
create key values. Previously, you could only set up an Auth. Provider by providing values from your own third-party application or
connected app. This change allows you to skip the step of creating your own third-party application.
Customize SAML Just-in-Time User Provisioning with an Apex Class
You can use an Apex class to control and customize Just-in-Time user provisioning logic during SAML single sign-on. Previously,
you could only provision users automatically based on attributes in the assertion. You can now choose either method to provision
users.
Use Multiple Callback URLs for Connected Apps
You can now set more than one Callback URL for a connected app. Previously, you could only set one Callback URL.
Improve Security with Session Domain Locking
Use the Lock sessions to the domain in which they were first used Session Settings option for strong
prevention of unauthorized access from one domain to another.
Edit Authorize, Token, and User Info Endpoints for Facebook Auth. Provider
When you set up a Facebook Auth. Provider, you can now edit the Authorize, Token, and User Info endpoint URLs.

238
Salesforce Spring ’15 Release Notes Security and Identity

Get Authentication Configuration Settings for a Custom Domain or Community from a URL
The Authentication Configuration endpoint is a static page that can be used to query for information about an organization’s SAML
for single sign-on and Auth. Provider settings. No session is required. It’s only available for Salesforce communities or custom domains.
Use this URL when you’re developing apps that need this information on demand.
Create Named Credentials to Define Callout Endpoints and Their Authentication Settings
A named credential specifies the URL of a callout endpoint and its required authentication parameters in one definition. You can
simplify the setup of authenticated Apex callouts by specifying a named credential as the callout endpoint. Doing so enables
Salesforce to securely handle all the authentication, so that you don’t have to do so in your code. You can also skip remote site
settings, which are otherwise required for Apex callouts to external sites.
Track Login History by ID with Session Context
The login history ID is now associated with the sessions per login event. This addition allows developers to create reports that track
activities associated with multiple sessions for a single login event. You can also track different login event information, such as
browser type, operating system, and more, for a single session.
Track Data Loader Logins with Login History
You can now track Data Loader logins from the Login History page or via the LoginHistory object. This addition enables you to more
accurately monitor login attempts for your organization.
Monitor Your Users’ Login and Logout Activity (Generally Available)
You can now use event monitoring to discover how often and at what times your users are logging in to and out of your organization.
This capability helps you discriminate between valid and invalid login requests and track user login patterns for future reference.
Legitimize User Activity using Login Forensics (PILOT)
Use Login Forensics to identify unsual behavior within your organization, helping you prevent identity fraud and other security
concerns.
Sign SAML Single Sign-On Requests with RSA-SHA256
You can sign outbound SAML request assertions to an identity provider for single sign-on using the RSA-SHA256 algorithm. This
enhancement provides stronger security than RSA-SHA1 and interoperability with identity providers such as Active Directory
Federation Services (ADFS).
Choose the Logout Page for Social Sign-On Users
Users who log in using social sign-on from providers like Facebook and LinkedIn can now be directed to a specific logout destination
that maintains your own branding experience or sent to a specific authentication provider’s page.
Monitor Up to 180 Days of Identity Provider Events in Log
The identity provider event log now retains 180 days worth of events. Previously, it retained only 90 days worth of events.
Provide Code Challenge and Verifier Values for OAuth 2.0 Web Server Flow
For nonce-based OAuth 2.0 Web server flows, you can specify an arbitrary code challenge value and a corresponding code verifier
to help prevent authorization code interception attacks. This feature is only supported in the OAuth 2.0 Web server authentication
flow.
OAuth 2.0 Username-Password Flow Error Messages Changed
In the OAuth 2.0 username-password flow, the error message for an invalid password, nonexistent username, or otherwise invalid
credentials is now invalid_grant — authentication failure.
Control Individual API Client Access to Your Salesforce Organization
With API Client Whitelisting, restrict all API client applications, such as the Data Loader, to require administrator approval, unless the
user’s profile or permission set has the “Use Any API Client” permission.

239
Salesforce Spring ’15 Release Notes Security and Identity

Provision Users in Third-Party Applications Using Connected Apps (Beta)


Configure connected apps with user provisioning to create, update, and delete user accounts in third-party applications based on
users in your Salesforce organization. For your Salesforce users, you canset up automatic account creation, updates, and deactivation
for services such as Google Apps and Box. You can also discover existing user accounts in the third-party system and whether or not
they are already linked to a Salesforce user account.
Clickjack Label Changed in Session Settings
In Session Settings, a clickjack protection label has been updated for additional clarity.
Clickjack Protection Enabled for Salesforce1 Reporting
For enhanced security, clickjack protection is now turned on by default for Salesforce1 Reporting, which includes the Reports and
Dashboards tabs. With clickjack protection enabled, be aware that the Reports and Dashboard tabs can no longer be embedded
inside an iframe.

Configure a Google Authentication Provider


Let users log in to a Salesforce organization using their Google accounts.
EDITIONS
To use Google as an authentication provider:
Available in:
1. Set up a Google application, making Salesforce the application domain.
• Professional
2. Define a Google authentication provider in your Salesforce organization. • Enterprise
3. Update your Google application to use the Callback URL generated by Salesforce as the • Performance
Google Website Site URL. • Unlimited
• Developer
4. Test the connection.

USER PERMISSIONS
Set Up a Google Application
To view the settings:
Before you can configure Google for your Salesforce organization, you must set up an application
• “View Setup and
in Google:
Configuration”
Note: You can skip this step by allowing Salesforce to use its own default application. For To edit the settings:
more information, see Using Salesforce-Managed Values in Auth. Provider Setup. • “Customize Application”
1. Go to the Google website and create a new application. AND
2. Modify the application settings and set the Application Domain to Salesforce. “Manage Auth.
Providers”
3. Note the Application ID and the Application Secret.

Define a Google Provider in Your Salesforce Organization


You need the Google Application ID and Application Secret to set up a Google provider in your Salesforce organization.

Note: You can skip specifying these key values in the provider setup by allowing Salesforce to manage the values for you. For
more information, see Using Salesforce-Managed Values in Auth. Provider Setup.
1. From Setup, click Security Controls > Auth. Providers.
2. Click New.
3. Select Google for the Provider Type.
4. Enter a Name for the provider.

240
Salesforce Spring ’15 Release Notes Security and Identity

5. Enter the URL Suffix. This is used in the client configuration URLs. For example, if the URL suffix of your provider is
“MyGoogleProvider”, your single sign-on URL is similar to:
https://login.salesforce.com/auth/sso/00Dx00000000001/MyGoogleProvider.
6. Use the Application ID from Google for the Consumer Key field.
7. Use the Application Secret from Google for the Consumer Secret field.
8. Optionally, set the following fields.
a. Default Scopes to send along with the request to the authorization endpoint. Otherwise, the hardcoded defaults for the
provider type are used (see Google’s developer documentation for these defaults).
For more information, see Using the Scope Parameter.

b. Custom Error URL for the provider to use to report any errors.
c. Custom Logout URL to provide a specific destination for users after they log out, if they authenticated using the single
sign-on flow. Use this field to direct users to a branded logout page or destination other than the default Salesforce logout page.
The URL must be fully qualified with an http or https prefix, such as https://acme.my.salesforce.com.
d. Select an already existing Apex class as the Registration Handler class or click Automatically create a
registration handler template to create an Apex class template for the registration handler. You must edit this
class and modify the default content before using it.

Note: You must specify a registration handler class for Salesforce to generate the Single Sign-On
Initialization URL.

e. Select the user that runs the Apex handler class for Execute Registration As. The user must have “Manage Users” permission.
A user is required if you selected a registration handler class or are automatically creating one.
f. To use a portal with your provider, select the portal from the Portal drop-down list.
g. Use the Icon URL field to add a path to an icon to display as a button on the login page for a community. This icon applies
to a community only, and does not appear on the login page for your Salesforce organization or custom domain created with
My Domain. Users click the button to log in with the associated authentication provider for the community.
You can specify a path to your own image, or copy the URL for one of our sample icons into the field.

Note: If you want to change the Google default endpoints, you can create an OpenID Connect authorization provider and
populate those fields. For more information, see Configure an OpenID Connect Authentication Provider.

9. Click Save.
Be sure to note the generated Auth. Provider Id value. You must use it with the Auth.AuthToken Apex class.
Several client configuration URLs are generated after defining the authentication provider:
• Test-Only Initialization URL: Administrators use this URL to ensure the third-party provider is set up correctly. The
administrator opens this URL in a browser, signs in to the third party, and is redirected back to Salesforce with a map of attributes.
• Single Sign-On Initialization URL: Use this URL to perform single sign-on into Salesforce from a third party (using
third-party credentials). The end user opens this URL in a browser, and signs in to the third party. This then either creates a new user
for them, or updates an existing user, and then signs them into Salesforce as that user.
• Existing User Linking URL: Use this URL to link existing Salesforce users to a third-party account. The end user opens
this URL in a browser, signs in to the third party, signs in to Salesforce, and approves the link.
• Oauth-Only Initialization URL: Use this URL to obtain OAuth access tokens for a third party. Users must authenticate
with Salesforce for the third-party service to get a token; this flow does not provide for future single sign-on functionality.

241
Salesforce Spring ’15 Release Notes Security and Identity

• Callback URL: Use the callback URL for the endpoint that the authentication provider calls back to for configuration. The
authentication provider has to redirect to the Callback URL with information for each of the above client configuration URLs.
The client configuration URLs support additional request parameters that enable you to direct users to log into specific sites, obtain
customized permissions from the third party, or go to a specific location after authenticating.

Update Your Google Application


After defining the Google authentication provider in your Salesforce organization, go back to Google and update your application to
use the Callback URL as the Google Website Site URL.

Test the Single Sign-On Connection


In a browser, open the Test-Only Initialization URL on the Auth. Provider detail page. It should redirect you to Google
and ask you to sign in. Upon doing so, you are asked to authorize your application. After you authorize, you are redirected back to
Salesforce.

Set Up an Authentication Provider Using Salesforce-Managed Values


When setting up a Facebook, Salesforce, LinkedIn, Twitter, or Google Auth. Provider, you can choose
EDITIONS
to let Salesforce automatically create key values. Previously, you could only set up an Auth. Provider
by providing values from your own third-party application or connected app. This change allows Available in:
you to skip the step of creating your own third-party application. • Professional
To allow Salesforce to create and manage values for an Auth. Provider, leave all of the following • Enterprise
fields blank if they display in your Auth. Provider setup. If you specify a value for one of these fields, • Unlimited
then values for the Consumer Key and Consumer Secret must also be specified. • Performance
• Developer
• Consumer Key
• Consumer Secret
• Authorize Endpoint URL
• Token Endpoint URL
• User Info Endpoint URL
• Default Scopes

Note: This change will not be available until March 2015.

Customize SAML Just-in-Time User Provisioning with an Apex Class


You can use an Apex class to control and customize Just-in-Time user provisioning logic during
EDITIONS
SAML single sign-on. Previously, you could only provision users automatically based on attributes
in the assertion. You can now choose either method to provision users. Available in:
To implement provisioning with an Apex class, you can use your own Apex class that implements • Enterprise
the SamlJitHandler interface, or Salesforce can generate an Apex class that contains a basic • Unlimited
end-to-end flow for you to customize. For more information, see Configuring SAML Settings for • Performance
Single Sign-On in the Salesforce Help. • Developer

242
Salesforce Spring ’15 Release Notes Security and Identity

Use Multiple Callback URLs for Connected Apps


USER PERMISSIONS EDITIONS

To read: “Customize Application” Connected Apps can be


created in: Group,
To create, update, or delete: “Customize Application” AND either
Professional, Enterprise,
“Modify All Data” OR “Manage Connected Performance, Unlimited,
Apps” and Developer Editions
Connected Apps can be
To update all fields except Profiles, “Customize Application”
installed in: All Editions
Permission Sets, and Service Provider SAML
Attributes:

To update Profiles, Permission Sets, and “Customize Application” AND “Modify All
Service Provider SAML Attributes: Data”

To uninstall: “Download AppExchange Packages”

You can now set more than one Callback URL for a connected app. Previously, you could only set one Callback URL.
A Callback URL is a URL that Salesforce calls back to your application during OAuth; it’s the OAuth redirect_uri. If you have
multiple Callback URLs, your application can specify any of them as the redirect_uri at run time. For more information,
see Creating a Connected App in the Salesforce Help.

Improve Security with Session Domain Locking


Use the Lock sessions to the domain in which they were first used
EDITIONS
Session Settings option for strong prevention of unauthorized access from one domain to another.
1. From Setup, click Security Controls > Session Settings. Available in all editions

2. Select Lock sessions to the domain in which they were first


used. USER PERMISSIONS
This option associates a current UI session for a user, such as a community user, with a specific To set session security:
domain to help prevent unauthorized use of the session ID in another domain. • “Customize Application”

Edit Authorize, Token, and User Info Endpoints for Facebook Auth. Provider
When you set up a Facebook Auth. Provider, you can now edit the Authorize, Token, and
EDITIONS
User Info endpoint URLs.
You might want to edit the endpoint URLs to reflect a different version of the Facebook API than Available in:
the default version that Facebook provides, so that you can access different scopes and values for • Professional
the user. If you leave the endpoint blank, Salesforce uses the same version of the Facebook API that • Enterprise
your Facebook application uses. To enter the endpoint URLs, from Setup, click Security Controls > • Unlimited
Auth. Providers and then create a Facebook authentication provider. • Performance
• Developer
Example: Suppose that your Facebook application uses Facebook API version 1.0, but you
want to use Facebook API version 2.2 to communicate with Salesforce. In the Facebook
authentication provider setup, you might specify
https://www.facebook.com/v2.2/dialog/oauth as your Authorize Endpoint URL.

243
Salesforce Spring ’15 Release Notes Security and Identity

Get Authentication Configuration Settings for a Custom Domain or Community from


a URL
The Authentication Configuration endpoint is a static page that can be used to query for information
EDITIONS
about an organization’s SAML for single sign-on and Auth. Provider settings. No session is required.
It’s only available for Salesforce communities or custom domains. Use this URL when you’re Available in all editions
developing apps that need this information on demand.
In response to a request to the Authentication Configuration endpoint, Salesforce returns basic
information in JSON format. This information includes authentication and registration settings, branding assets, and other values related
to single sign-on support for users of a community or custom domain.
The format of the URL is: https://<community or custom URL>/.well-known/auth-configuration. For
example, https://acme.my.salesforce.com/.well-known/auth-configuration.

Authentication Configuration Endpoint Response


The authentication configuration endpoint returns the information in JSON format only.
The following is a sample response.

Note: The UseNativeBrowserForAuthentication value is always false for a community.


The following values are only available for communities, and are false or null for custom domains created with My Domain.
• SelfRegistrationEnabled
• SelfRegistrationUrl
• DefaultProfileForRegistration
• FooterText
• UsernamePasswordEnabled

{
"OrgId": "00DD00#########",
"Url": "https://acme.force.com/partners",
"LoginPage": {
"LoginPageUrl": "https://acme.force.com/partners/CommunitiesLogin",
"LogoUrl": "https://acme.force.com/partners/img/logo190.png",
"BackgroundColor": "#B1BAC1",
"SelfRegistrationEnabled": true,
"FooterText": "acme.com",
"UsernamePasswordEnabled": false
},
"SamlProviders": [{
"name": "ADFS",
"SsoUrl": "https://adfs.my.salesforce.com?so=00DB00#########"
},
{
"name": "SF Identity",
"SsoUrl": "https://sfid.my.salesforce.com?so=00DB00#########"
}],
"AuthProviders": [{
"name": "LinkedIn",
"IconUrl": "https://www.linkedin.com/logos/img/logo.png",
"SsoUrl": "https://login.salesforce.com/services/auth/sso/00DB00000#########/LinkedIn"

244
Salesforce Spring ’15 Release Notes Security and Identity

},
{
"name": "Facebook",
"IconUrl": "https://www.facebook.com/logos/img/logo.png",
"SsoUrl": "https://login.salesforce.com/services/auth/sso/00DB00000#########/Facebook"

}]
}

Create Named Credentials to Define Callout Endpoints and Their Authentication


Settings
A named credential specifies the URL of a callout endpoint and its required authentication parameters
EDITIONS
in one definition. You can simplify the setup of authenticated Apex callouts by specifying a named
credential as the callout endpoint. Doing so enables Salesforce to securely handle all the Available in all editions
authentication, so that you don’t have to do so in your code. You can also skip remote site settings,
which are otherwise required for Apex callouts to external sites.
You can instead specify a URL as the callout endpoint and register that URL in your organization’s remote site settings. In that case,
however, you handle the authentication in your code. Doing so can be less secure and especially complicated for OAuth authentication.
By separating the endpoint URL and authentication from the Apex code, named credentials make callouts easier to maintain. For example,
if an endpoint URL changes, you simply update the named credential. All callouts that reference the named credential then continue
to work without any changes to the code.
If you have multiple organizations, you can create a named credential with the same name in each organization. Each of these named
credentials can have a different endpoint URL, for example, to accommodate differences in development and production environments.
Because the code references only the name of the named credential, the same Apex class can be packaged and deployed in all your
organizations without the code having to programmatically check the environment.
Named credentials support basic password authentication and OAuth 2.0. You can set up each named credential to use an
organization-wide named principal or to use per-user authentication so that users can manage their own credentials.
For an example, see Simplify Authenticated Apex Callouts by Specifying Named Credentials as Endpoints on page 273. For setup
information, see “Define a Named Credential” in the Salesforce Help.

Track Login History by ID with Session Context


The login history ID is now associated with the sessions per login event. This addition allows
EDITIONS
developers to create reports that track activities associated with multiple sessions for a single login
event. You can also track different login event information, such as browser type, operating system, Available in all editions
and more, for a single session.
This value is returned in a response to the Apex method USER PERMISSIONS
Auth.AuthManagement.getCurrentSession(), and is included as a field in the
AuthSession standard object. To set session security:
• “Customize Application”
For more information, see New and Changed Apex Classes and Changed Objects.

Note: When a session is reused, Salesforce updates the LoginHistoryId with the value
from the most recent login.

245
Salesforce Spring ’15 Release Notes Security and Identity

Track Data Loader Logins with Login History


You can now track Data Loader logins from the Login History page or via the LoginHistory object.
EDITIONS
This addition enables you to more accurately monitor login attempts for your organization.
When a user attempts to log in to Salesforce via Data Loader, app information about the login Available in:
attempt is now captured in the login history record’s Application field. One of the following • Developer
values appears. • Enterprise
• Unlimited
• DataLoaderPartnerUI/—login attempted from Data Loader UI • Performance
• DataLoaderPartnerBatch/—login attempted from Data Loader command-line
interface
• DataLoaderBulkUI/—login attempted from Data Loader UI with Use Bulk API option enabled
• DataLoaderBulkBatch/—login attempted from Data Loader command-line interface with Use Bulk API option
enabled

Monitor Your Users’ Login and Logout Activity (Generally Available)


You can now use event monitoring to discover how often and at what times your users are logging
EDITIONS
in to and out of your organization. This capability helps you discriminate between valid and invalid
login requests and track user login patterns for future reference. Available in:
When a user logs in to a Salesforce account, the activity generates a LOGIN_EVENT event log • Enterprise
file. Similarly, the end of a user session generates a LOGOUT_EVENT event log file. A session ends • Unlimited
either when it expires due to user inactivity or when the user logs out of Salesforce. • Performance
• Developer
Both of these event log files are accessible 24 hours after the event ocurrs through the EventLogFile
sObject and remain available for 24 hours following generation. See the Salesforce REST API guide
for more information.
Login and logout event log files are freely available to all Enterprise, Performance, and Unlimited Edition organizations. Contact Salesforce
to purchase all of the 28 available event log file types.

Legitimize User Activity using Login Forensics (PILOT)


Use Login Forensics to identify unsual behavior within your organization, helping you prevent
EDITIONS
identity fraud and other security concerns.
Available in:
Note: Login Forensics is currently available through a pilot program. For information about
• Enterprise
enabling Login Forensics, contact Salesforce.
• Performance
Login Forensics helps administrators better determine which user behavior is legitimate. It provides • Unlimited
you key user access data, including: • Developer
• The average number of logins per user per a specified time period.
• Who logged in more than the average number of times.
• Who logged in during non-business hours.
• Who logged in using suspicious IP range(s).

246
Salesforce Spring ’15 Release Notes Security and Identity

Administrators can track these types of events using two objects available in the Login Forensics Pilot: LoginEvent and PlatformEventMetrics.
The Login Forensics Pilot has no user interface in the Salesforce application to manage or view login event or metric data–however, you
can access these events through the API. There are several tools and programming languages that can consume the Force.com SOAP
API and REST API with the cURL utility. For example, you can use the Force.com IDE, Workbench and other development tools.

Sign SAML Single Sign-On Requests with RSA-SHA256


You can sign outbound SAML request assertions to an identity provider for single sign-on using
EDITIONS
the RSA-SHA256 algorithm. This enhancement provides stronger security than RSA-SHA1 and
interoperability with identity providers such as Active Directory Federation Services (ADFS).
Available in: Professional,
An identity provider is a trusted provider that enables you to use single sign-on to access other Enterprise, Performance,
websites. When you configure a new identity provider, you provide values for communicating with Unlimited, and Developer
the identity provider using SAML assertions. These assertions can be signed using the RSA-SHA256 Editions
algorithm to help secure the information sent to the identity provider.
Configure SAML for single sign-on in Security Controls > Single Sign-On Settings. As part of
this enhancement, the Signing Certificate field is now the Request Signing USER PERMISSIONS
Certificate field. After you select the certificate, set the signing algorithm in the Request To view the settings:
Signature Method field. The default value is RSA-SHA1; existing configurations continue to • “View Setup and
use this value until an administrator changes it. Configuration”
To edit the settings:
• “Customize Application”
AND
“Modify All Data”

Choose the Logout Page for Social Sign-On Users


Users who log in using social sign-on from providers like Facebook and LinkedIn can now be directed
EDITIONS
to a specific logout destination that maintains your own branding experience or sent to a specific
authentication provider’s page. Available in:
By default, users who use third-party authentication providers to provide a single sign-on experience • Professional
are directed to a Salesforce logout page. Now you have the option to preserve your own branding • Enterprise
and maintain more control over the user’s logout experience by providing a Custom Logout • Performance
URL in the Auth. Provider settings. For example, users who log in to a Salesforce organization with • Unlimited
their LinkedIn account can be redirected to LinkedIn login page when they log out from the • Developer
Salesforce organization.
1. From Setup, click Security Controls > Auth. Providers. USER PERMISSIONS
2. Click New. To view the settings:
3. Select the Provider Type. • “View Setup and
Configuration”
4. In the Auth. Provider settings, enter a Custom Logout URL. The URL must be fully qualified
To edit the settings:
with an http or https prefix, such as https://acme.my.salesforce.com,
• “Customize Application”
http://www.google.com, or other path.
AND
“Manage Auth.
Providers”

247
Salesforce Spring ’15 Release Notes Security and Identity

Monitor Up to 180 Days of Identity Provider Events in Log


The identity provider event log now retains 180 days worth of events. Previously, it retained only
EDITIONS
90 days worth of events.
The identity provider event log records both problems and successes with inbound SAML Available in:
authentication requests from another app provider, and outbound SAML responses when Salesforce • Developer
is acting as an identity provider. For more information about the event log, see Using the Identity • Enterprise
Provider Event Log in the Salesforce Help. • Performance
• Unlimited
• Database.com

USER PERMISSIONS

Define and modify identity


providers and service
providers:
• “Customize Application”

Provide Code Challenge and Verifier Values for OAuth 2.0 Web Server Flow
For nonce-based OAuth 2.0 Web server flows, you can specify an arbitrary code challenge value
EDITIONS
and a corresponding code verifier to help prevent authorization code interception attacks. This
feature is only supported in the OAuth 2.0 Web server authentication flow. Available in all editions
In the Web server flow, the client can pass additional code_challenge and code_verifier
values as parameters to the authorization endpoint and token endpoint, respectively. The USER PERMISSIONS
code_verifier is a base64url-encoded arbitrary value. The code_challenge is a
base64url-encoded SHA256 hash of the code_verifier. During the flow execution, if the To manage, create, edit,
client passes a code_challenge to the authorization endpoint, Salesforce validates the and delete OAuth
applications:
code_verifier from the token endpoint and compares it to the code_challenge from
• “Manage Connected
the authorization endpoint. If the values don’t match, the login fails with an error. Apps”
Use the following steps to create the values and use them in a Web server flow.
1. On the client, generate 128 bytes of random data and base64url encode it as defined here:
https://tools.ietf.org/html/rfc4648#section-5. This is the code_verifier value.
2. On the client, generate the SHA256 hash of the code_verifier and base64url encode it as defined here:
https://tools.ietf.org/html/rfc4648#section-5. This is the code_challenge value.
3. Include the code_challenge as a parameter in the request from the client to the authorization endpoint.
4. Include the code_verifier as a parameter in the request from the client to the token endpoint.
For more information about Web server flows, including sample request URLs, see OAuth 2.0 Web Server Authentication Flow in
the Salesforce Help.

Note: This change will not be available until March 2015.

248
Salesforce Spring ’15 Release Notes Security and Identity

OAuth 2.0 Username-Password Flow Error Messages Changed


In the OAuth 2.0 username-password flow, the error message for an invalid password, nonexistent
EDITIONS
username, or otherwise invalid credentials is now invalid_grant — authentication
failure. Available in all editions
This message replaces the following:
• authentication_failure — invalid password USER PERMISSIONS
• expired_access — refresh token To manage, create, edit,
• invalid_grant — invalid user credentials and delete OAuth
applications:
• “Manage Connected
Apps”

Control Individual API Client Access to Your Salesforce Organization


With API Client Whitelisting, restrict all API client applications, such as the Data Loader, to require
EDITIONS
administrator approval, unless the user’s profile or permission set has the “Use Any API Client”
permission. Available in:
Administrators may grant some users API access through the “API Enabled” permission. After it’s • Professional
given, this permission allows the user API access through any client (such as the Data Loader, • Enterprise
Salesforce1, Salesforce for Outlook, or the Force.com Migration Tool). For finer control over which • Performance
applications the user can use for API access, you can implement API Client Whitelisting. This feature • Unlimited
leverages the existing authorization capabilities of connected apps. With API Client Whitelisting, • Developer
an administrator can approve or block individual client application access for each associated
connected app. All client applications that are not configured as connected apps are denied access.
If you are not using connected apps, you can relax this restriction for individual users by assigning them a profile or permission set with
“Use Any API Client” enabled.

Note: Contact Salesforce to enable API Client Whitelisting. After it’s enabled, all client access is restricted until explicitly allowed
by the administrator. This restriction might block access to applications that your users are already using. Before you enable this
feature, you should configure and approve connected apps for any client applications you want users to continue using, or give
the users a profile or permission set with “Use Any API Client” enabled.
Some components for commonly used apps are automatically installed as connected apps in organizations. These components support
apps such as the Data Loader, Salesforce1, Workbench and more. After you select this feature, these components will also require
approval, unless the user has a profile or permission set with “Use Any API Client” enabled. See Managing a Connected App for more
information about these components.
Pilot customers of this feature might have experienced problems gaining authorized access to some Salesforce apps, such as the Help
& Training portal, AppExchange, or the Salesforce Community Success site. As of the Spring ’15 release, this issue is resolved.

249
Salesforce Spring ’15 Release Notes Security and Identity

Provision Users in Third-Party Applications Using Connected Apps (Beta)


USER PERMISSIONS EDITIONS

To read: “Customize Application” Connected Apps can be


created in: Enterprise,
To create, update, or delete: “Customize Application” AND either
Performance, Unlimited,
“Modify All Data” OR “Manage Connected and Developer Editions
Apps”
Connected Apps can be
installed in: All Editions
To update all fields except Profiles, “Customize Application”
Permission Sets, and Service Provider SAML
Attributes:

To update Profiles, Permission Sets, and “Customize Application” AND “Modify All
Service Provider SAML Attributes: Data”

To uninstall: “Download AppExchange Packages”

Configure connected apps with user provisioning to create, update, and delete user accounts in third-party applications based on users
in your Salesforce organization. For your Salesforce users, you canset up automatic account creation, updates, and deactivation for
services such as Google Apps and Box. You can also discover existing user accounts in the third-party system and whether or not they
are already linked to a Salesforce user account.

Note: This release contains a beta version of user provisioning for connected apps that is production quality but has known
limitations. For information on enabling this feature for your organization, contact Salesforce.
Connected apps link your users with third-party services and applications. User provisioning for connected apps lets you create, update,
and manage user accounts for those services and applications. This simplifies account creation for services such as Google Apps, and
links your Salesforce users’ accounts to their third-party accounts.
User provisioning applies only to users assigned to a profile or permission set granting them access to the configured connected app.
For example, you can configure user provisioning for a Google Apps connected app in your organization. Then assign the profile
“Employees” to that connected app. When a new user is created in your organization and assigned the “Employees” profile, the user is
automatically provisioned in Google Apps. Additionally, when the user is deactivated, or the profile assignment changes, the user is
automatically de-provisioned from Google Apps.

Benefits of User Provisioning


Security
Automatically disable accounts in third-party applications when a user leaves the company.
Auditing and compliance
Discover and manage the apps your users use. You can get a centralized view of all the accounts a user has across all connected
apps. Run reports and set up alerts.
IT Efficiency
Reduce maintenance time on user accounts and save time provisioning users for applications.

To Configure User Provisioning


After the feature is enabled, Salesforce provides a step-by-step wizard to guide you through the configuration of user provisioning for
each connected app.

250
Salesforce Spring ’15 Release Notes Security and Identity

Before you use the wizard, you’ll need the following.


• A connected app for the third-party service. Any connected app can support user provisioning, including a “bookmark” connected
app For instructions on creating a connected app, see Creating a Connected App in the Salesforce Help.
• Named credentials to identify the third-party system and its authentication settings. Calls to the third-party system, such as creating,
editing or deleting accounts, use the third-party authentication settings in the named credential. For the named credential, you
specify a Named Principal, which can be an account on the third-party system or an OAuth authorization for an existing Auth. Provider
in your organization. The User Provisioning Wizard asks for this named credential. For more information, see Create Named Credentials
to Define Callout Endpoints and Their Authentication Settings.
• A flow to manage provisioning requests to the third-party system. Salesforce provides several pre-configured packages containing
“out-of-the-box” flows to simplify the configuration process. You associate one of these flows with the connected app using the
User Provisioning Wizard. For information about flows, see the Flow Designer Overview.
You can also create a custom flow for your connected app. For more information, see “User Provisioning for Connected Apps” in the
Salesforce Help.

If user provisioning is enabled for your organization, use the following steps to start the User Provisioning Wizard for an existing connected
app.
1. From Setup, click Manage Apps > Connected Apps.
2. Click the name of the connected app.
3. Click Edit on the Connected App Detail page.
4. In the User Provisioning Settings section, select Enable User Provisioning.
5. Click Save.
6. In the User Provisioning Settings section, click the Launch User Provisioning Wizard button.

Current Limitations
• Entitlements— The roles and permissions for the service provider can’t be managed or stored in the Salesforce organization. So,
specific entitlements to resources at the service provider are not included when a user requests access to a third-party app that has
user provisioning enabled. While a user account can be created for a service provider, any additional roles or permissions for that
user account should be managed via the service provider.
• Scheduled account reconciliation— Run the User Provisioning Wizard each time you want to collect and analyze users in the
third-party system. You can’t configure an interval for an automatic collection and analysis.

251
Salesforce Spring ’15 Release Notes Sharing

• Access re-certification— After an account is created for the user, any validation of the user’s access to resources at the service provider
must be performed at the service provider.

Clickjack Label Changed in Session Settings


In Session Settings, a clickjack protection label has been updated for additional clarity.
EDITIONS
From Setup, click Security Controls > Session Settings. Under Clickjack Protection, the label has
been renamed to Enable clickjack protection for non-setup customer Available in: Personal,
Visualforce pages with headers. Previously, it was Enable clickjack Contact Manager, Group,
protection for non-setup customer Visualforce pages. Professional, Enterprise,
. Performance, Unlimited,
Developer, and
Database.com Editions

USER PERMISSIONS

To set session security:


• “Customize Application”

Clickjack Protection Enabled for Salesforce1 Reporting


For enhanced security, clickjack protection is now turned on by default for Salesforce1 Reporting,
EDITIONS
which includes the Reports and Dashboards tabs. With clickjack protection enabled, be aware that
the Reports and Dashboard tabs can no longer be embedded inside an iframe. Available in: All editions
From Setup, click Security Controls > Session Settings, to review your organization’s clickjack except Database.com
protection settings. Clickjack protection for Salesforce1 Reporting is now controlled by the preference
Enable clickjack protection for non-setup Salesforce pages, which is enabled by default and
can be disabled only by contacting Salesforce. Previously, clickjack protection for Salesforce1 Reporting was controlled by the preference,
Enable clickjack protection for non-setup customer Visualforce pages with headers, which you could turn on and off.

Sharing
Sharing improves your control over who sees what.

IN THIS SECTION:
Manager Groups Available in All Organizations
Share records up or down the management chain using sharing rules or manual sharing.
Asynchronous Deletion of Obsolete Shares (Pilot)
Manual and team shares for sharing operations are deleted during off-peak hours to minimize your waiting time.

252
Salesforce Spring ’15 Release Notes Sharing

Manager Groups Available in All Organizations


Share records up or down the management chain using sharing rules or manual sharing.
EDITIONS
Manager groups was previously not automatically enabled in your organization. With Spring ‘15,
you can enable this feature on the Sharing Settings page and let users share records with their Available in:
management chain, instead of all managers in the same role. Manager groups can be used wherever • Professional
other groups are used, such as in a manual share or sharing rule. But they cannot be added to other • Enterprise
groups and don’t include portal users. Manager groups can contain Standard and Chatter Only • Performance
users only. • Unlimited
• Developer

USER PERMISSIONS

To enable or disable
manager groups:
• “Manage Sharing”

Every user has two manager groups—Managers Group (1) and Manager Subordinates Group (2)— where (1) includes a user’s direct
and indirect managers, and (2) includes a user and the user’s direct and indirect reports. On a sharing rule setup page, these groups are
available on the Share with drop-down list.
To find out who a user’s manager is, from Setup, click Manage Users > Users. Click a user’s name. The Manager field on the user
detail page displays the user’s manager.
To enable users to share records with the manager groups, follow these steps.
1. From Setup, click Security Controls > Sharing Settings.
2. On the Sharing Settings page, click Edit.
3. In Other Settings, select Manager Groups and then click Save.
With manager groups, you can share records to these groups via manual sharing, sharing rules, and Apex managed sharing. Apex sharing
reasons is not supported. For Apex managed sharing, include the row cause ID, record ID, and the manager ID. For more information,
see the Force.com Apex Code Developer's Guide.

253
Salesforce Spring ’15 Release Notes Globalization

Inactive users remain in the groups of which they are members, but all relevant sharing rules and manual sharing are retained in the
groups.

Note: If your organization has User Sharing enabled, you can’t see the users whom you don’t have access to. Additionally, a
querying user who doesn’t have access to another user can’t query that user’s groups.

Example: You might have a custom object for performance reviews whose organization-wide default is set to Private. After
deselecting the Grant Access Using Hierarchies checkbox, only the employee who owns the review record can
view and edit it. To share the reviews up the management chain, administrators can create a sharing rule that shares to a user’s
Managers Group. Alternatively, the employee can share the review record with the user’s Managers Group by using manual sharing.

Asynchronous Deletion of Obsolete Shares (Pilot)


Manual and team shares for sharing operations are deleted during off-peak hours to minimize your
EDITIONS
waiting time.
Available in:
Note: This feature is currently available to select customers through a pilot program. To be
• Professional
nominated to join this pilot program, contact Salesforce. Additional terms and conditions
• Enterprise
may apply to participate in the pilot program. Please note that pilot programs are subject to
• Performance
change, and as such, we cannot guarantee acceptance into this pilot program or a particular
• Unlimited
time frame that this feature can be enabled. Any unreleased services or features referenced
• Developer
in this or other press releases or public statements are not currently available and may not
be delivered on time or at all. Customers who purchase our services should make their purchase
decisions based upon features that are currently available.
Many sharing operations have an immediate impact on the visibility of records within the system. Deleting a group, for example,
immediately revokes any access granted to that group via sharing rules or manual shares. However, if the group itself is deleted and has
no members, any remaining shares to those groups grant no access. This new feature allows these obsolete shares to be removed
asynchronously, and administrators no longer have to wait for those shares to be deleted before continuing with other operations.
When deleting groups, obsolete shares to those groups are deleted during off-peak hours to minimize your waiting time during those
operations. These groups include:
• Public groups
• Territories
• Roles
• Queues
Members of these groups lose access to records that are shared to them immediately because the groups no longer exist. Users who
are higher than these members in the role hierarchy also lose access to those records.
Deactivated users lose access to shared records immediately. Users higher in the role hierarchy continue to have access until that access
is deleted asynchronously. If that visibility is a concern, any record access granted to the deactivated users can be removed prior to
deactivation.
Asynchronous deletion of manual and team shares are run during off-peak hours, typically between 6PM and 4AM based on your
organization’s default time zone. For account records, manual and team shares are deleted right after user deactivation.

Globalization
Globalization tools help administrators manage resources that vary from country to country, such as multilanguage, multicurrency, and
translated content.

254
Salesforce Spring ’15 Release Notes Globalization

IN THIS SECTION:
Supported Languages Changed and Added
Croatian and Slovenian are now end-user languages, and we’ve added 46 new platform-only languages. You and your customers
can access Salesforce and your custom applications in more languages than ever before, and you can customize your custom labels,
custom objects, and field labels to align with more local market requirements.

Supported Languages Changed and Added


Croatian and Slovenian are now end-user languages, and we’ve added 46 new platform-only
EDITIONS
languages. You and your customers can access Salesforce and your custom applications in more
languages than ever before, and you can customize your custom labels, custom objects, and field Available in all editions
labels to align with more local market requirements.
Two languages have been promoted from platform-only languages to end-user languages.
• Croatian (hr)
• Slovenian (sl)
For end-user languages, Salesforce provides translated labels for all standard objects and pages, except administrative pages, Setup, and
Help. When you specify an end-user language, labels and Help that aren’t translated appear in English. End-user languages are intended
only for personal use by end users. Don’t use end-user languages as corporate languages. Salesforce doesn’t provide customer support
in end-user languages.
In situations where Salesforce doesn’t provide default translations, use platform-only languages to localize apps and custom functionality
that you’ve built on the Salesforce1 Platform. You can translate items such as custom labels, custom objects, and field names. You can
also rename most standard objects, labels, and fields. Informative text and non-field label text aren’t translatable.
We’ve added a whopping 46 new platform-only languages!
• Arabic (Algeria) (ar_DZ)
• Arabic (Bahrain) (ar_BH)
• Arabic (Egypt) (ar_EG)
• Arabic (Iraq) (ar_IQ)
• Arabic (Jordan) (ar_JO)
• Arabic (Kuwait) (ar_KW)
• Arabic (Lebanon) (ar_LB)
• Arabic (Libya) (ar_LY)
• Arabic (Morocco) (ar_MA)
• Arabic (Oman) (ar_OM)
• Arabic (Qatar) (ar_QA)
• Arabic (Saudi Arabia) (ar_SA)
• Arabic (Sudan) (ar_SD)
• Arabic (Syria) (ar_SY)
• Arabic (Tunisia) (ar_TN)
• Arabic (United Arab Emirates) (ar_AE)
• Arabic (Yemen) (ar_YE)
• Chinese (Simplified—Singapore) (zh_SG)
• Chinese (Traditional—Hong Kong) (zh_HK)

255
Salesforce Spring ’15 Release Notes Critical Updates

• English (Hong Kong) (en_HK)


• English (Ireland) (en_IE)
• English (Singapore) (en_SG)
• English (South Africa) (en_ZA)
• French (Belgium) (fr_BE)
• French (Luxembourg) (fr_LU)
• French (Switzerland) (fr_CH)
• German (Luxembourg) (de_LU)
• Italian (Switzerland) (it_CH)
• Spanish (Argentina) (es_AR)
• Spanish (Bolivia) (es_BO)
• Spanish (Chile) (es_CL)
• Spanish (Colombia) (es_CO)
• Spanish (Costa Rica) (es_CR)
• Spanish (Dominican Republic) (es_DO)
• Spanish (Ecuador) (es_EC)
• Spanish (El Salvador) (es_SV)
• Spanish (Guatemala) (es_GT)
• Spanish (Honduras) (es_HN)
• Spanish (Nicaragua) (es_NI)
• Spanish (Panama) (es_PA)
• Spanish (Paraguay) (es_PY)
• Spanish (Peru) (es_PE)
• Spanish (Puerto Rico) (es_PR)
• Spanish (United States) (es_US)
• Spanish (Uruguay) (es_UY)
• Spanish (Venezuela) (es_VE)
For comprehensive details of what languages are supported and at what level, see “Which Languages Does Salesforce Support?” in the
Salesforce Help.

Critical Updates
This release includes updates that improve the performance, logic, and usability of Salesforce but
USER PERMISSIONS
might affect your existing customizations.
To ensure a smooth transition, each critical update has an opt-in period, which ends on the To view critical updates:
auto-activation date that’s displayed on the Critical Updates page in Setup. During this period, you • “View Setup and
Configuration”
can manually activate and deactivate the update as often as you need to evaluate the impact on
your organization and modify affected customizations. After the opt-in period has passed, the To activate critical updates:
update is automatically activated. For more details, see “Critical Updates Overview” in the Salesforce • “Modify All Data”
Help. AND
“Customize Application”

256
Salesforce Spring ’15 Release Notes Other Changes in Force.com Customization

Submit More Batch Jobs with Apex Flex Queue (Generally Available)
Submit up to 100 batch jobs simultaneously and actively manage the order of the queued jobs to control which batch jobs are
processed first. This enhancement provides you more flexibility in managing your batch jobs.
String Methods Fixed for Escaping Additional Characters
When you activate this update, these Apex String methods will escape additional characters: escapeHtml3, escapeHtml4,
and escapeEcmaScript.
Predictable Iteration Order for Unordered Collections
This update causes the iteration order of unordered collections (Map and Set) to be deterministic. When you activate this critical
update, the order of elements in maps and sets is the same every time your code is run again. This update can cause a different
iteration order for maps and sets than the current order.
Change in Activation Date for “Serve Static Resources from the Visualforce Domain” Critical Update
Salesforce issued a critical update in the Winter ’15 release, available in the Critical Update Console (CRUC), titled “Serve Static
Resources from the Visualforce Domain.” This critical update originally had an auto-activation date of 12/11/2014. In order to give
customers and partners more time to validate and resolve issues that have arisen from this change, this critical update has been
postponed until the Summer ’15 release, and the update is no longer visible in the Critical Update Console.

Other Changes in Force.com Customization


Even small customization enhancements can make Salesforce easier to use.
Flexible Pages Renamed as Lightning Pages
Flexible Pages have been renamed Lightning Pages throughout the Salesforce documentation and user interface. They are still known
as FlexiPages in the API, however.
Cross-Object References Increased for Quick Action Predefined Field Values
When creating predefined values for an action’s fields, you can now reference fields not only on the action’s source object, but also
on the source object’s related objects. This helps reduce data entry, errors, and manual lookups.

Label for Some Quick Actions Changed


Some quick actions previously had buttons labeled Submit. Those buttons are now labeled Save.

257
Salesforce Spring ’15 Release Notes Force.com Development: Create Your Own Salesforce App

Inactive Latvian Currency Removed


As of January 1, 2014, the official currency of Latvia is the Euro (EUR) rather than the Latvian Lats (LVL). LVL is no longer a currency
option in Salesforce. Single-currency organizations that use the Latvian (Latvia) locale now see currency values displayed in Euro (€).
The API returns "EUR" as the Latvian currency code.

Force.com Development: Create Your Own Salesforce App


Force.com helps you develop new applications and integrations to help your organization or for resale to other organizations.

IN THIS SECTION:
Change Sets and Deployment
Administrators and developers now have new ways to use change sets and external tools for deployments.
Visualforce
Develop apps that combine Visualforce and JavaScript, including Salesforce1 and other mobile apps.
Apex Code
Using syntax that looks like Java and acts like database stored procedures, Apex enables developers to add business logic to most
system events, including button clicks, related record updates, and Visualforce pages. Apex code execution can be initiated by Web
service requests and from triggers on objects.
Lightning Components (Beta)
The Lightning Component framework powers Salesforce1. You can use it to create your own Lightning components and make them
available to Salesforce1 users.
API
Use the API to create applications that integrate with Salesforce.
ISVforce
Spring ’15 includes Environment Hub and packaging enhancements.
Other Changes in Force.com Development
We’ve added Force.com Development tools to improve your experience.

SEE ALSO:
How and When Force.com Development Features Become Available

Change Sets and Deployment


Administrators and developers now have new ways to use change sets and external tools for
EDITIONS
deployments.
If you’re using the Force.com Migration Tool or Force.com IDE, also see the changes in the Metadata Available in
Types and Fields on page 330. • Enterprise
• Performance
The components available for a change set vary by edition. The following components are now • Unlimited
available for change sets. • Database.com
Action Link Group Template
Represents the action link group template. Action link templates let you reuse action link
definitions and package and distribute action links. An action link is a button on a feed element. Clicking on an action link can take

258
Salesforce Spring ’15 Release Notes Change Sets and Deployment

a user to another Web page, initiate a file download, or invoke an API call to an external server or Salesforce. Use action links to
integrate Salesforce and third-party services into the feed. Every action link belongs to an action link group and action links within
the group are mutually exclusive.
Matching Rule
Represents a matching rule that is used to identify duplicate records.
Named Credential
A named credential specifies the URL of a callout endpoint and its required authentication parameters in one definition. A named
credential can be specified as an endpoint to simplify the setup of authenticated callouts.

IN THIS SECTION:
Deploy Your Components in Less Time (Generally Available)
You can now deploy components to production by skipping the execution of all Apex tests for components that have been validated
within the last four days. With Quick Deploy, you no longer have to wait for all tests to run for your deployment to complete in
production, and your deployment will likely finish in less than 30 minutes.
Deploy and Retrieve More Components
The number of files that you can deploy or retrieve has doubled. With this limit increase, you can migrate components from a large
organization with more than 5,000 files without having to split deployments into smaller sets of components.
Delete Components before and after Component Updates
You can control when components are deleted in a deployment. Use a manifest to specify component deletions before updates,
and use another manifest to specify component deletions after updates. Specifying the processing order of deletions relative to
component updates provides you with greater flexibility and enables you to delete components with dependencies.
Change Sandbox Type When Refreshing
When you refresh a sandbox, you have the option to change to a different type of sandbox environment, depending on your available
sandbox licenses.

Deploy Your Components in Less Time (Generally Available)


You can now deploy components to production by skipping the execution of all Apex tests for components that have been validated
within the last four days. With Quick Deploy, you no longer have to wait for all tests to run for your deployment to complete in production,
and your deployment will likely finish in less than 30 minutes.
As part of a deployment, all Apex tests are run in production. If the production organization contains many Apex tests, the execution of
all tests can be time-consuming and can delay your deployment. To reduce deployment time to production, you can perform a quick
deployment by skipping the execution of all tests. Quick deployments are available for change sets and Metadata API components when
the following requirements are met.
• The components have been validated successfully for the target environment within the last four days (96 hours).
• As part of the validation, all Apex tests in the target organization have passed.
• The overall code coverage in the organization is at least 75%, and Apex triggers have some coverage.
A validation is a deployment that’s used only to check the results of deploying components and doesn’t save any components in the
organization. A validation enables you to view the success or failure messages that you would receive with an actual deployment. You
can validate change sets or metadata components through the API or the Force.com Migration Tool.
To learn how to validate a change set, see Validating a Change Set in the Salesforce Help.
To validate components with the Force.com Migration Tool, set the checkOnly option to true in the deploy target. See Deploying
Changes to a Salesforce Organization in the Force.com Migration Tool Guide.

259
Salesforce Spring ’15 Release Notes Change Sets and Deployment

Performing a Quick Deployment through the User Interface or the API


To perform a quick deployment, first run a validation-only deployment with Apex test execution on the set of components that you
need to deploy. If your validation succeeds and qualifies for a quick deployment, you can start a quick deployment.
You can quick-deploy validated change sets and Metadata API components in the user interface. In the Deployment Status page, deploy
a recent validation by clicking Quick Deploy next to your validation or on the validation’s detail page. This button appears only for
qualifying validations.

Alternatively, you can start a quick deployment through the Metadata API by calling deployRecentValidation() and passing
it the validation ID. Use this API call to deploy Metadata API components. This call doesn’t apply to change sets.

Note: Quick Deploy is enabled for recent validations in which all Apex tests have executed successfully and code coverage
requirements have been met. Note the following.
• Because Apex tests are required to run in production, quick deployments are supported in production for validations that meet
the criteria. You can deploy recent validations of change sets and Metadata API components (including components validated
by using the Force.com Migration Tool).
• When deploying to non-production environments (sandbox), Apex tests aren’t required and aren’t run automatically. When
you’re using Metadata API (including the Force.com Migration Tool), Quick Deploy is supported in sandbox only for validations
that explicitly enable the execution of tests (for example, via the runAllTests parameter for the Migration Tool). For
change sets, Quick Deploy is not supported in sandbox because there is no option to enable test runs for change sets in
sandbox.
• If you perform a deployment after a validation, whether through Quick Deploy or a regular deployment, all validations no
longer qualify for quick deployment. Revalidate the set of components that you need to quick-deploy.

Deploy and Retrieve More Components


The number of files that you can deploy or retrieve has doubled. With this limit increase, you can migrate components from a large
organization with more than 5,000 files without having to split deployments into smaller sets of components.
This table compares the old and new file limit for metadata components.

260
Salesforce Spring ’15 Release Notes Change Sets and Deployment

Table 3: Increased File Limit for Metadata Components


Description Old Limit New Limit
Maximum number of files that can be deployed or retrieved at a 5,000 files 10,000 files
time

This file limit applies to Metadata API and also to the number of files that are included as part of a change set. This limit increase doesn’t
affect the total size of all files that are deployed or retrieved, which remains at 400 MB.

Delete Components before and after Component Updates


You can control when components are deleted in a deployment. Use a manifest to specify component deletions before updates, and
use another manifest to specify component deletions after updates. Specifying the processing order of deletions relative to component
updates provides you with greater flexibility and enables you to delete components with dependencies.
To delete components, use the same procedure as with deploying components, but also include the appropriate delete manifest files.
The format of the delete manifest is the same as package.xml except that wildcards aren’t supported.
• To delete components before adding or updating other components, create a manifest file that’s named
destructiveChangesPre.xml and include the components to delete.
• To delete components after adding or updating other components, create a manifest file that’s named
destructiveChangesPost.xml and include the components to delete.
This feature applies to the Metadata API deploy() call or Metadata API-based tools, such as the Force.com Migration Tool.
The ability to specify when deletions are processed is useful when you’re deleting components with dependencies. For example, if a
custom object is referenced in an Apex class, you can’t delete it unless you modify the Apex class first to remove the dependency on
the custom object. In this example, you can perform a single deployment that updates the Apex class to clear the dependency and then
deletes the custom object by using destructiveChangesPost.xml. The following are samples of the package.xml and
destructiveChangesPost.xml manifests that would be used in this example.
Sample package.xml, which specifies the class to update:
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>SampleClass</members>
<name>ApexClass</name>
</types>
<version>33.0</version>
</Package>

Sample destructiveChangesPost.xml, which specifies the custom object to delete after the class update:
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>MyCustomObject__c</members>
<name>CustomObject</name>
</types>
</Package>

Note:
• The API version that the deployment uses is the API version that’s specified in package.xml.

261
Salesforce Spring ’15 Release Notes Visualforce

• The destructiveChangesPre.xml and destructiveChangesPost.xml manifests are supported starting


with API version 33.0. In earlier versions, only destructiveChanges.xml is supported. In API version 33.0 and later, if
the processing order for deletions and additions doesn’t matter, you can continue using destructiveChanges.xml.
• When you’re using destructiveChanges.xml, deletions are processed first by default.

Change Sandbox Type When Refreshing


When you refresh a sandbox, you have the option to change to a different type of sandbox
EDITIONS
environment, depending on your available sandbox licenses.
When you select one of your existing sandboxes to refresh, a list of your available licenses for each Available in:
type of sandbox (Developer, Developer Pro, Partial Copy, Full) appears. You can choose to change • Enterprise,
the type of sandbox environment during the refresh if you have an available license for that sandbox • Performance,
type. • Unlimited,
• Database.com

Visualforce
Develop apps that combine Visualforce and JavaScript, including Salesforce1 and other mobile
EDITIONS
apps.
Visualforce language and feature improvements make app development easier. Enhancements in Available in: Contact
this release are focused on improving the experience of developing apps that combine Visualforce, Manager, Group,
JavaScript, and location-based data. These release notes explain new features in this release, and Professional, Enterprise,
include concise code samples showing how these features can be used. Performance, Unlimited,
and Developer Editions
For complete details on features affected by these enhancements, refer to the Visualforce Developer’s
Guide.

IN THIS SECTION:
Use Visualforce Map Components to Show Location Data More Clearly
Visualforce mapping components make it simple to create maps that use third-party mapping services. Visualforce maps are
interactive, JavaScript-based maps complete with zooming, scrolling, and markers based on your Salesforce or other data. Create
stand-alone map pages, maps that you can insert into page layouts, and even mobile maps for Salesforce1.
New Attributes for <flow:interview>
Available in API version 33.0 and later, the <flow:interview> components supports a new attribute: allowShowPause.
Use this attribute to customize your users’ experience when pausing flows.
Change in Parameter Values for sforce.one.navigateToRelatedList()
The sforce.one JavaScript utility object is used to manage navigation for Salesforce1 apps written in Visualforce. The accepted
values for the relatedListId parameter of the navigateToRelatedList() function have changed to always use the
API names of related lists.
Change in Attribute Defaults for <apex:page> When in Salesforce1
Visualforce pages automatically suppress the display of the standard Salesforce header and sidebar when they’re displayed in
Salesforce1. Beginning in API version 33.0, the associated style sheets and JavaScript are also suppressed by default. This should
improve page performance.
URLs Returned by the URLFOR Function Optimized for Attachments
The URLFOR function has been optimized for use with attachments in Visualforce.

262
Salesforce Spring ’15 Release Notes Visualforce

Change in Activation Date for “Serve Static Resources from the Visualforce Domain” Critical Update
Salesforce issued a critical update in the Winter ’15 release, available in the Critical Update Console (CRUC), titled “Serve Static
Resources from the Visualforce Domain.” This critical update originally had an auto-activation date of 12/11/2014. In order to give
customers and partners more time to validate and resolve issues that have arisen from this change, this critical update has been
postponed until the Summer ’15 release, and the update is no longer visible in the Critical Update Console.

Use Visualforce Map Components to Show Location Data More Clearly


Visualforce mapping components make it simple to create maps that use third-party mapping services. Visualforce maps are interactive,
JavaScript-based maps complete with zooming, scrolling, and markers based on your Salesforce or other data. Create stand-alone map
pages, maps that you can insert into page layouts, and even mobile maps for Salesforce1.
Create Visualforce maps with a set of related mapping components. <apex:map> defines a map canvas, including map size, type,
center point, and initial zoom level. <apex:mapMarker> child components define markers to place on the map, by address or
geolocation (latitude and longitude).
Maps that you define generate JavaScript code to render onto the page. This JavaScript connects to a mapping service and builds the
map by fetching map tiles, placing markers, and even geocoding addresses if you don’t have a latitude and longitude. After the map
renders, your users can interact with the map by panning and zooming, just like they’re used to with other popular map sites. The effect
is if you wrote your own custom JavaScript to interact with a third-party mapping service, but without needing to actually write that
JavaScript. You define the map in Visualforce and get the mapping JavaScript for free.

Note: Visualforce mapping components aren’t currently available in Developer Edition organizations.

Example of Using Visualforce Map Components


Here’s a page that shows a list of contacts for an account, centered on the account’s address.
<apex:page standardController="Account">

<!-- This page must be accessed with an Account Id in the URL. For example:
https://<salesforceInstance>/apex/NearbyContacts?id=001D000000JRBet -->

<apex:pageBlock >
<apex:pageBlockSection title="Contacts For {! Account.Name }">

<apex:dataList value="{! Account.Contacts }" var="contact">


<apex:outputText value="{! contact.Name }" />
</apex:dataList>

<apex:map width="600px" height="400px" mapType="roadmap"


center="{!Account.BillingStreet},{!Account.BillingCity},{!Account.BillingState}">

<apex:repeat value="{! Account.Contacts }" var="contact">


<apex:mapMarker title="{! contact.Name }"
position="{!contact.MailingStreet},{!contact.MailingCity},{!contact.MailingState}"

/>
</apex:repeat>

</apex:map>

</apex:pageBlockSection>

263
Salesforce Spring ’15 Release Notes Visualforce

</apex:pageBlock>

</apex:page>

The preceding code produces the following map.

For details of how to use the new mapping components, including additional code samples, see “Creating Maps with Visualforce” in the
Visualforce Developer’s Guide.

New Attributes for <flow:interview>


Available in API version 33.0 and later, the <flow:interview> components supports a new attribute: allowShowPause. Use
this attribute to customize your users’ experience when pausing flows.
allowShowPause
After you embed a flow in a Visualforce page, consider whether you want to let users pause flows from that page. This is a good way
to allow some users to pause a certain flow, but not others. Set the allowShowPause attribute for <flow:interview> to
false to prevent users from pausing.

Change in Parameter Values for sforce.one.navigateToRelatedList()


The sforce.one JavaScript utility object is used to manage navigation for Salesforce1 apps written in Visualforce. The accepted
values for the relatedListId parameter of the navigateToRelatedList() function have changed to always use the API
names of related lists.
Previously, some standard lists used an internal ID instead of the API name. These internal IDs weren’t documented, were hard to discover,
and couldn’t be retrieved dynamically. In Spring ’15 they are no longer supported. If you’ve used
sforce.one.navigateToRelatedList() to navigate to related lists in your Salesforce1 apps, you might need to update
any hard-coded parameter values.

264
Salesforce Spring ’15 Release Notes Visualforce

Change in Attribute Defaults for <apex:page> When in Salesforce1


Visualforce pages automatically suppress the display of the standard Salesforce header and sidebar when they’re displayed in Salesforce1.
Beginning in API version 33.0, the associated style sheets and JavaScript are also suppressed by default. This should improve page
performance.
In standard Visualforce the showHeader, sidebar, and standardStylesheet attributes of <apex:page> default to
true, which means that the standard Salesforce header and sidebar are displayed, and Salesforce styles are used for the page.
When the same page is displayed within Salesforce1, the header and sidebar are removed automatically, in favor of the mobile-optimized
user interface of Salesforce1. However, in prior releases this behavior only removed the HTML for the header and sidebar. With this
change, the showHeader, sidebar, and standardStylesheet attributes default to false when the page is rendered in
the Salesforce1 app container (either the Salesforce1 mobile app, or one.app in a standard browser).
The effect of the change is to suppress the inclusion of Salesforce style sheets and JavaScript that are used for the header and sidebar
when the page is rendered in Salesforce1. The overall result is to reduce the size of the resources that are sent to the page, which
sometimes improves performance, especially for slow network connections.
This change is versioned. Set your page to API version 33.0 or later to invoke the new behavior.

Note: If a page includes standard Visualforce user interface components that require styles or JavaScript—for example,
<apex:inputField>—Visualforce sometimes includes standard resources that are otherwise suppressed. This inclusion of
resources is required to maintain component functionality.

URLs Returned by the URLFOR Function Optimized for Attachments


The URLFOR function has been optimized for use with attachments in Visualforce.
Previously, when used with attachments, the URLFOR function returned a URL that responded with a redirect, which provided the “real”
URL for the attachment download. If a page includes many of these expressions on a page, the additional network requests sometimes
caused the page to load more slowly than expected. With this change, URLFOR returns the direct URL for the attachment, which improves
page performance.
This change only affects URLFOR responses when they’re used with attachments, as in the following sample code.
<apex:page standardController="Attachment">
<apex:outputLink
value="{!URLFOR($Action.Attachment.Download, Attachment.id)}">
Download Now!
</apex:outputLink>

<apex:image value="{!URLFOR($Action.Attachment.Download, Attachment.id)}"/>


</apex:page>

Change in Activation Date for “Serve Static Resources from the Visualforce Domain”
Critical Update
Salesforce issued a critical update in the Winter ’15 release, available in the Critical Update Console (CRUC), titled “Serve Static Resources
from the Visualforce Domain.” This critical update originally had an auto-activation date of 12/11/2014. In order to give customers and
partners more time to validate and resolve issues that have arisen from this change, this critical update has been postponed until the
Summer ’15 release, and the update is no longer visible in the Critical Update Console.
A new activation date will be published when this critical update is re-enabled.

265
Salesforce Spring ’15 Release Notes Apex Code

Apex Code
Using syntax that looks like Java and acts like database stored procedures, Apex enables developers
EDITIONS
to add business logic to most system events, including button clicks, related record updates, and
Visualforce pages. Apex code execution can be initiated by Web service requests and from triggers Available in: Enterprise,
on objects. Performance, Unlimited,
Apex includes the following enhancements. For detailed information on these enhancements, refer Developer, and
to the Force.com Apex Code Developer's Guide. Database.com Editions

IN THIS SECTION:
Submit More Batch Jobs with Apex Flex Queue (Generally Available)
Submit up to 100 batch jobs simultaneously and actively manage the order of the queued jobs to control which batch jobs are
processed first. This enhancement provides you more flexibility in managing your batch jobs.
Make Long-Running Callouts from a Visualforce Page
Use asynchronous callouts to make long-running requests from a Visualforce page to an external Web service and process responses
in callback methods. Asynchronous callouts that are made from a Visualforce page don’t count toward the Apex limit of 10 synchronous
requests that last longer than five seconds. As a result, you can make more long-running callouts and you can integrate your Visualforce
pages with complex back-end assets.
Set Up Test Data for an Entire Test Class
Use test setup methods (methods that are annotated with @testSetup) to create test records once and then access them in
every test method in the test class. Test setup methods can be time-saving when you need to create reference or prerequisite data
for all test methods, or a common set of records that all test methods operate on.
Chain More Jobs with Queueable Apex
Queueable Apex was introduced in Winter ’15 and enables you to easily start and manage asynchronous processes. Previously, you
could chain a queueable job to another job only once. You can now chain a job to another job an unlimited number of times. For
Developer Edition and Trial organizations, your chain can have up to five queueable jobs.
Access Address and Geolocation Compound Fields Using Apex
You can now access address and geolocation compound fields in Apex using the new Address and Location classes. You
could previously access only compound fields’ component fields in Apex. You can now query compound fields and their components
using the new Address and Location class methods.
Make Apex Callouts with More Data
The callout size limit for requests and responses has been increased to the heap size limit. With a larger callout size for requests and
responses, you can send and receive more data from an external Web service.
List Apex Classes and Triggers With a Tooling API Endpoint
Use the apexManifest Tooling API endpoint to list all of your Apex classes and triggers, including global classes and triggers
from your installed managed packages. Rather than querying both the ApexClass and ApexTrigger objects, you can retrieve a quick
list of both classes and triggers with just one API call. Unlike ApexClass, apexManifest retrieves your inner classes—previously,
you needed to get and parse the symbol table to retrieve your inner classes.
Simplify Authenticated Apex Callouts by Specifying Named Credentials as Endpoints
A named credential specifies the URL of a callout endpoint and its required authentication parameters in one definition. Salesforce
manages all the authentication for Apex callouts that specify a named credential as the callout endpoint, so that your code doesn’t
have to.

266
Salesforce Spring ’15 Release Notes Apex Code

Check Data Isolation Mode for Executed Tests in the Apex SOAP API
The RunTestSuccess and RunTestFailure Apex API objects now contain the seeAllData boolean field. This field indicates whether
the test method has access to organization data and helps you troubleshoot test failures.
String Methods Fixed for Escaping Additional Characters
When you activate this update, these Apex String methods will escape additional characters: escapeHtml3, escapeHtml4,
and escapeEcmaScript.
Code Coverage Bug Fixes
Code coverage numbers in your organization can change because of enhancements we made to fix bugs in code coverage. If your
organization hasn’t changed, and you haven’t added new Apex code, these enhancements can cause different code coverage results
than prior to Spring ’15.
Predictable Iteration Order for Unordered Collections
This update causes the iteration order of unordered collections (Map and Set) to be deterministic. When you activate this critical
update, the order of elements in maps and sets is the same every time your code is run again. This update can cause a different
iteration order for maps and sets than the current order.
New and Changed Apex Classes
These classes, methods, annotations, and interfaces are new or have changed in this release.

Submit More Batch Jobs with Apex Flex Queue (Generally Available)
Submit up to 100 batch jobs simultaneously and actively manage the order of the queued jobs to control which batch jobs are processed
first. This enhancement provides you more flexibility in managing your batch jobs.

Note: For all new organizations in Spring ’15, Apex Flex Queue is enabled by default. To enable Apex Flex Queue in an existing
organization, activate the Apex Flex Queue critical update in Setup.
This update doesn’t change the way you submit batch jobs but enables you to submit more batch jobs than before. This update
doesn’t affect the existing behavior of processing batch jobs after they’re queued. The Holding status has been added for batch
jobs, which might affect queries against AsyncApexJob.
See “Critical Updates Overview” in the Salesforce Help for more details about critical updates.

Previously, you could submit only up to five batch jobs simultaneously. The Apex flex queue enables you to submit up to 100 additional
batch jobs for execution. Any jobs that are submitted for execution are in holding status and are placed in the Apex flex queue. Up to
100 batch jobs can be in the holding status. When system resources become available, the system picks up jobs from the top of the
Apex flex queue and moves them to the batch job queue. The system can process up to five queued or active jobs simultaneously. The
status of these moved jobs changes from Holding to Queued. Queued jobs get executed when the system is ready to process new
jobs.
Administrators can modify the order of jobs that are held in the Apex flex queue to control when they get processed by the system. For
example, administrators can move a batch job up to the first position in the holding queue so that it’s the first job that gets processed
when the system fetches the next held job from the flex queue. Without administrator intervention, jobs are processed first-in first-out—in
the order in which they’re submitted. To monitor and reorder held batch jobs in the Salesforce user interface, from Setup click Jobs >
Apex Flex Queue.

Submitting Jobs by Calling Database.executeBatch


When you submit batch jobs by calling Database.executeBatch, the system places your batch job in Holding status before
processing the job.
The outcome of Database.executeBatch is as follows.

267
Salesforce Spring ’15 Release Notes Apex Code

• The batch job is placed in the Apex flex queue, and its status is set to Holding.
• If the Apex flex queue has the maximum number of 100 jobs, Database.executeBatch throws a LimitException
and doesn’t add the job to the queue.
When system resources become available, the system picks up the next job from the top of the flex queue for processing and changes
its status to Queued.

New AsyncApexJob Status Field Value


The AsyncApexJob object, which represents a batch job, has a new Status field value of Holding. This new status indicates that
the job is placed in the flex queue and is waiting to be processed when system resources become available.

Make Long-Running Callouts from a Visualforce Page


Use asynchronous callouts to make long-running requests from a Visualforce page to an external Web service and process responses in
callback methods. Asynchronous callouts that are made from a Visualforce page don’t count toward the Apex limit of 10 synchronous
requests that last longer than five seconds. As a result, you can make more long-running callouts and you can integrate your Visualforce
pages with complex back-end assets.
An asynchronous callout is a callout that is made from a Visualforce page for which the response is returned through a callback method.
An asynchronous callout is also referred to as a continuation.
This diagram shows the execution path of an asynchronous callout, starting from a Visualforce page. A user invokes an action on a
Visualforce page that requests information from a Web service (step 1). The app server hands the callout request to the Continuation
server before returning to the Visualforce page (steps 2–3). The Continuation server sends the request to the Web service and receives
the response (steps 4–7), then hands the response back to the app server (step 8). Finally, the response is returned to the Visualforce
page (step 9).

Execution Flow of an Asynchronous Callout

A typical Salesforce application that benefits from asynchronous callouts is one that contains a Visualforce page with a button that users
click to get data from an external Web service. For example, the Visualforce page might get warranty information for a certain product
from a Web service. This page can be used by thousands of agents in the organization. Consequently, a hundred of those agents might
click the same button to process warranty information for products at the same time. These hundred simultaneous actions exceed the
limit of concurrent long-running requests of 10, but by using asynchronous callouts, the requests aren’t subjected to this limit and can
be executed.

268
Salesforce Spring ’15 Release Notes Apex Code

In the following example application, the button action is implemented in an Apex controller method. The action method creates a
Continuation and returns it. After the the request is sent to the service, the Visualforce request is suspended. The user must wait
for the response to be returned before proceeding with using the page and invoking new actions. When the external service returns a
response, the Visualforce request resumes and the page receives this response.
This is the Visualforce page of our sample application. This page contains a button that invokes the startRequest method of the
controller that’s associated with this page. After the continuation result is returned and the callback method is invoked, the button
renders the outputText component again to display the body of the response.
<apex:page controller="ContinuationController" showChat="false" showHeader="false">
<apex:form >
<!-- Invokes the action method when the user clicks this button. -->
<apex:commandButton action="{!startRequest}"
value="Start Request" reRender="result"/>
</apex:form>

<!-- This output text component displays the callout response body. -->
<apex:outputText id="result" value="{!result}" />
</apex:page>

The following is the Apex controller that’s associated with the Visualforce page. This controller contains the action and callback methods.

Note: Before you can call an external service, you must add the remote site to a list of authorized remote sites in the Salesforce
user interface. From Setup, click Security Controls > Remote Site Settings, and then click New Remote Site.
public with sharing class ContinuationController {
// Unique label corresponding to the continuation
public String requestLabel;
// Result of callout
public String result {get;set;}
// Endpoint of long-running service
private static final String LONG_RUNNING_SERVICE_URL =
'<Insert your service URL>';

// Action method
public Object startRequest() {
// Create continuation with a timeout
Continuation con = new Continuation(40);
// Set callback method
con.continuationMethod='processResponse';

// Create callout request


HttpRequest req = new HttpRequest();
req.setMethod('GET');
req.setEndpoint(LONG_RUNNING_SERVICE_URL);

// Add callout request to continuation


this.requestLabel = con.addHttpRequest(req);

// Return the continuation


return con;
}

// Callback method
public Object processResponse() {

269
Salesforce Spring ’15 Release Notes Apex Code

// Get the response by using the unique label


HttpResponse response = Continuation.getResponse(this.requestLabel);
// Set the result variable that is displayed on the Visualforce page
this.result = response.getBody();

// Return null to re-render the original Visualforce page


return null;
}
}

Note:
• You can make up to three asynchronous callouts in a single continuation. Add these callout requests to the same continuation
by using the addHttpRequest method of the Continuation class. The callouts run in parallel for this continuation
and suspend the Visualforce request. Only after all callouts are returned by the external service for does the Visualforce process
resume.
• Asynchronous callouts are supported only through a Visualforce page. Making an asynchronous callout by invoking the action
method outside a Visualforce page, such as in the Developer Console, isn’t supported.
• Asynchronous callouts are available for Apex controllers and Visualforce pages saved in version 30.0 and later. If JavaScript
remoting is used, version 31.0 or later is required.

Set Up Test Data for an Entire Test Class


Use test setup methods (methods that are annotated with @testSetup) to create test records once and then access them in every
test method in the test class. Test setup methods can be time-saving when you need to create reference or prerequisite data for all test
methods, or a common set of records that all test methods operate on.
Test setup methods can reduce test execution times especially when you’re working with many records. Test setup methods enable
you to create common test data easily and efficiently. By setting up records once for the class, you don’t need to re-create records for
each test method. Also, because the rollback of records that are created during test setup happens at the end of the execution of the
entire class, the number of records that are rolled back is reduced. As a result, system resources are used more efficiently compared to
creating those records and having them rolled back for each test method.
If a test class contains a test setup method, the testing framework executes the test setup method first, before any test method in the
class. Records that are created in a test setup method are available to all test methods in the test class and are rolled back at the end of
test class execution. If a test method changes those records, such as record field updates or record deletions, those changes are rolled
back after each test method finishes execution. The next executing test method gets access to the original unmodified state of those
records.

Syntax
Test setup methods are defined in a test class, take no arguments, and return no value. The following is the syntax of a test setup method.
@testSetup static void methodName() {

270
Salesforce Spring ’15 Release Notes Apex Code

Example
The following example shows how to create test records once and then access them in multiple test methods. Also, the example shows
how changes that are made in the first test method are rolled back and are not available to the second test method.
@isTest
private class CommonTestSetup {

@testSetup static void setup() {


// Create common test accounts
List<Account> testAccts = new List<Account>();
for(Integer i=0;i<2;i++) {
testAccts.add(new Account(Name = 'TestAcct'+i));
}
insert testAccts;
}

@isTest static void testMethod1() {


// Get the first test account by using a SOQL query
Account acct = [SELECT Id FROM Account WHERE Name='TestAcct0' LIMIT 1];
// Modify first account
acct.Phone = '555-1212';
// This update is local to this test method only.
update acct;

// Delete second account


Account acct2 = [SELECT Id FROM Account WHERE Name='TestAcct1' LIMIT 1];
// This deletion is local to this test method only.
delete acct2;

// Perform some testing


}

@isTest static void testMethod2() {


// The changes made by testMethod1() are rolled back and
// are not visible to this test method.
// Get the first account by using a SOQL query
Account acct = [SELECT Phone FROM Account WHERE Name='TestAcct0' LIMIT 1];
// Verify that test account created by test setup method is unaltered.
System.assertEquals(null, acct.Phone);

// Get the second account by using a SOQL query


Account acct2 = [SELECT Id FROM Account WHERE Name='TestAcct1' LIMIT 1];
// Verify test account created by test setup method is unaltered.
System.assertNotEquals(null, acct2);

// Perform some testing


}

271
Salesforce Spring ’15 Release Notes Apex Code

Test Setup Method Considerations


• Test setup methods are supported only with the default data isolation mode for a test class. If the test class or a test method has
access to organization data by using the @isTest(SeeAllData=true) annotation, test setup methods aren’t supported in
this class. Because data isolation for tests is available for API versions 24.0 and later, test setup methods are also available for those
versions only.
• Multiple test setup methods are allowed in a test class, but the order in which they’re executed by the testing framework isn’t
guaranteed.
• If a fatal error occurs during the execution of a test setup method, such as an exception that’s caused by a DML operation or an
assertion failure, the entire test class fails, and no further tests in the class are executed.
• If a test setup method calls a non-test method of another class, no code coverage is calculated for the non-test method.

Chain More Jobs with Queueable Apex


Queueable Apex was introduced in Winter ’15 and enables you to easily start and manage asynchronous processes. Previously, you
could chain a queueable job to another job only once. You can now chain a job to another job an unlimited number of times. For
Developer Edition and Trial organizations, your chain can have up to five queueable jobs.
Chaining jobs is useful when you need to run a job after some other processing is done. To chain a job to another job, submit the second
job from the execute() method of your Queueable class. For example, if you have a second class that’s called SecondJob that
implements the Queueable interface, you can add this class to the queue in the execute() method as follows:
public class AsyncExecutionExample implements Queueable {
public void execute(QueueableContext context) {
// Your processing logic here

// Chain this job to next job by submitting the next job


System.enqueueJob(new SecondJob());
}
}

Only one job can be started by a queueable job in the chain.

Access Address and Geolocation Compound Fields Using Apex


You can now access address and geolocation compound fields in Apex using the new Address and Location classes. You could
previously access only compound fields’ component fields in Apex. You can now query compound fields and their components using
the new Address and Location class methods.
Declare a variable of type Address or Location first, then access the subfields on that variable. For example, you can retrieve the
city, zip code, and state values on an address field.
Account acct = [SELECT BillingAddress FROM account WHERE name='Acme' LIMIT 1];
Address addr = acct.BillingAddress;
String acctCity = addr.city;
String acctZipCode = addr.postalCode;
String acctState = addr.state;

Or, you can retrieve the latitude and longitude values of a geolocation field.
Account acct2 = [SELECT id, MyLocation__c FROM Account WHERE Name='Cloud Computing' LIMIT
1];
Location loc = acct2.MyLocation__c;

272
Salesforce Spring ’15 Release Notes Apex Code

Double lat = loc.latitude;


Double lon = loc.longitude;

Make Apex Callouts with More Data


The callout size limit for requests and responses has been increased to the heap size limit. With a larger callout size for requests and
responses, you can send and receive more data from an external Web service.
This table compares the old and new limits for callout request and response sizes.

Table 4: Increased Callout Size Limits


Description Old Limit New Limit
Maximum size of callout request or response (HTTP request or Web 3 MB 6 MB for synchronous Apex or
services call) 12 MB for asynchronous Apex

List Apex Classes and Triggers With a Tooling API Endpoint


Use the apexManifest Tooling API endpoint to list all of your Apex classes and triggers, including global classes and triggers from
your installed managed packages. Rather than querying both the ApexClass and ApexTrigger objects, you can retrieve a quick list of
both classes and triggers with just one API call. Unlike ApexClass, apexManifest retrieves your inner classes—previously, you
needed to get and parse the symbol table to retrieve your inner classes.

Example: To retrieve your Apex classes and triggers, and the global Apex classes and triggers from your installed managed
packages:
req.setEndpoint('http://na1.salesforce.com/services/data/v33.0/tooling/apexManifest');
req.setMethod('GET');

Simplify Authenticated Apex Callouts by Specifying Named Credentials as Endpoints


A named credential specifies the URL of a callout endpoint and its required authentication parameters in one definition. Salesforce
manages all the authentication for Apex callouts that specify a named credential as the callout endpoint, so that your code doesn’t have
to.
You can instead specify a URL as the callout endpoint and register that URL in your organization’s remote site settings. In that case,
however, you handle the authentication in your code. Doing so can be less secure and especially complicated for OAuth authentication.
For more information, see “Define a Named Credential” in the Salesforce Help.

Example: In the following sample code, a named credential and an appended path specify the callout’s endpoint.
HttpRequest req = new HttpRequest();
req.setEndpoint('callout:My_Named_Credential/some_path');
req.setMethod('GET');
Http http = new Http();
HTTPResponse res = http.send(req);
System.debug(res.getBody());

The referenced named credential specifies the endpoint URL and the authentication settings.

273
Salesforce Spring ’15 Release Notes Apex Code

You can code the callout endpoint as the URL instead of the named credential, but your code then handles the authentication.
Our example uses basic password authentication, but keep in mind that OAuth authentication is much more complex and best
handled with named credentials.
HttpRequest req = new HttpRequest();
req.setEndpoint('https://my_endpoint.example.com/some_path');
req.setMethod('GET');

// Specify the required user name and password to access the endpoint
// As well as the header and header information

String username = 'myname';


String password = 'mypwd';

Blob headerValue = Blob.valueOf(username + ':' + password);


String authorizationHeader = 'BASIC ' +
EncodingUtil.base64Encode(headerValue);
req.setHeader('Authorization', authorizationHeader);

// Create a new http object to send the request object


// A response object is generated as a result of the request

Http http = new Http();


HTTPResponse res = http.send(req);
System.debug(res.getBody());

Check Data Isolation Mode for Executed Tests in the Apex SOAP API
The RunTestSuccess and RunTestFailure Apex API objects now contain the seeAllData boolean field. This field indicates whether
the test method has access to organization data and helps you troubleshoot test failures.
If you run Apex tests through the Apex SOAP API by calling runTests() or compileAndTest(), RunTestsResult contains the
results of all tests. For each success or failure of a test method, RunTestsResult contains a corresponding RunTestSuccess or RunTestFailure
object respectively. You can inspect the seeAllData boolean field on these objects to determine whether the test method had
access to organization data during the test run.

274
Salesforce Spring ’15 Release Notes Apex Code

String Methods Fixed for Escaping Additional Characters


When you activate this update, these Apex String methods will escape additional characters: escapeHtml3, escapeHtml4, and
escapeEcmaScript.
Currently, these String methods don’t escape certain characters. When you activate this update, these methods will escape the following
additional characters.
• escapeHtml3: ' (single quote)
• escapeHtml4: ' (single quote)
• escapeEcmaScript: < (opening angle bracket) and > (closing angle bracket)
This update changes the behavior of the affected String class methods for all API versions.

Code Coverage Bug Fixes


Code coverage numbers in your organization can change because of enhancements we made to fix bugs in code coverage. If your
organization hasn’t changed, and you haven’t added new Apex code, these enhancements can cause different code coverage results
than prior to Spring ’15.
One possible reason for a miscalculation was caused when a row was manually deleted from the ApexCodeCoverageAggregate Tooling
API object. The deleted row wasn’t recreated when rerunning tests, resulting in incorrect code coverage numbers. The row is now
recreated in ApexCodeCoverageAggregate when tests are run again. Also, some other code coverage calculation bugs were fixed.
Because of these issues, the overall code coverage sometimes differed from the coverage reported during a deployment or package
install. To ensure that you have the latest code coverage percentage in your organization, refresh your code coverage by rerunning tests.
To learn more about troubleshooting code coverage in your deployments, check out this knowledge article. For code coverage tips, see
Code Coverage Best Practices in the Force.com Apex Code Developer's Guide.

Predictable Iteration Order for Unordered Collections


This update causes the iteration order of unordered collections (Map and Set) to be deterministic. When you activate this critical
update, the order of elements in maps and sets is the same every time your code is run again. This update can cause a different iteration
order for maps and sets than the current order.
Without this update, the order of elements in unordered collections is arbitrary—you can’t rely on the order of elements in maps and
sets. Ideally, code shouldn’t depend on the order of elements in unordered collections. If you have such code, it could sometimes fail
before this update. This update makes your code more robust because the iteration order in unordered collections is always the same.
This update affects all API versions. After you apply this update, any code that exercises order-dependent logic on unordered collections
could fail. Ensure that you fix any failures in your code.
For example, this snippet shows code that can fail if the order of map elements changes.
Map<String, String> currencyMap = new Map<String, String>();
currencyMap.put('France','Euro');
currencyMap.put('Japan', 'Yen');
// Convert the map to a string.
String currencies = String.valueOf(currencyMap);
// This statement compares the string representation of the map
// to an expected string.
// This assertion might fail if the order of the elements changes.
System.assertEquals('{France=Euro, Japan=Yen}', currencies);

For more information about critical updates, see “Critical Updates Overview” in the Salesforce Help.

275
Salesforce Spring ’15 Release Notes Apex Code

New and Changed Apex Classes


These classes, methods, annotations, and interfaces are new or have changed in this release.

New Methods
The following class has new methods.
System.Test Class
invokeContinuationMethod(Object, Continuation)
Invokes the callback method for the specified controller and continuation in a test method.
setContinuationResponse(String, System.HttpResponse)
Sets a mock response for a continuation HTTP request in a test method.

Changed Methods
The following classes have changed methods.
Auth.SessionManagement Class
getCurrentSession()
The returned map now also includes the LoginHistoryId and LoginDomain values. The LoginHistoryId value
is an 18-character ID for a successful login event. The LoginDomain value is the domain associated with the current session,
and is used to help prevent access from other domains. For more information, see Improve Security with Session Domain Locking.
validateTotpTokenForKey(String, String)
This method now throws an invalid parameter value exception if the shared key is invalid, a no data found exception if the key
doesn’t exist, and a security exception if the current user exceeds the maximum of 10 token validation attempts. In previous
releases, all of these circumstances threw an unexpected exception.
Flow.Interview Class
start()
In addition to autolaunched flows, this method also supports user provisioning flows.

Note: This release contains a beta version of user provisioning for connected apps that is production quality but has
known limitations. For information on enabling this feature for your organization, contact Salesforce.

Objects That Support Triggers


You can now create triggers for the following object.
ChatterMessage
To create a trigger for private messages from Setup, click Customize > Chatter > Triggers > ChatterMessage Triggers. Alternatively,
you can create a trigger from the Developer Console by clicking File > New > Apex Trigger, and then selecting ChatterMessage
from the sObject drop-down list.

New Annotations
The following annotations have been added.
InvocableMethod
Use the InvocableMethod annotation to identify methods that can be run as invocable actions.

276
Salesforce Spring ’15 Release Notes Apex Code

InvocableVariable
Use the InvocableVariable annotation to identify variables used by invocable methods in custom classes.
For more information, see Invocable Actions.

New Classes
The following classes have been added.
Database.DMLOptions.DuplicateRuleHeader Class
Determines whether a record that’s identified as a duplicate can be saved. Duplicate rules are part of the Duplicate Management
feature.
allowSave
Set to true to save the duplicate record. Set to false to prevent the duplicate record from being saved.
Database.DuplicateError Class
Contains information about an error that occured when an attempt was made to save a duplicate record. Use if your organization
has set up duplicate rules, which are part of the Duplicate Management feature.
getDuplicateResult()
Returns the details of a duplicate rule and duplicate records found by the duplicate rule.
getFields()
Returns an array of one or more field names. Identifies which fields in the object, if any, affected the error condition.
getMessage()
Returns the error message text.
getStatusCode()
Returns a code that characterizes the error.
Datacloud.AdditionalInformationMap Class
Represents other information, if any, about the matched records.
getName()
Returns the element name.
getValue()
Returns the value of the element.
Datacloud.DuplicateResult Class
Represents the details of a duplicate rule that detected duplicate records and information about those duplicate records.
getDuplicateRule()
Returns the developer name of the executed duplicate rule that returned duplicate records.
getErrorMessage()
Returns the error message configured by the administrator to warn users they may be creating duplicate records. This message
is associated with a duplicate rule.
getMatchResults()
Returns the duplicate records and match information.
isAllowSave()
Indicates whether the duplicate rule will allow a record that’s identified as a duplicate to be saved. Set to true if duplicate rule
should allow save; otherwise, false.
Datacloud.FieldDiff Class
Represents all fields and their values for a duplicate and its matching record.

277
Salesforce Spring ’15 Release Notes Apex Code

getDifference()
Returns how the field values compare for the duplicate and its matching record.
getName()
Returns the name of the field that is different between two matched records.
Datacloud.MatchRecord Class
Represents a duplicate record.
getAdditionalInformation()
Returns other information about a matched record. For example, a matchGrade represents the quality of the data for the
D&B fields in the matched record.
getFieldDiffs()
Returns all fields and field values for the duplicate and its matching record.
getMatchConfidence()
Returns the ranking of how similar a matched record’s data is to the data in your request. Must be equal to or greater than the
value of the minMatchConfidence specified in your request. Returns -1 if unused.
getRecord()
Returns the fields and field values for the duplicate.
Datacloud.MatchResult Class
Represents the duplicate results for a matching rule.
getEntityType()
Returns the entity type of the matching rule.
getErrors()
Returns errors that occurred during matching for the matching rule.
getMatchEngine()
Returns the match engine for the matching rule.
getMatchRecords()
Returns information about the duplicates for the matching rule.
getRule()
Returns the developer name of the matching rule.
getSize()
Returns the number of duplicates detected by the matching rule.
isSuccess()
Returns false if there’s an error with the matching rule, and true if the matching rule successfully ran.
Reports.EvaluatedCondition Class
Contains the individual components of an evaluated condition for a report notification, such as the aggregate name and label, the
operator, and the value that the aggregate is compared to.
getAggregateLabel()
Returns the localized display name of the aggregate.
getAggregateName()
Returns the unique API name of the aggregate.
getCompareTo()
Returns the value that the aggregate is compared to in the condition.

278
Salesforce Spring ’15 Release Notes Apex Code

getOperator()
Returns operator used in the condition.
getValue()
Returns the actual value of the aggregate when the report is run.
Reports.NotificationActionContext Class
Contains information about the report instance and threshold information for a report notification.
getReportInstance()
Returns the report instance associated with the notification.
getThresholdInformation()
Returns the threshold information associated with the notification.
Reports.ThresholdNotification Class
Contains a list of evaluated conditions for a report notification.
getEvaluatedConditions()
Returns a list of evaluated conditions for the notification.
System.Address Class
Contains methods for accessing the component fields of address compound fields.
getCity()
Returns the city field of this address.
getCountry()
Returns the text-only country name component of this address.
getCountryCode()
Returns the country code of this address if state and country picklists are enabled in your organization.
getDistance(Location, String)
Returns the distance from this location to the specified location using the specified unit.
getLatitude()
Returns the latitude field of this address.
getLongitude()
Returns the longitude field of this address.
getPostalCode()
Returns the postal code of this address.
getState()
Returns the text-only state name component of this address.
getStateCode()
Returns the state code of this address if state and country picklists are enabled in your organization.
getStreet()
Returns the street field of this address.
System.Continuation Class
Use the Continuation class to make callouts asynchronously to a SOAP or REST Web service.
Constructors:
Continuation(Integer)
Creates an instance of the Continuation class by using the specified timeout in seconds. The timeout limit is 60 seconds.
Properties:

279
Salesforce Spring ’15 Release Notes Apex Code

continuationMethod
The name of the callback method that is called after the callout response returns.
timeout
The timeout of the continuation in seconds. Limit: 60 seconds.
state
Data that is stored in this continuation and that can be retrieved after the callout is finished and the callback method is invoked.
Methods:
addHttpRequest(HttpRequest)
Adds the HTTP request for the callout that is associated with this continuation.
getRequests()
Returns all labels and requests that are associated with this continuation as key-value pairs.
getResponse(String)
Returns the response for the request that corresponds to the specified label.
System.Location Class
Contains methods for accessing the component fields of geolocation compound fields.
getDistance(Location, String)
Calculates the distance between this location and the specified location using the specified unit.
getDistance(Location, Location, String)
Calculates the distance between two points, using an approximation of the haversine formula and the specified unit.
getLatitude()
Returns the latitude field of this location.
getLongitude()
Returns the longitude field of this location.
newInstance(Decimal, Decimal)
Creates a location by using the specified latitude and longitude.
UserProvisioning.UserProvisioningLog Class
Provides methods for writing messages to monitor outbound user provisioning requests.
log(String, String, String, String, String)
Writes a specific message, such as an error message, to monitor the progress of a user provisioning request. This method has
three variations: a message associated with a user provisioning request, a message and status associated with a user provisioning
request or a message associated with a user provisioning request and an individual user.
UserProvisioning.UserProvisioningPlugin Class
The UserProvisioningPlugin base class implements Process.Plugin for programmatic customization of the user
provisioning process for connected apps.
buildDescribeCall()
Use this method to add more input and output parameters to those defined in the base class.
describe()
Returns a Process.PluginDescribeResult object that describes this method call.
getPluginClassName()
Returns the name of the class implementing the plugin.
invoke(Process.PluginRequest)
Primary method that the system invokes when the class that implements the interface is instantiated.

280
Salesforce Spring ’15 Release Notes Apex Code

New Interfaces
The following interfaces have been added.
Auth.SamlJitHandler interface:
Use this interface to control and customize Just-in-Time user provisioning logic during SAML single sign-on.
createUser(Id, Id, Id, String, Map<String,String>, String)
Returns a User object using the specified Federation ID. The User object corresponds to the user information and may be a new
user that hasn’t t been inserted in the database or may represent an existing user record in the database.
updateUser(Id, Id, Id, Id, String, Map<String,String>, String)
Updates the specified user’s information. This method is called if the user has logged in before with SAML single sign-on and
then logs in again, or if your application is using the Existing User Linking URL.
Reports.NotificationAction interface:
Report notifications for reports that users have subscribed to can trigger a custom Apex class, which must implement this interface.
execute(NotificationActionContext)
Executes the custom Apex action specified in the context parameter of the context object,
Reports.NotificationActionContext. The object contains information about the report instance and the conditions
that must be met for a notification to be triggered.

IN THIS SECTION:
ConnectApi (Chatter in Apex)
To create custom Communities and Chatter experiences in Salesforce, use Chatter in Apex.

ConnectApi (Chatter in Apex)


To create custom Communities and Chatter experiences in Salesforce, use Chatter in Apex.
Many Chatter REST API resource actions are exposed as static methods on Apex classes in the ConnectApi namespace. These methods
use other ConnectApi classes to input and return information. The ConnectApi namespace is referred to as Chatter in Apex.
In Apex, it’s possible to access some Chatter data using SOQL queries and objects. However, ConnectApi classes expose Chatter
data in a much simpler way. Data is localized and structured for display. For example, instead of making many calls to access and assemble
a feed, you can do it with a single call.

Note: To integrate mobile apps, intranet sites, and third party Web applications with Chatter and Communities, use Chatter REST
API.

IN THIS SECTION:
General Updates to Chatter in Apex
New and Changed Chatter in Apex Classes
New and Changed Chatter in Apex Input Classes
New and Changed Chatter in Apex Output Classes
New and Changed Chatter in Apex Enums

281
Salesforce Spring ’15 Release Notes Apex Code

General Updates to Chatter in Apex

Integrate Third-Party and Salesforce Services into the Feed with Action Links (Generally Available)
An action link is a button on a feed element. Clicking an action link can take a user to another Web page, initiate a file download, or
invoke an API call to Salesforce or to an external server. An action link includes a URL and an HTTP method, and can include a request
body and header information, such as an OAuth token for authentication. Use action links to integrate Salesforce and third-party services
into the feed so that users can take action to drive productivity and accelerate innovation.
For example, let’s imagine that a fictional 3D print shop called “BuildIt” creates an AppExchange app that uses action links to integrate
with Salesforce. If a BuildIt customer has the app installed, they can go to the BuildIt website, create an account, and send posts containing
action links to Salesforce that invite certain users to order parts from BuildIt. In this sample feed element posted from BuildIt customer
Pam Jones to her report Jin Chang, clicking the Download action link downloads a file with parts information from the BuildIt website.
Clicking the Order action link takes Jin Chang to a page on the BuildIt website to order a part.

The workflow for instantiating action links and posting them with a feed element:
1. (Optional) Create action link templates. (Create Action Link Templates to Distribute Action Links in Apps explains this step.)
2. Call ConnectApi.ActionLinks.createActionLinkGroupDefinition(String,
ConnectApi.ActionLinkGroupDefinitionInput) to instantiate an action link group definition. Pass a community
ID and a ConnectApi.ActionLinkGroupDefinitionInput object that defines the action link group. The response
contains the ID of the newly instantiated action link group, which you’ll associate with a feed item in the next step.
3. Call ConnectApi.ChatterFeeds.postFeedElement(String, ConnectApi.FeedElementInput,
ConnectApi.BinaryInput) to associate the action link with a feed item and post it. Pass a community ID, a
ConnectApi.FeedItemInput object that uses the action link group ID returned from the previous step to associate the
action link group with the feed item. Optionally, pass a ConnectApi.BinaryInput object if you want to attach a binary file
to the feed item, otherwise, pass null.

Note: The ConnectApi.ChatterFeeds.postFeedElement(String,


ConnectApi.FeedElementInput, ConnectApi.BinaryInput) method takes a
ConnectApi.FeedElementInput object, but that class is abstract and you can’t instantiate an object from an abstract
class. Pass a concrete instance of the ConnectApi.FeedItemInput subclass.

282
Salesforce Spring ’15 Release Notes Apex Code

Tip: For detailed steps, see “Define Action Links and Post with a Feed Element” in Apex Code Developer’s Guide.

Create Action Link Templates to Distribute Action Links in Apps


Create action link templates in Setup so that you can instantiate action link groups with common properties from Chatter REST API or
Apex. You can package templates and distribute them to other Salesforce organizations.
Action link templates support binding variables, which are placeholders that allow variable data to be incorporated into action links when
they’re created from templates. Specify binding variables in the template and set their values when you instantiate the action link group
from the template. For example, use a binding variable for the API version number, a user ID, or an OAuth token.
Action link templates also support context variables, which are placeholders that Salesforce fills in to pass information about the user
who executed the action link and the context in which it was invoked to your server-side code.
You can use binding variables and context variables in the Action URL, HTTP Request Body, and HTTP Headers fields
of an action link template. After an action link group template is published, you can move binding variables between these fields and
you can delete them, but you can’t add new binding variables. You can move, add, and delete context variables in these fields after a
template is published. You can also edit any other content in these fields after a template is published, but you can’t edit any other fields.
The workflow for instantiating action links from templates and posting them with a feed element:
1. Create action link templates.
a. From Setup, click Create > Action Link Templates and create an Action Link Group template:

b. Every action link group should have at least one action link. Action link group templates and action link templates have a
master-detail relationship. Create an action link template:

283
Salesforce Spring ’15 Release Notes Apex Code

c. When you’re done adding action link templates to the action link group template, return to the action link group template and
publish it:

2. Make a SOQL query to get the template ID: ActionLinkGroupTemplate template = [SELECT Id FROM
ActionLinkGroupTemplate WHERE DeveloperName='Doc_Example'];.
3. Call ConnectApi.ActionLinks.createActionLinkGroupDefinition(String,
ConnectApi.ActionLinkGroupDefinitionInput) to instantiate an action link group from a template. Specify the
template ID and the template bindings (the keys and values for the binding variables) in a
ConnectApi.ActionLinkGroupDefinitionInput object. The response contains the ID of the newly instantiated
action link group, which you’ll associate with a feed item in the next step.
4. Call ConnectApi.ChatterFeeds.postFeedElement(String, ConnectApi.FeedElementInput,
ConnectApi.BinaryInput) to post a feed item and associate the action link with it. Pass at
ConnectApi.FeedItemInput object hat contains the body of the feed item and uses the action link group ID returned in
the previous step to associate the action link group with the feed item. Optionally, pass a ConnectApi.BinaryInput object
if you want to attach a binary file to the feed item, otherwise, pass null.

284
Salesforce Spring ’15 Release Notes Apex Code

Tip: For detailed steps, see “Define Action Links in a Template and Post with a Feed Element” in Apex Code Developer’s Guide.

Use Action Link Context Variables to Pass Context Information to Server-Side Code
Use context variables to pass information about the user who executed the action link and the context in which it was invoked into the
HTTP request made by invoking an action link. You can use context variables in the actionUrl, headers, and requestBody
properties of the Action Link Definition Input request body or ConnectApi.ActionLinkDefinitionInput object. You can
also use context variables in the Action URL, HTTP Request Body, and HTTP Headers fields of action link templates. You
can edit these fields, including adding and removing context variables, after a template is published.
The context variables are:

Context Variable Description


{!actionLinkId} The ID of the action link the user executed.

{!actionLinkGroupId} The ID of the action link group containing the action link the user
executed.

{!communityId} The ID of the community in which the user executed the action
link. The value for your internal organization is the empty key
"000000000000000000".

{!communityUrl} The URL of the community in which the user executed the action
link. The value for your internal organization is empty string "".

{!orgId} The ID of the organization in which the user executed the action
link.

{!userId} The ID of the user that executed the action link.

For example, suppose you work for a company called Survey Example and you create an app for the Salesforce AppExchange called
“Survey Example for Salesforce.” Company A has “Survey Example for Salesforce” installed. Let’s imagine that someone from company
A goes to surveyexample.com and makes a survey. Your Survey Example server-side code creates a feed item in Company A’s Salesforce
organization with the body text “Take a survey,” and an action link with the label “OK”.
If you include a {!userId} context variable in either the HTTP Request Body or the Action URL for that action link, when
a user clicks the action link in the feed, Salesforce sends the ID of the user who clicked.
If you include an {!actionLinkId} context variable in the Survey Example server-side code that creates the action link, Salesforce
responds with the ID of the action link and you can save that to your database.
This example includes the {!userId} context variable in the Action URL of the action link template:

285
Salesforce Spring ’15 Release Notes Apex Code

Tip: Binding variables and context variables can be used in the same field. For example, this action URL contains a binding variable
and a context variable:
https://www.example.com/{!Bindings.apiVersion}/doSurvey?salesforceUserId={!userId}

Action Links Classes, Methods, and Enums


The new action links classes, methods, and enums are listed in these sections:
• Action Links Classes on page 287
• Action Links Input Classes on page 289
• Action Links Output Classes on page 291
• New and Changed Chatter in Apex Enums on page 295

Get Bundled Posts with Aggregated Feed Tracked Changes (Generally Available)
Bundled posts aggregate feed tracked changes made within ten minutes of each other into a single generic feed element so that the
feed is easier to read.
For more information on this feature in the Salesforce1 mobile browser app, see See Multiple Record Updates Bundled into One Post.
Bundled posts are returned by methods that get feed elements from a feed, for example,
ConnectApi.ChatterFeeds.getFeedElementsFromFeed(String communityId, ConnectApi.FeedType
feedType, String subjectId).

286
Salesforce Spring ’15 Release Notes Apex Code

A bundle is a ConnectApi.GenericFeedElement object with a bundle capability (ConnectApi.BundleCapability).


These are the bundle layout elements:
1. Header—The bundle displays the header of the ConnectApi.GenericFeedElement output object. For this bundle,
the text is Acme, Corp. was updated.. The time below the header is the relativeCreatedDate property.
2. Auxiliary Body—The bundle displays the fieldName and the oldValue and newValue properties for the first two
ConnectApi.TrackedChangeItem objects nested in the ConnectApi.TrackedChangeCapability of the feed
element. If there are more than two, the bundle displays a Show All Updates link.

New and Changed Chatter in Apex Classes


For complete information about these classes, see “ConnectApi Namespace” in Apex Code Developer’s Guide.

Action Links
Use these new methods to work with action links. These methods are in the ConnectApi.ActionLinks class.
Create, delete, and get action link group definitions
Because information in the action link group definition can be sensitive to a third party (for example, OAuth bearer token headers),
only calls made from the Apex namespace that created the action link group definition can read, modify, or delete the definition. In
addition, the user making the call must have created the definition or have “Modify All Data” permission.
• createActionLinkGroupDefinition(String,
ConnectApi.ActionLinkGroupDefinitionInput)—Create an action link group definition. To associate an action
link group with a feed element, first create an action link group definition. Then post a feed element with an associated actions
capability.
• deleteActionLinkGroupDefinition(String, String)—Delete an action link group definition. Deleting an
action link group definition removes all references to it from feed elements.
• getActionLinkGroupDefinition(String, String)—Get information about an action link group definition.
Get information about action link groups
• getActionLinkGroup(String, String)—Get information about an action link group including state for the context
user.

287
Salesforce Spring ’15 Release Notes Apex Code

Get information about an action link


• Get information about an action link, including state for the context user.—getActionLink(String, String)
Get diagnostic information about an executed action link
• getActionLinkDiagnosticInfo(String, String)—Get diagnostic information returned when an action link
executes. Diagnostic information is given only for users who can access the action link.

Groups
These methods are in the ConnectApi.ChatterGroups class.
Get records associated with a group
Use either of these new methods to get the records associated with a group:
• getRecords(String, String)—Returns the first page of records associated with the specified group. The page
contains the default number of items.
• getRecords(String, String, Integer, Integer)—Returns the specified page from the list of records
associated with a group.

Recommendations
These methods are in the ConnectApi.Recommendations class.
Get recommendations
• getRecommendationForUser(String, String, ConnectApi.RecommendationActionType,
String)—Returns the recommendation for the context user for the specified action and object ID.
• getRecommendationsForUser(String, String, ConnectApi.RecommendationActionType,
String, Integer)—Returns the user, group, file, and record recommendations for the context user.
• getRecommendationsForUser(String, String, ConnectApi.RecommendationActionType,
ConnectApi.RecommendationActionType, String, Integer)—Returns the recommendations for the
context user for the specified action. Optionally returns recommendations based on an action that was just performed.
• getRecommendationsForUser(String, String, ConnectApi.RecommendationActionType,
String, ConnectApi.RecommendationActionType, String, Integer)—Returns the recommendations
for the context user for the specified action and object category. Optionally returns recommendations based on an action that
was just performed.
These methods have associated setTest methods to register data for use in a test context.
Reject recommendations
• rejectRecommendationForUser(String, String, ConnectApi.RecommendationActionType,
String)—Rejects the recommendation for the context user for the specified action and object ID.

Topics
These methods are in the ConnectApi.Topics class.
Get a topic by its name
Use the exactMatch parameter with this method to get a topic by its exact, case-insensitive name:
• getTopics(String, String, Boolean)
Merge up to five topics (beta)
Use either of these methods to merge to up to five topics:

288
Salesforce Spring ’15 Release Notes Apex Code

• updateTopic(String, String, ConnectApi.TopicInput)


• mergeTopics(String, String, List<String>)

Note: Topic merging is in beta and has known limitations. We welcome your feedback on the IdeaExchange.

New and Changed Chatter in Apex Input Classes


For complete information about these classes, see “ConnectApi Input Classes” in Apex Code Developer’s Guide.

Action Links
ConnectApi.ActionLinkDefinitionInput
The definition of an action link. An action link is a button on a feed element. Clicking an action link can take a user to another Web
page, initiate a file download, or invoke an API call to Salesforce or to an external server. An action link includes a URL and an HTTP
method, and can include a request body and header information, such as an OAuth token for authentication. Use action links to
integrate Salesforce and third-party services into the feed so that users can take action to drive productivity and accelerate innovation.
This new class has these properties:
• actionType—Defines the type of action link. Values are:
– Api—The action link calls a synchronous API at the action URL. Salesforce sets the status to SuccessfulStatus or
FailedStatus based on the HTTP status code returned by your server.
– ApiAsync—The action link calls an asynchronous API at the action URL. The action remains in a PendingStatus
state until a a third-party makes a request to /connect/action-links/actionLinkId to set the status to
SuccessfulStatus or FailedStatus when the asynchronous operation is complete.
– Download—The action link downloads a file from the action URL.
– Ui—The action link takes the user to a Web page at the action URL.

Note: Invoking ApiAsync action links from an app requires a call to set the status, and there isn’t currently a way to
set the status of an action link using Apex. To set the status, use Chatter REST API. See the Action Link resource in the
Chatter REST API Developer's Guide for more information.

• actionUrl—The action link URL.


• excludedUserId—.ID of a single user to exclude from performing the action. If you specify an excludedUserId, you
can’t specify a userId.
• groupDefault—true if this action is the default or primary action link in the action link group; false otherwise. There
can be only one default action link per action link group. The default action link receives special styling in the UI.
• headers—The request headers for the Api and ApiAsync action link types. A list of
ConnectApi.RequestHeaderInput objects. If you specify a request body, you must specify a Content-Type header
of either application/json or application/xml.
• labelKey—Key for the set of labels to show in the user interface.
• method—An HTTP method. One of these values:
– HttpDelete—Returns HTTP 204 on success. Response body or output class is empty.
– HttpGet—Returns HTTP 200 on success.
– HttpHead—Returns HTTP 200 on success. Response body or output class is empty.
– HttpPatch—Returns HTTP 200 on success or HTTP 204 if the response body or output class is empty.
– HttpPost—Returns HTTP 201 on success or HTTP 204 if the response body or output class is empty. Exceptions are the
batch posting resources and methods, which return HTTP 200 on success.

289
Salesforce Spring ’15 Release Notes Apex Code

– HttpPut—Return HTTP 200 on success or HTTP 204 if the response body or output class is empty.

• requestBody—The request body for Api and ApiAsync action link types.
• requiresConfirmation—true if the action results in something that should be confirmed, such as a delete; false
otherwise.
• userId—The ID of the user who can execute the action. If not specified or null, any user can execute the action. If you
specify a userId, you can’t specify an excludedUserId.
ConnectApi.ActionLinkGroupDefinitionInput
The definition of an action link group. All action links must belong to a group. Action links in a group are mutually exclusive and
share some properties. Define stand-alone actions in their own action group.
This new class has these properties:
• actionLinks—The action links that make up this group. A list of ConnectApi.ActionLinkDefinitionInput
objects.
• category—The location of the action link group on the feed element. Values are:
– Primary—The action link group is displayed in the body of the feed element.
– Overflow—The action link group is displayed in the overflow menu of the feed element.

• executionsAllowed—Defines the number of times an action link can be executed.


• expirationDate—ISO 8601 date string, for example, 2011-02-25T18:24:31.000Z, that represents the date and time this
action link group is removed from associated feed items and can no longer be executed.
• templateBindings—A list of ConnectApi.ActionLinkTemplateBindingInput objects. Each object
contains a key-pair value to fill in a binding variable value or a custom user alias from an action link template. To instantiate this
action link group from an action link template that uses binding variables or a custom user alias, you must provide values for all
the binding variables and the custom user alias.
• templateId—The ID of the action link template from which to instantiate this action link group.
ConnectApi.ActionLinkTemplateBindingInput
A key-value pair to fill in a binding variable value from an action link template.
This new class has these properties:
• key—The name of the binding variable key specified in the action link template in Setup. For example, if the binding variable
in the template is {!Binding.firstName}, the key is firstName
• value—The value of the binding variable key. For example, if the key is firstName, this value could be Joan.
ConnectApi.RequestHeaderInput
An HTTP request header name and value pair.
This new class has these properties:
• name—The name of the request header.
• value—The value of the request header.

Capabilities
ConnectApi.AssociatedActionsCapabilityInput
A list of action link groups to associate with a feed element. To associate an action link group with a feed element, the call must be
made from the Apex namespace that created the action link definition. In addition, the user making the call must have created the
definition or have “View All Data” permission.
This new class has this property:

290
Salesforce Spring ’15 Release Notes Apex Code

• actionLinkGroupIds—A list of action link group IDs to associate with the feed element. To create an action link group
ID, call createActionLinkGroupDefinition(String,
ConnectApi.ActionLinkGroupDefinitionInput).
ConnectApi.FeedElementCapabilitiesInput
This class has this new property:
• associatedActions—Describes actions added to this feed element. A
ConnectApi.AssociatedActionsCapabilityInput object.

Topics
ConnectApi.TopicInput
This input class has this new property:
• idsToMerge—List of up to five topic IDs to merge with the topic

Note: Topic merging is in beta and has known limitations. We welcome your feedback on the IdeaExchange.

New and Changed Chatter in Apex Output Classes


For complete information about these classes, see “ConnectApi Output Classes” in Apex Code Developer’s Guide.

Action Links
ConnectApi.ActionLinkDefinition
The definition of an action link. Because information in the action link definition can be sensitive to a third party (for example, OAuth
bearer token headers), only calls made from the Apex namespace that created the action link definition can read, modify, or delete
the definition. In addition, the user making the call must have created the definition or have “View All Data” permission.
This new class has these properties:
• actionUrl—The action link URL.
• createdDate—An ISO 8601 format date string, for example, 2011-02-25T18:24:31.000Z.
• excludedUserId—ID of a single user to exclude from performing the action.
• groupDefault—true if this action is the default or primary action link in the action link group; false otherwise. There
can be only one default action link per action link group.
• headers—The request headers for the Api and ApiAsync action link types. A list of ConnectApi.RequestHeader
objects.
• id—The ID of the action link definition.
• labelKey—Key for the set of labels to show in the user interface.
• method—The HTTP method.
• modifiedDate—An ISO 8601 format date string, for example, 2011-02-25T18:24:31.000Z.
• requestBody—The request body for Api and ApiAsync action link types.
• requiresConfirmation—true if the action results in something that should be confirmed, such as a delete; false
otherwise.
• type—The type of action link. Values are:
– Api—The action link calls a synchronous API at the action URL. Salesforce sets the status to SuccessfulStatus or
FailedStatus based on the HTTP status code returned by your server.

291
Salesforce Spring ’15 Release Notes Apex Code

– ApiAsync—The action link calls an asynchronous API at the action URL. The action remains in a PendingStatus
state until a a third-party makes a request to /connect/action-links/actionLinkId to set the status to
SuccessfulStatus or FailedStatus when the asynchronous operation is complete.
– Download—The action link downloads a file from the action URL.
– Ui—The action link takes the user to a Web page at the action URL.

• userId—The ID of the user who can execute the action.


ConnectApi.ActionLinkDiagnosticInfo
Any diagnostic information that may exist for an executed action link. Diagnostic info is provided only for users who can access the
action link.
This new class has these properties:
• diagnosticInfo—Any diagnostic information returned when an action link is executed. Diagnostic information is provided
only for users who can access the action link.
• url—The URL for this action link diagnostic information.
ConnectApi.ActionLinkGroupDefinition
The definition of an action link group. Because information in the action link group definition can be sensitive to a third party (for
example, OAuth bearer token headers), only calls made from the Apex namespace that created the action link group definition can
read, modify, or delete the definition. In addition, the user making the call must have created the definition or have “View All Data”
permission.
This new class has these properties:
• actionLinks—A list of ConnectApi.ActionLinkDefinition objects that make up the action link group.
• category—Indicates the location of the action link group on the feed element. Values are:
– Primary—The action link group is displayed in the body of the feed element.
– Overflow—The action link group is displayed in the overflow menu of the feed element.

• createdDate—An ISO 8601 format date string, for example, 2011-02-25T18:24:31.000Z.


• executionsAllowed—Defines the number of times an action link can be executed. Values are:
– Once—An action link can be executed only once across all users.
– OncePerUser—An action link can be executed only once for each user.
– Unlimited—An action link can be executed an unlimited number of times by each user. You can’t use this value if the
action link’s actionType is Api or ApiAsync.

• expirationDate—An ISO 8601 format date string, for example, 2011-02-25T18:24:31.000Z, that represents the date and
time this action group expires and can no longer be executed. If the value is null, there isn’t an expiration date.
• id—The ID of the action link group definition.
• modifiedDate—An ISO 8601 format date string, for example, 2011-02-25T18:24:31.000Z.
• templateId—The ID of the action link group template from which to instantiate this action link group, or null if this group
isn’t associated with a template.
• url—The URL for this action link group definition.
ConnectApi.PlatformAction
A platform action instance with state information for the context user.
This new class has these properties:

292
Salesforce Spring ’15 Release Notes Apex Code

• actionUrl—For action links of subtype Ui or Download, direct the user to download or visit the UI from this link.
Salesforce issues a Javascript redirect for the link in this format:
/action-link-redirect/communityId/actionLinkId?_bearer=bearerToken.
For Api action links and for all platform actions, this value is null and Salesforce handles the call.

• apiName—The API name. The value may be null.


• confirmationMessage—If this action requires a confirmation and has a status of New, this is a default localized message
that should be shown to an end user prior to invoking the action. Otherwise, this is null.
• executingUser—The user who intiated execution of this platform action.
• groupDefault—true if this platform action is the default or primary platform action in the platform action group; false
otherwise. There can be only one default platform action per platform action group. The default action receives special styling
in the UI.
• iconUrl—The URL of the icon for the platform action. This value may be null.
• id—The ID for the platform action.
• label—The localized label for this platform action.
• modifiedDate—An ISO 8601 format date string, for example, 2011-02-25T18:24:31.000Z.
• platformActionGroup—A reference to the platform action group containing this platform action.
• status—The execution status of the platform action. Possible values are:
– FailedStatus—The action link execution failed.
– NewStatus—The action link is ready to be executed. Available for Download and Ui action links only.
– PendingStatus—The action link is executing. Choosing this value triggers the API call for Api and ApiAsync action
links.
– SuccessfulStatus—The action link executed successfully.

• subtype—The subtype of an action link.


• type—The type of platform action. Possible values are:
– ActionLink—An indicator on a feed element that targets an API, a Web page, or a file and is represented by a button
in the Salesforce Chatter feed UI.
– ProductivityAction—Productivity actions are predefined by Salesforce and are attached to a limited set of objects.
You can’t edit or delete productivity actions. .
– CustomButton—When clicked, opens a URL or a Visualforce page in a window or executes JavaScript.
– QuickAction—A global or object-specific action.
– StandardButton—A predefined Salesforce button such as New, Edit, and Delete.

• url—The URL for this platform action.


ConnectApi.PlatformActionGroup
An platform action group instance with state appropriate for the context user.
This new class has these properties:
• category—The location of the platform action group on the feed element. Values are:
– Primary—The action link group is displayed in the body of the feed element.
– Overflow—The action link group is displayed in the overflow menu of the feed element.

• id—The 18-character ID or an opaque string ID of the platform action group.


• modifiedDate—ISO 8601 date string, for example, 2014-02-25T18:24:31.000Z.

293
Salesforce Spring ’15 Release Notes Apex Code

• platformActions—The platform action instances for this group. A list of ConnectApi.PlaformAction objects.
• url—The URL for this platform action group.
ConnectApi.RequestHeader
An HTTP request header name and value pair.
This new class has these properties:
• name—The name of the request header.
• value—The value of the request header.

Announcements
ConnectApi.Announcement
This class has one new property, url, that is the URL to the announcement.

Capabilities
ConnectApi.AssociatedActionsCapability
If a feed element has this capability, it has platform actions associated with it.
This new class has this property:
• platformActionGroups—The platform action groups associated with a feed element.
ConnectApi.FeedElementCapabilities Class
This class has this new property:
• associatedActions— A ConnectApi.AssociatedActionsCapability object.
ConnectApi.ContentCapability
If content is deleted from a feed element after it’s posted or if the access to the content is changed to private, the ConnectApi.
ContentCapability exists, however most of its properties are null.
ConnectApi.OriginCapability
If a feed element has this capability, it was created by a feed action.
This new class has these properties:
• actor—The user who executed the feed action.
• originRecord—A reference to the feed element containing the feed action.
ConnectApi.QuestionAndAnswersCapability
This class has this new property:
• escalatedCase—The case to which the question post was escalated.

Groups
ConnectApi.Features
These properties are no longer reserved for future use:
• chatterGroupRecords—Specifies whether Chatter groups can have records associated with them.
• chatterGroupRecordSharing—Specifies whether Chatter records are implicitly shared among group members when
records are added to groups.
ConnectApi.GroupRecord
A record associated with a group.

294
Salesforce Spring ’15 Release Notes Apex Code

This new output has these properties:


• id—ID of the record associated with the group.
• record—Information about the record associated with the group.
• url—URL to the record associated with the group.
ConnectApi.GroupRecordPage
A paginated list of ConnectApi.GroupRecord objects.
This new output class has these properties:
• currentPageUrl—URL to the current page.
• nextPageUrl—URL to the next page.
• previousPageUrl—URL to the previous page.
• records—Collection of records associated with a group.
• totalRecordCount—Total number of records associated with a group.

Recommendations
ConnectApi.RecommendationCollection
A list of recommendations.
This new class has this property:
• recommendations—A collection of recommendations.

Topics
ConnectApi.Topic
This output class has this new property:
• isBeingDeleted—Indicates whether the topic is currently being deleted. After the topic is deleted, when attempting to
retrieve the topic, the output is NOT_FOUND.

New and Changed Chatter in Apex Enums


For complete information about these enums, see “ConnectApi Enums” in Apex Code Developer’s Guide.
ConnectApi.ActionLinkExecutionsAllowed
This new enum has these values:
• Once—An action link can be executed only once across all users.
• OncePerUser—An action link can be executed only once for each user.
• Unlimited—An action link can be executed an unlimited number of times by each user. You can’t use this value if the action
link’s actionType is Api or ApiAsync.
ConnectApi.ActionLinkType
This new enum has these values:
• Api—The action link calls a synchronous API at the action URL. Salesforce sets the status to SuccessfulStatus or
FailedStatus based on the HTTP status code returned by your server.
• ApiAsync—The action link calls an asynchronous API at the action URL. The action remains in a PendingStatus state
until a a third-party makes a request to /connect/action-links/actionLinkId to set the status to
SuccessfulStatus or FailedStatus when the asynchronous operation is complete.

295
Salesforce Spring ’15 Release Notes Apex Code

• Download—The action link downloads a file from the action URL.


• Ui—The action link takes the user to a Web page at the action URL.
ConnectApi.FeedElementCapabilityType
This enum has these new and changed values:
• AssociatedActions—This is no longer reserved for future use. The feed element includes information about actions
associated with it.
• Origin—The feed element was created by a feed action.
ConnectApi.FeedItemType
The QuestionPost feed item type can have a content capability and a link capability.
ConnectApi.HttpRequestMethod
This new enum has these values:
• HttpDelete—Returns HTTP 204 on success. Response body or output class is empty.
• HttpGet—Returns HTTP 200 on success.
• HttpHead—Returns HTTP 200 on success. Response body or output class is empty.
• HttpPatch—Returns HTTP 200 on success or HTTP 204 if the response body or output class is empty.
• HttpPost—Returns HTTP 201 on success or HTTP 204 if the response body or output class is empty. Exceptions are the batch
posting resources and methods, which return HTTP 200 on success.
• HttpPut—Return HTTP 200 on success or HTTP 204 if the response body or output class is empty.
ConnectApi.PlatformActionGroupCategory
This new enum has these values:
• Primary—The action link group is displayed in the body of the feed element.
• Overflow—The action link group is displayed in the overflow menu of the feed element.
ConnectApi.PlatformActionStatus
This new enum has these values:
• FailedStatus—The action link execution failed.
• NewStatus—The action link is ready to be executed. Available for Download and Ui action links only.
• PendingStatus—The action link is executing. Choosing this value triggers the API call for Api and ApiAsync action
links.
• SuccessfulStatus—The action link executed successfully.
ConnectApi.PlatformActionType
This new enum has these values:
• ActionLink—An indicator on a feed element that targets an API, a Web page, or a file and is represented by a button in the
Salesforce Chatter feed UI.
• ProductivityAction—Productivity actions are predefined by Salesforce and are attached to a limited set of objects. You
can’t edit or delete productivity actions. .
• CustomButton—When clicked, opens a URL or a Visualforce page in a window or executes JavaScript.
• QuickAction—A global or object-specific action.
• StandardButton—A predefined Salesforce button such as New, Edit, and Delete.
ConnectApi.RecommendationExplanationType
This enum has this new value:
• Custom—Custom recommendations.

296
Salesforce Spring ’15 Release Notes Lightning Components (Beta)

Lightning Components (Beta)


The Lightning Component framework powers Salesforce1. You can use it to create your own
EDITIONS
Lightning components and make them available to Salesforce1 users.
Lightning Components includes the following enhancements. For more information, refer to the Available for use in: Contact
Lightning Components Developer’s Guide. Manager, Group,
Professional, Enterprise,
Performance, Unlimited,
IN THIS SECTION: and Developer Editions
New Components Create Lightning
Components help you build apps faster. components using the UI in
New Events Enterprise, Performance,
Unlimited, Developer
Events add a layer of interaction to your components.
Editions or a sandbox.
Other Changes in Lightning Components
We’ve made additional changes in Lightning Components.

New Components
Components help you build apps faster.
The following Lightning components have been added. Use them in your Lightning apps or in components for Salesforce1.

Key Component Description


Chatter Feed forceChatter:feed A Chatter feed that displays feed items. Supported for Salesforce1 only.

Currency ui:inputCurrency An input field for entering currency

ui:outputCurrency Displays currency in a default or specified format

Drop-down List ui:inputSelect A drop-down list with options

ui:inputSelectOption An option in a ui:inputSelect component

Email ui:inputEmail An input field for entering an email address

ui:outputEmail Displays a clickable email address

Field-level Error ui:inputDefaultError An error message that is displayed when an error occurs

Menu ui:menu A drop-down list with a trigger that controls its visibility

ui:menuList A list of menu items

ui:actionMenuItem A menu item that triggers an action

ui:checkboxMenuItem A menu item that supports multiple selection and can be used to trigger
an action

ui:radioMenuItem A menu item that supports single selection and can be used to trigger an
action

ui:menuItemSeparator A visual separator for menu items

297
Salesforce Spring ’15 Release Notes Lightning Components (Beta)

Key Component Description


ui:menuItem An abstract and extensible component for menu items in a
ui:menuList component

ui:menuTrigger A trigger that expands and collapses a menu

ui:menuTriggerLink A link that triggers a dropdown menu. This component extends


ui:menuTrigger

Message Notification ui:message A message notification of varying severity levels

Password ui:inputSecret An input field for entering secret text

Radio Button ui:inputRadio A selectable option that supports only a single selection

Rich Text ui:inputRichText An input field for entering rich text

ui:outputRichText Displays rich text

Spinner ui:spinner A loading spinner

Text Area ui:inputTextArea An input field for entering multiple lines of text

ui:outputTextArea Displays a read-only text area

URL ui:inputURL An input field for entering a URL

ui:outputURL Displays a clickable URL

New Events
Events add a layer of interaction to your components.
The following system events are now available. System events are fired by the framework during its lifecycle. You can handle these
events in your Lightning apps or components, and within Salesforce1.

Attribute Name Description


aura:doneRendering Indicates that the initial rendering of the root application or root component has
completed.

aura:doneWaiting Indicates that the app or component is done waiting for a response to a server
request. This event is preceded by an aura:waiting event.

aura:locationChange Indicates that the hash part of the URL has changed.

aura:noAccess Indicates that a requested resource is not accessible due to security constraints
on that resource.

aura:systemError Indicates that an error has occurred.

aura:valueChange Indicates that a value has changed.

aura:valueDestroy Indicates that a value is being destroyed.

aura:valueInit Indicates that a value has been initialized.

298
Salesforce Spring ’15 Release Notes Lightning Components (Beta)

Attribute Name Description


aura:waiting Indicates that the app or component is waiting for a response to a server request.

The following force events are now available. These events are handled by Salesforce1. If you fire these events in your Lightning apps
or components outside of Salesforce1, you must handle them as necessary.

Attribute Name Description


force:createRecord Opens the page to create a new record for the specified entityApiName, for
example, “Account” or “myNamespace__MyObject__c”.

force:editRecord Opens the page to edit the record specified by recordId.

force:navigateToList Navigates to the list view specified by listViewId.

force:navigateToObjectHome Navigates to the object home specified by the scope attribute.

force:navigateToRelatedList Navigates to the related list specified by parentRecordId.

force:navigateToSObject Navigates to an sObject record specified by recordId.

force:navigateToURL Navigates to the specified URL.

force:recordSave Saves a record.

force:recordSaveSuccess Indicates that the record has been successfully saved.

force:refreshView Reloads the view.

force:showToast Displays a message in a popup.

The following ui events are now available.

Attribute Name Description


ui:collapse Indicates that a menu component collapses.

ui:expand Indicates that a menu component expands.

ui:menuSelect Indicates that a menu item has been selected in the menu component.

ui:menuTriggerPress Indicates that a menu trigger is clicked.

Other Changes in Lightning Components


We’ve made additional changes in Lightning Components.

IN THIS SECTION:
Case Sensitivity
Lightning components markup is now case sensitive.

299
Salesforce Spring ’15 Release Notes Lightning Components (Beta)

Authoring Support Added in More Editions


Authoring Lightning components is supported in organizations besides Developer Edition organizations. Previously, enabling
Lightning components in other organization editions allowed Lightning components to be used but not authored. For some
organizations, this added extra steps to being able to use Lightning components they created in a new Developer Edition organization.
Namespace Requirement Removed
Lightning components don’t require your organization to have a namespace. Previously, Lightning components required you to set
a namespace for your organization. This could be a burden for smaller organizations that preferred to avoid the complexity that
having a namespace entails.
Support Added for Default Namespace
Lightning components support a default namespace for organizations with and without a namespace set. Previously, Lightning
components required all references to components, custom objects and fields, and Apex classes to explicitly include the namespace
for your organization. This required extra work and attention to detail, even for simple or even trivial components.
Extend Lightning Components and Apps
A Lightning component can now extend another Lightning component. Similarly, a Lightning app can extend another Lightning
app. This takes the concept of inheritance from object-oriented programming and applies it to presentation layer development.
Referential Integrity Validation Added
Changes to Lightning components and component dependencies are validated when saved to ensure those changes don’t break
existing code.
Support for Lightning Components in the Lightning App Builder and Lightning Pages
You can now configure your custom Lightning components to be usable by the Lightning App Builder and Lightning Pages.
Load External CSS or JavaScript Libraries
To reference external CSS or an external JavaScript library that you’ve uploaded as a static resource, use the <ltng:require>
tag in your .cmp or .app markup.

Case Sensitivity
Lightning components markup is now case sensitive.
Previously, Lightning components markup was case insensitive except for references to JavaScript or CSS. With Spring ’15, case sensitivity
should be respected in your markup. Expressions are also case sensitive. For example, if you have a custom field
myNamespace__Amount__c, you must refer to it as {!v.myObject.myNamespace__Amount__c}.

Authoring Support Added in More Editions


Authoring Lightning components is supported in organizations besides Developer Edition organizations. Previously, enabling Lightning
components in other organization editions allowed Lightning components to be used but not authored. For some organizations, this
added extra steps to being able to use Lightning components they created in a new Developer Edition organization.
You can now author Lightning components in all of the same editions where Visualforce is authored: Contact Manager, Group,
Professional, Enterprise, Performance, Unlimited, and Developer Editions . In all organizations Lightning components are authored
in the Developer Console.

Namespace Requirement Removed


Lightning components don’t require your organization to have a namespace. Previously, Lightning components required you to set a
namespace for your organization. This could be a burden for smaller organizations that preferred to avoid the complexity that having a
namespace entails.

300
Salesforce Spring ’15 Release Notes Lightning Components (Beta)

With Spring ’15, Lightning components can be enabled in organizations that don’t have a namespace configured. A default namespace
is used in these organizations to simplify your authoring experience.

Support Added for Default Namespace


Lightning components support a default namespace for organizations with and without a namespace set. Previously, Lightning
components required all references to components, custom objects and fields, and Apex classes to explicitly include the namespace for
your organization. This required extra work and attention to detail, even for simple or even trivial components.
With Spring ’15 Lightning components can use the “c” namespace in place of their organization’s namespace. This simplifies the code,
making it more readable, and it makes the code more portable to other organizations via cut-and-paste (for example, from blog posts)
or via unmanaged packages. Organizations without a namespace set must use the “c” namespace.
Setting and using your namespace is a best practice for larger organizations and those that plan to offer or use third-party code—that
is, use managed packages from the AppExchange, or offer their own packages on the AppExchange.
For complete details of using namespaces with Lightning Components, refer to the Lightning Components Developer’s Guide.

Extend Lightning Components and Apps


A Lightning component can now extend another Lightning component. Similarly, a Lightning app can extend another Lightning app.
This takes the concept of inheritance from object-oriented programming and applies it to presentation layer development.
A component that extends another component inherits the attributes and registered events of the super component. For more details
on inheritance behavior, see the Lightning Components Developer’s Guide.
These system attributes are now available in the <aura:component> and <aura:application> tags.
extensible
Set to true if the component or application can be extended. Defaults to false. For example:
<aura:component extensible="true">

extends
The component or application to be extended. For example:
<aura:component extends="ui:message">

abstract
Set to true if the component or application is abstract. Defaults to false. For example:
<aura:component abstract="true">

Object-oriented languages, such as Java, support the concept of an abstract class that provides a partial implementation for an
object but leaves the remaining implementation to concrete sub-classes. An abstract class in Java can't be instantiated directly, but
a non-abstract subclass can. Similarly, the Lightning Component framework supports the concept of abstract components that have
a partial implementation but leave the remaining implementation to concrete sub-components. To use an abstract component,
you must extend it and fill out the remaining implementation. An abstract component can't be used directly in markup.

Referential Integrity Validation Added


Changes to Lightning components and component dependencies are validated when saved to ensure those changes don’t break existing
code.
Component names, custom object and field names, class names, and so on can all be referenced in your Lightning components markup.
When they change—for example, if you change the name of a custom component—code that references the changed item needs to
change along with it. In some cases—for example, changing the name of a custom object—these changes can be made automatically,

301
Salesforce Spring ’15 Release Notes Lightning Components (Beta)

and happen behind the scenes. In others, you need to make code changes manually. In those cases, you’ll receive a compilation error
when you try to save the incompatible change.
Previously, Lightning component dependencies weren’t included in the referential integrity validation that’s built into Salesforce, and
which protects your Visualforce and Apex code. Spring ’15 begins the process of adding this layer of protection to Lightning components.
While the safety net isn’t yet as complete as for Apex and Visualforce, it should be substantially more difficult to make changes that cause
existing code to stop working.

Support for Lightning Components in the Lightning App Builder and Lightning Pages
You can now configure your custom Lightning components to be usable by the Lightning App
EDITIONS
Builder and Lightning Pages.

Note: The Lightning App Builder is currently available to select customers through a pilot Available in: Professional,
program. To be nominated to join this pilot program, contact Salesforce. Additional terms Enterprise, Performance,
and conditions may apply to participate in the pilot program. Please note that pilot programs Unlimited, and Developer
are subject to change, and as such, we cannot guarantee acceptance into this pilot program Editions
or a particular time frame in which this feature can be enabled. Any unreleased services or
features referenced in this document, press releases, or public statements are not currently
available and may not be delivered on time or at all. Customers who purchase our services
should make their purchase decisions based upon features that are currently available.
Here’s what you need to do:
1. Implement this interface in your Lightning component: flexipage:availableForAllPageTypes.
2. Add a design file to your component bundle. A design file describes the design-time behavior of a Lightning component—information
that visual tools need to allow adding the component to a page or app.
3. (Optional) Include an SVG file in your component bundle. You can use an SVG file to define a custom icon for your component when
it appears in the Lightning App Builder’s component pane.
Here’s the sample code for a simple “Hello World” component.
<aura:component implements="flexipage:availableForAllPageTypes">
<aura:attribute name="greeting" type="String" default="Hello" />
<aura:attribute name="subject" type="String" default="World" />

<div style="box">
<span class="greeting">{!v.greeting}</span>, {!v.subject}!
</div>
</aura:component>

Here’s the design resource that goes in the bundle with the “Hello World” component.
<design:component>
<design:attribute name="subject" label="Subject" description="Name of the person you
want to greet" />
<design:attribute name="greeting" label="Greeting" type="picklist"
datasource="Hello,Hola,Bienvenue,Shalom" />
</design:component>

For full details, see the Lightning Components Developer’s Guide.

302
Salesforce Spring ’15 Release Notes API

Load External CSS or JavaScript Libraries


To reference external CSS or an external JavaScript library that you’ve uploaded as a static resource, use the <ltng:require> tag
in your .cmp or .app markup.
For example:
<ltng:require scripts="/resource/jsLibOne,/resource/jsLibTwo"
styles="/resource/cssOne,/resource/cssTwo" afterScriptsLoaded="{!c.afterScriptsLoaded}"/>

The comma-separated lists of resources are loaded in the order that they are entered in the scripts and styles attributes.
The afterScriptsLoaded action in the client-side controller is called after the scripts are loaded.
To ensure encapsulation and reusability, add the <ltng:require> tag to every .cmp or .app resource that uses the CSS or
JavaScript library.

API
Use the API to create applications that integrate with Salesforce.
EDITIONS

IN THIS SECTION: Available in:


• Developer
New and Changed Objects • Enterprise
These objects are new or have changed in API version 33.0. • Unlimited
REST API • Performance
REST API includes new features, new resources, and changed resources in version 33.0.
Chatter REST API
Use Chatter REST API to integrate mobile apps, intranet sites, and third party Web applications with Communities and with Chatter.
Data.com API
The Data.com APIs provide access to the most up-to-date Data.com records. You can search, match, and purchase company and
contact records.
Bulk API
Bulk API includes three new request headers. The first lets you disable retries for unfinished batches included in a bulk job. The second
lets you specify how Salesforce reads line endings when you upload data. The third lets you enable automatic primary key (PK)
chunking for bulk queries.
Streaming API
Streaming API includes a new feature, generic streaming, in version 33.0.
Tooling API
Use the Tooling API to build custom development tools for Salesforce applications.
SOAP API
SOAP API includes two changed calls in version 33.0.
Metadata API
Use the Metadata API to manage customization information, such as custom object definitions and page layouts, for your organization.
Publisher.js API
Three events in the publisher.js API now support the Post and Social Post actions, so you can create custom console components
that interact with these actions.

303
Salesforce Spring ’15 Release Notes API

Salesforce Console API (Integration Toolkit)


The toolkit includes new and updated methods that let you customize a console programmatically.
Open CTI API
Open CTI includes new and updated methods that let you customize and integrate Salesforce with Computer-Telephony Integration
(CTI) systems.
Invocable Actions
Invocable Actions represent the actions that can be accomplished on Salesforce with APIs.

New and Changed Objects


These objects are new or have changed in API version 33.0.

IN THIS SECTION:
New Objects
These objects are new in API version 33.0.
Changed Objects
These objects have changed in API version 33.0.

New Objects
These objects are new in API version 33.0.
ActionLinkGroupTemplate
Action link templates let you reuse action link definitions and package and distribute action links. An action link is a button on a feed
element. Clicking on an action link can take a user to another Web page, initiate a file download, or invoke an API call to an external
server or Salesforce. Use action links to integrate Salesforce and third-party services into the feed. Every action link belongs to an
action link group and action links within the group are mutually exclusive.
ActionLinkTemplate
Action link templates let you reuse action link definitions and package and distribute action links. An action link is a button on a feed
element. Clicking on an action link can take a user to another Web page, initiate a file download, or invoke an API call to an external
server or Salesforce. Use action links to integrate Salesforce and third-party services into the feed. Every action link template belongs
to an action link group template. When an action link group is created based on the template, the action links are created based on
the action link templates. Action links within the group are mutually exclusive.
AssetOwnerSharingRule
Represents the rules for sharing an Asset record with users other than the owner.
AssetShare
Represents a sharing entry on an Asset record.
CollaborationGroupRecord
Represents the records associated with Chatter groups.
ConnectedApplication
Represents a connected app and its details; all fields are read-only.
ContentHubItem
Represents a file or folder in a Files Connect external data source, such as Microsoft SharePoint or OneDrive for Business.
ContentHubRepository
Represents a Files Connect external data source such as Microsoft SharePoint or OneDrive for Business.

304
Salesforce Spring ’15 Release Notes API

ContentNote
Represents a note in Salesforce. This object is available in API version 32.0 and later.
EmailDomainKey
Represents a domain key for an organization’s domain, used to authenticate outbound email that Salesforce sends on the organization’s
behalf.
FlowInterview
Represents a flow interview. A flow interview is a running instance of a flow.
ForecastingOwnerAdjustment
This object represents an individual forecast user’s adjustment of their own forecast via a ForecastingItem. Available in API versions
33 and greater. This object is separate from the ForecastingAdjustment object, which represents managers’ adjustments of subordinates’
forecasts.
Goal
The Goal object represents the components of a goal such as its name, description, and status. This object is currently tied to the
Enhanced Goals pilot. For more information on joining the pilot program, contact Salesforce.
GoalFeed
Represents a single feed item in the feed displayed for a Goal record. The goal feed shows changes to a goal for fields that are tracked
in feeds, posts, and comments about the goal. This object is currently tied to the Enhanced Goals pilot. For more information on
joining the pilot program, contact Salesforce.
GoalHistory
This read-only object contains historical information about changes that have been made to the Goal object. This object is currently
tied to the Enhanced Goals pilot. For more information on joining the pilot program, contact Salesforce.
GoalLink
Represents the relationship between two goals. This is a many-to-many relationship, meaning that each goal can link to many other
goals. This object is currently tied to the Enhanced Goals pilot. For more information on joining the pilot program, contact Salesforce.
GoalShare
Represents a sharing entry on a Goal object. This object is currently tied to the Enhanced Goals pilot. For more information on joining
the pilot program, contact Salesforce.
ListViewChart
Represents a graphical chart that’s displayed on Salesforce1 list views. The chart aggregates data that is filtered based on the list
view that’s currently displayed.
Metric
The Metric object represents the components of a goal metric such as its name, metric type, and current value. This object is currently
tied to the Enhanced Goals pilot. For more information on joining the pilot program, contact Salesforce.
MetricDataLink
The link between the metric and the data source, such as a report. This object is currently tied to the Enhanced Goals pilot. For more
information on joining the pilot program, contact Salesforce.
MetricDataLinkHistory
This read-only object contains historical information about changes that have been made to the MetricDataLink object. This object
is currently tied to the Enhanced Goals pilot. For more information on joining the pilot program, contact Salesforce.
MetricFeed
Represents a single feed item in the feed displayed on a Metric record. This object is currently tied to the Enhanced Goals pilot. For
more information on joining the pilot program, contact Salesforce.

305
Salesforce Spring ’15 Release Notes API

MetricHistory
This read-only object contains historical information about changes that have been made to the Metric object. This object is currently
tied to the Enhanced Goals pilot. For more information on joining the pilot program, contact Salesforce.
MetricShare
Represents a sharing entry on a Metric object. This object is currently tied to the Enhanced Goals pilot. For more information on
joining the pilot program, contact Salesforce.
NamedCredential
Represents a named credential, which specifies the URL of a callout endpoint and its required authentication parameters in one
definition. A named credential can be specified as an endpoint to simplify the setup of authenticated callouts.
OrderOwnerSharingRule
Represents a rule which determines order sharing access for the order’s owners.
PartnerNetworkSyncLog
Corresponds to the Org Sync Log tab in Salesforce, where Salesforce administrators can track the replication of record inserts and
updates being performed in Organization Sync. The PartnerNetworkSyncLog object can only be accessed in organizations where
Organization Sync is enabled.
PlatformAction
PlatformAction is a virtual read-only object that enables you to query for actions—such as standard and custom buttons, quick
actions, and productivity actions—that should be displayed in a UI, given a user, a context, device format, and a record ID.
TopicLocalization
Represents the translated version of a topic name. Topic localization applies only to navigational and featured topics in communities.
UserProvAccount
Represents information that links a Salesforce user account with an account in a third-party (target) system, such as Google, for users
of connected apps with Salesforce user provisioning enabled.
UserProvAccountStaging
Temporarily stores user account information while a user completes the User Provisioning Wizard. This is the information that will
be stored in the UserProvAccount object when you click the button to collect and analyze accounts on the target system.
UserProvMockTarget
Represents an entity for testing user data before committing the data to a third-party system for user provisioning.
UserProvisioningLog
Represents messages generated during the process of provisioning users for third-party applications.
UserProvisioningRequest
Represents an individual provisioning request to create, update or delete a user account in a third-party service system (or another
Salesforce organization).

Changed Objects
These objects have changed in API version 33.0.
ActivityHistory
The labels for WhatId and WhoId have changed.

Field Name Label


WhatId Related To ID

WhoId Name ID

306
Salesforce Spring ’15 Release Notes API

Sort order constraints and examples updated in Usage section.


AssignmentRule
The AssignmentRule object now supports the search() call.
Approval
The Approval object no longer supports the create(), update(), and upsert() calls. The following fields no longer support
the Create and Update properties: ApproveComment, OwnerId, RequestComment, and Status. Also, ParentId no
longer supports the Create property.
AuthProvider
The AuthProvider object has a new field: LogoutURL. This field provides a specific destination for users after they log out if they
authenticated using social sign-on. The URL must be fully qualified with an http or https prefix, such as
https://acme.my.salesforce.com. For more information, see Choose the Logout Page for Social Sign-On Users.
AuthSession
The AuthSession object has a new field: LoginHistoryId. The value for this field is an 18-character ID for a successful login
event.
ContentDocumentLink
Create and delete ContentDocumentLink objects with a LinkedEntityId of any record type that can be tracked in the feed,
even if feed tracking is disabled for that record type. Chatter must be enabled for the organization.
Previously, associating a file with a record (such as an Account or Lead) was possible only from the FeedItem and Comment objects
or from the Chatter publisher on the record.
ContentVersion
The ContentUrl field on the ContentVersion object now allows up to 1,300 characters. Previously, it only allowed 255.
DatacloudCompany
queryMore() is now supported in the DatacloudCompany object.
DatacloudContact
queryMore() is now supported in the DatacloudContact object.
DatacloudDandBCompany
queryMore() is now supported in the DatacloudDandBCompany object.
The LocationStatus and Name fields are now filterable.
EmailStatus
The labels for WhatId and WhoId have changed.

Field Name Label


WhatId Related To ID

WhoId Name ID

Event
The label for WhoId has changed.

Field Name Label


WhoId Name ID

307
Salesforce Spring ’15 Release Notes API

FeedItem
We added these fields.
• BestCommentId—The Id of the comment marked as best answer on a feed item of Type QuestionPost.
• HasContent—Indicates whether a feed item has content.
• HasLink—Indicates whether a feed item has a link attached.
ForecastingItem
A new field, HasOwnerAdjustment, indicates whether the forecasting item includes an adjustment made by the forecast
owner. This flag is true only when the item includes an owner adjustment and the user performing the query has read access to the
adjustment.
Case
The Case object has a new field, FeedItemID, which lists the ID of the question in Chatter associated with the case.
LookedUpFromActivity
The labels for WhatId and WhoId have changed.

Field Name Label


WhatId Related To ID

WhoId Name ID

Sort order constraints and examples updated in Usage section.


MarketingAction
The labels for WhatId and WhoId have changed.

Field Name Label


WhatId Related To ID

WhoId Name ID

OpenActivity
The labels for WhatId and WhoId have changed.

Field Name Label


WhatId Related To ID

WhoId Name ID

Sort order constraints and examples updated in Usage section.


OpenActivity
The label forWhoId has changed.

Field Name Label


WhoId Name ID

308
Salesforce Spring ’15 Release Notes API

Sort order constraints and examples updated in Usage section.


Task
The labels for WhatId and WhoId have changed.

Field Name Label


WhatId Related To ID

WhoId Name ID

PartnerNetworkConnection
The PartnerNetworkConnection object has the following new fields:
• ConnectionType: Indicates whether the Salesforce to Salesforce connection is a standard or replication connection
• IsSyncAuditFields: Indicates whether audit fields are synced in a replication connection
• IsSyncMetadata: Indicates whether user metadata is synced in a replication connection
• ReplicationRole: Indicates the role of the Salesforce organization in a replication connection
The ConnectionStatus field has two new picklist values:
• Disconnecting: Used when a Salesforce to Salesforce connection is being deactivated
• UsersInitialSync: Used when user records are being replicated in a replication connection
Network
The Network object has a new field: OptionsShowAllNetworkSettings. This field determines whether all the settings in
Community Management are visible or if they should be dynamically hidden based on your community’s settings, showing only
what’s relevant to your community’s configuration.
Opportunity
A new field, IsExcludedFromTerritory2Filter, has been added to this object. It is reserved for future use.
A new field, Territory2Id, has been added to this object. It allows developers to assign a territory to an opportunity.
PersonListMember
The labels for WhatId and WhoId have changed.

Field Name Label


WhatId Related To ID

WhoId Name ID

SamlSsoConfig
The SamlSsoConfig object has the following new fields:
• ExecutionUserId: Indicates the user that ran the SAML JIT handler class.
• RequestSignatureMethod: Indicates the method that’s used to sign the SAML request.
• SamlJitHandlerId: Indicates the name of the class that implements the Apex Auth.SamlJitHandler interface.
Territory2Model
A new field, LastOppTerrAssignEndDate, has been added to this object. This field is reserved for future use.

309
Salesforce Spring ’15 Release Notes API

Territory2Type
A new field, Priority, has been added to this object. This field is reserved for future use.
TopicAssignment
• A new field, EntityType, identifies the object type (account, opportunity, etc.) of the record containing the topic.
• The EntityKeyPrefix field now supports the idLookup property.
User
• A new field, UserPreferencesProcessAssistantCollapsed, has been added to this object. This field indicates
whether Sales Path appears collapsed or hidden to the user.
• The IsBadged field has been removed.
WebLink
• The WebLink object now supports the search() call.
• The PageOrSobjectType field no longer supports the value MarketingAction.
WorkFeedback
The WorkFeedback object has a new field: Name. Additionally, the QuestionId field’s updateable property has changed
to false.
WorkFeedbackQuestionSet
The FeedbackType field’s updateable property has changed to false.
WorkFeedbackRequest
The WorkFeedbackRequest object now supports the search() call, and has the following new fields.
• Description
• LastReferencedDate
• LastViewedDate
• Name
WorkPerformanceCycle
The WorkPerformanceCycle object has the following new fields.
• LastReferencedDate
• LastViewedDate

REST API
REST API includes new features, new resources, and changed resources in version 33.0.

Insert and Update Blob Data (Generally Available)


Previously we piloted a REST feature that enabled you to use the SObject Basic Information and SObject Rows resources to upload files
with a size of up to 500 MB to Salesforce standard objects. The feature is now generally available, and the maximum file size has been
increased to 2 GB for files that are uploaded to Salesforce CRM Content. Now you can manage large file uploads by using REST API.

Use CORS to Access REST API


CORS (Cross-Origin Resource Sharing) is a W3C recommendation that enables Web browsers to request resources from origins other
than their own (cross-origin requests). For example, using CORS, a JavaScript script at https://www.example.com can request
a resource from https://www.salesforce.com.

310
Salesforce Spring ’15 Release Notes API

REST API now supports CORS. To access this API from JavaScript in a Web browser, add the origin that’s serving the script to the CORS
whitelist.
To add an origin to the CORS whitelist, from Setup, choose Security Controls > CORS. Click New, and then enter an origin URL pattern.
The origin URL pattern must include HTTPS and a domain name and may include a port. The wildcard character (*) is supported and
must precede a second-level domain name. For example, https://*.example.com adds all the subdomains of example.com
to the whitelist.
If a browser that supports CORS makes a request from an origin in the Salesforce CORS whitelist, Salesforce returns the origin in the
Access-Control-Allow-Origin HTTP header, along with any additional CORS HTTP headers. If the origin isn’t in the whitelist,
Salesforce returns HTTP status code 403.
You must still pass an OAuth token with requests that require it.

New Resources
Limits Resource
/vXX.X/limits
Previously we piloted the Limits resource for retrieving limits information for your organization, enabling you to conveniently track
your remaining number of API calls, number of events, and storage amounts. The Limits resource is now generally available in REST
API version 29.0 and later for API users with the “View Setup and Configuration” permission. Additionally, the resource can now be
used to retrieve the following limits information.
• Daily generic streaming events (if generic streaming is enabled for your organization)
• Concurrent REST API requests for results of asynchronous report runs
• Concurrent synchronous report runs via REST API
• Hourly asynchronous report runs via REST API
• Hourly synchronous report runs via REST API
• Hourly dashboard refreshes via REST API
• Hourly REST API requests for dashboard results
• Hourly dashboard status requests via REST API
• Daily workflow emails
• Hourly workflow time triggers
This resource will be available within 24 hours after the Spring ’15 release.
SObject PlatformAction Resource
/vXX.X/sobjects/PlatformAction
PlatformAction is a virtual read-only object that enables you to query for actions—such as standard and custom buttons, quick
actions, and productivity actions—that should be displayed in a UI, given a user, a context, device format, and a record ID.
List Invocable Apex Actions Resource
GET /vXX.X/actions/custom/apex
Returns a list of all available invocable Apex actions. Apex invocable actions provide a way to encapsulate pieces of logic in an Apex
method that can be used anywhere you can use Apex.
Response
{
"actions" : [ {
"label" : class_label,

311
Salesforce Spring ’15 Release Notes API

"name" : [namespace__]class_name,
"type" : "APEX"
} ]
}

List Invocable Apex Actions Describe Resource


GET /vXX.X/actions/custom/apex/[namespace__]class_name
Returns the metadata for the specified invocable Apex action.
Response
{
"description" : null,
"inputs" : [ {
"byteLength" : 0,
"description" : null,
"label" : variable_label,
"maxOccurs" : (1 | 2000),
"name" : variable_name,
"picklistValues" : null,
"required" : false,
"sobjectType" : (null | sObject_type),
"type" : data_type
},
... ],
"label" : class_label,
"name" : [namespace__]class_name,
"output" : [ {
"description" : null,
"label" : (variable_label | "outputs"),
"maxOccurs" : (1 | 2000),
"name" : (variable_name | "outputs"),
"picklistValues" : null,
"sobjectType" : (null | sObject_type),
"type" : data_type
},
... ],
"standard" : false,
"targetEntityName" : null,
"type" : "APEX"
}

Invoke an Invocable Apex Actions Resource


POST /v33.0/actions/custom/apex/[namespace__]class_name
Invokes the specified invocable Apex action.
Request
{
"inputs" : [ {
"variable_name" : variable_value,
...
}, {
"variable_name" : variable_value,

312
Salesforce Spring ’15 Release Notes API

...
},
... ]
}

Response
{
"outputs" : [ {
"variable_name" : variable_value,
...
}, {
"variable_name" : variable_value,
...
},
... ]
}

Changed Resources
Suggestions Resource
In Spring ’15, only one character is required in the q parameter for Chinese, Japanese, and Korean queries.
We’ve also added a limit to the query string of 200 consecutive characters without a space break.
Additionally, these objects are now supported.
• ActionEmail
• ActionTask
• ContentVersion
• Document
• Product2
• Solution
• WorkflowRule
Query Resource Explain Parameter
You can now use the query resource to get feedback on how Salesforce optimizes the query for a report or list view. You do this by
using a report or list view ID instead of a query string when using the query resource with the explain parameter. Here’s an
example using a report ID:
/services/data/v33.0/query/?explain=00OD0000001hCzMMAU

The response from the query resource has been improved to include additional details on Salesforce optimizations. These details
are provided in the notes field of the response JSON data. Here’s an example excerpt showing that the IsDeleted field couldn’t be
used for an optimization because that field in the Merchandise custom object isn’t indexed in Salesforce:
{
...
"notes" : [ {
"description" : "Not considering filter for optimization because unindexed",
"fields" : [ "IsDeleted" ],
"tableEnumOrId" : "Merchandise__c"
} ],

313
Salesforce Spring ’15 Release Notes API

...
}

Process Rules Resource


The Process Rules resource returns all active workflow rules, not all workflow rules as was previously indicated.

Chatter REST API


Use Chatter REST API to integrate mobile apps, intranet sites, and third party Web applications with Communities and with Chatter.

Note: To create custom Chatter and Communities experiences in Salesforce, use ConnectApi (Chatter in Apex).

IN THIS SECTION:
General Updates to Chatter REST API
New and Changed Chatter REST API Resources
New and Changed Chatter REST API Request Bodies
New and Changed Chatter REST API Response Bodies

General Updates to Chatter REST API

Integrate Third-Party and Salesforce Services into the Feed with Action Links (Generally Available)
An action link is a button on a feed element. Clicking an action link can take a user to another Web page, initiate a file download, or
invoke an API call to Salesforce or to an external server. An action link includes a URL and an HTTP method, and can include a request
body and header information, such as an OAuth token for authentication. Use action links to integrate Salesforce and third-party services
into the feed so that users can take action to drive productivity and accelerate innovation.
For example, let’s imagine that a fictional 3D print shop called “BuildIt” creates an AppExchange app that uses action links to integrate
with Salesforce. If a BuildIt customer has the app installed, they can go to the BuildIt website, create an account, and send posts containing
action links to Salesforce that invite certain users to order parts from BuildIt. In this sample feed element posted from BuildIt customer
Pam Jones to her report Jin Chang, clicking the Download action link downloads a file with parts information from the BuildIt website.
Clicking the Order action link takes Jin Chang to a page on the BuildIt website to order a part.

314
Salesforce Spring ’15 Release Notes API

The workflow for instantiating action links and posting them with a feed element:
1. (Optional) Create action link templates. (Create Action Link Templates to Distribute Action Links in Apps explains this step.)
2. Make a POST request to /services/data/v33.0/connect/action-link-group-definitions and pass the
Action Link Group Definition Input request body to instantiate an action link group definition. The response contains the ID of the
newly instantiated action link group, which you’ll associate with a feed item in the next step.
3. Make a POST request to /services/data/v33.0/chatter/feed-elements and pass the Feed Item input request
body. Use the action link group ID returned in the previous step to associate the action link group with a feed element and post the
feed element.

Tip: For detailed steps, see “Define Action Links and Post with a Feed Element” in Chatter REST API Developer’s Guide.

Create Action Link Templates to Distribute Action Links in Apps


Create action link templates in Setup so that you can instantiate action link groups with common properties from Chatter REST API or
Apex. You can package templates and distribute them to other Salesforce organizations.
Action link templates support binding variables, which are placeholders that allow variable data to be incorporated into action links when
they’re created from templates. Specify binding variables in the template and set their values when you instantiate the action link group
from the template. For example, use a binding variable for the API version number, a user ID, or an OAuth token.
Action link templates also support context variables, which are placeholders that Salesforce fills in to pass information about the user
who executed the action link and the context in which it was invoked to your server-side code.
You can use binding variables and context variables in the Action URL, HTTP Request Body, and HTTP Headers fields
of an action link template. After an action link group template is published, you can move binding variables between these fields and
you can delete them, but you can’t add new binding variables. You can move, add, and delete context variables in these fields after a
template is published. You can also edit any other content in these fields after a template is published, but you can’t edit any other fields.
The workflow for instantiating action links from templates and posting them with a feed element:
1. Create action link templates.
a. From Setup, click Create > Action Link Templates and create an Action Link Group template:

315
Salesforce Spring ’15 Release Notes API

b. Every action link group should have at least one action link. Action link group templates and action link templates have a
master-detail relationship. Create an action link template:

c. When you’re done adding action link templates to the action link group template, return to the action link group template and
publish it:

316
Salesforce Spring ’15 Release Notes API

2. Make a SOQL query to get the template ID:


/services/data/v33.0/query?q=SELECT+id+FROM+ActionLinkGroupTemplate+WHERE+DeveloperName='Doc_Example'.
3. Make a request to POST /services/data/v33.0/connect/action-link-group-definitions to instantiate
an action link group from a template. Specify the template ID and the template bindings (the keys and values for the binding variables)
in an Action Link Definition Input request body. The response contains the ID of the newly instantiated action link group, which
you’ll associate with a feed item in the next step.
4. Make a request to POST /services/data/v33.0/chatter/feed-elements. In the Feed Item Input request body,
specify the action link group ID to associate the action link with the feed item.

Tip: For detailed steps, see “Define Action Links in a Template and Post with a Feed Element” in Chatter REST API Developer’s Guide.

Use Action Link Context Variables to Pass Context Information to Server-Side Code
Use context variables to pass information about the user who executed the action link and the context in which it was invoked into the
HTTP request made by invoking an action link. You can use context variables in the actionUrl, headers, and requestBody
properties of the Action Link Definition Input request body or ConnectApi.ActionLinkDefinitionInput object. You can
also use context variables in the Action URL, HTTP Request Body, and HTTP Headers fields of action link templates. You
can edit these fields, including adding and removing context variables, after a template is published.
The context variables are:

Context Variable Description


{!actionLinkId} The ID of the action link the user executed.

{!actionLinkGroupId} The ID of the action link group containing the action link the user
executed.

{!communityId} The ID of the community in which the user executed the action
link. The value for your internal organization is the empty key
"000000000000000000".

{!communityUrl} The URL of the community in which the user executed the action
link. The value for your internal organization is empty string "".

317
Salesforce Spring ’15 Release Notes API

Context Variable Description


{!orgId} The ID of the organization in which the user executed the action
link.

{!userId} The ID of the user that executed the action link.

For example, suppose you work for a company called Survey Example and you create an app for the Salesforce AppExchange called
“Survey Example for Salesforce.” Company A has “Survey Example for Salesforce” installed. Let’s imagine that someone from company
A goes to surveyexample.com and makes a survey. Your Survey Example server-side code creates a feed item in Company A’s Salesforce
organization with the body text “Take a survey,” and an action link with the label “OK”.
If you include a {!userId} context variable in either the HTTP Request Body or the Action URL for that action link, when
a user clicks the action link in the feed, Salesforce sends the ID of the user who clicked.
If you include an {!actionLinkId} context variable in the Survey Example server-side code that creates the action link, Salesforce
responds with the ID of the action link and you can save that to your database.
This example includes the {!userId} context variable in the Action URL of the action link template:

Tip: Binding variables and context variables can be used in the same field. For example, this action URL contains a binding variable
and a context variable:
https://www.example.com/{!Bindings.apiVersion}/doSurvey?salesforceUserId={!userId}

Migrate from Action Links Pilot to Generally Available


There are a few new properties in API version 33.0. In addition, some property values have changed. These topics list the changes:
• Action Links Request Bodies on page 321
• Action Links Response Bodies on page 323

318
Salesforce Spring ’15 Release Notes API

Get Bundled Posts with Aggregated Feed Tracked Changes (Generally Available)
Bundled posts aggregate feed tracked changes made within ten minutes of each other into a single generic feed element so that the
feed is easier to read.
For more information on this feature in the Salesforce1 mobile browser app, see See Multiple Record Updates Bundled into One Post.
Bundled posts are returned by requests to resources that represent feed elements in a feed, for example, GET
/chatter/feeds/news/me/feed-elements.

A bundle is a generic feed element with a bundle capability. The bundle layout elements are:
1. Header—The bundle displays the header of the Generic Feed Element response body. For this bundle, this text is Acme, Corp.
was updated.. The time below the header is the relativeCreatedDate property.
2. Auxiliary Body—The bundle displays the fieldName and the oldValue and newValue properties for the first two Feed
Tracked Change response bodies nested in the Tracked Change Bundle Capability of the feed element. If there are more than two
feed-tracked changes, the bundle displays a Show All Updates link.

Use CORS (Cross-Origin Resource Sharing) to Access Salesforce Resources from JavaScript
CORS is a W3C recommendation that enables Web browsers to request resources from origins other than their own (cross-origin requests).
For example, using CORS, a JavaScript script at https://www.example.com could request a resource from https://www.salesforce.com.
In Spring ‘15, CORS is enabled for all organizations and is also supported by REST API.

New and Changed Chatter REST API Resources


For complete information about these resources, see “Chatter REST API Resources” in Chatter REST API Developer’s Guide.

Capabilities
Access the origin capability on a feed element
If a feed element has this capability, it was created by a feed action. Origin refers to the originating feed element that contained the
feed action and the user who executed it.

319
Salesforce Spring ’15 Release Notes API

To access the origin capability, make a GET request to


/chatter/feed-elements/feedElementId/capabilities/origin.

Communities
Search flagged files
To query flagged files in a community, make a GET request to
/connect/communities/communityId/chatter/files/moderation with the new q parameter.

Files
Sync root folders
To sync the root folder with Salesforce Files Sync, make a PATCH request to /chatter/folders/folderId with the new
isInMyFileSync parameter or with the updated Folder Input. Once you sync the root folder, you can’t use this parameter or
the Folder Input to change the setting back.
You can also sync the root folder by making a POST request to /chatter/folders/folderId/items with the new
isInMyFileSync parameter. Once you sync the root folder, you can’t use this parameter to change the setting back.
Filter synced items
To filter synced items, make a GET request to /chatter/folders/folderId/items with the new filter parameter.
Use the value isInMyFileSync to filter out items that aren’t synced in the folder.

Groups
Get records associated with a group
To get the records associated with a group, make a GET request to /chatter/groups/groupID/records.

Recommendations
Get recommendations based on an action performed
To get new recommendations based on an action performed, make a GET request with the new contextAction and
contextObjectId parameters to these resources:
• /chatter/users/userId/recommendations
• /chatter/users/userId/recommendations/action
• /chatter/users/userId/recommendations/action/objectCategory
• /chatter/users/userId/recommendations/action/idPrefix

Note: In versions 33.0 and later, use the contextAction and contextObjectId request parameters instead of the
followed and viewed request parameters.
Custom recommendations
Only community managers (users with the “Create and Set Up Communities” or “Manage Communities” permission) and users with
the “Modify All Data” permission can access and create custom recommendations. These recommendations are available only in
feeds in communities using the Napili or Salesforce Tabs + Visualforce template in Salesforce1 and via Chatter REST API.
Get a list of recommendation definitions or create a recommendation definition
Make a GET or POST request to the new /connect/recommendation-definitions resource to get a list of
recommendation definitions or to create a new recommendation definition.

320
Salesforce Spring ’15 Release Notes API

Get information about, modify, or delete a recommendation definition


Make a GET, PATCH, or DELETE request to the new
/connect/recommendation-definitions/recommendationDefinitionId resource to get information about,
modify, or delete a recommendation definition.
Get, upload, modify, and delete recommendation definition photos
Make a GET, PUT, or DELETE request to the new
/connect/recommendation-definitions/recommendationDefinitionId/photo resource to get information
about, upload, modify, or delete a recommendation definition photo.
Get a list of scheduled recommendations definitions or create a scheduled recommendation
Make a GET or POST request to the new /connect/scheduled-recommendations resource to get a list of scheduled
recommendations or to create a new scheduled recommendation.
Get information about, modify, or delete a scheduled recommendation
Make a GET, PATCH, or DELETE request to the new
/connect/scheduled-recommendations/scheduledRecommendationId resource to get information about,
modify, or delete a scheduled recommendation.

Topics
Merge up to five topics (beta)
Make a PATCH request with the new idsToMerge parameter to the /connect/topics/topicId resource to merge up
to five topics with the specified topic.

Note: Topic merging is in beta and has known limitations. We welcome your feedback on the IdeaExchange.

New and Changed Chatter REST API Request Bodies


For complete information about these request bodies, see “Chatter REST API Request Bodies” in Chatter REST API Developer’s Guide.

Action Links
Action Link Definition Input
The list of predefined keys and labels available in the labelKey property has been updated. For a complete list, see Action Links
Labels in the Chatter REST API Developer’s Guide.
The values for the method property have changed. The new values must be used in version 33.0 and later. This table maps the
old values to the new ones.

Old method property value New method property value

Delete HttpDelete

Get HttpGet

Head HttpHead

Patch HttpPatch

Post HttpPost

Put HttpPut

321
Salesforce Spring ’15 Release Notes API

Action Link Group Definition Input


This request body has these new properties:
• templateBindings—A collection of Action Link Template Binding Input request bodies. Each item in the collection fills
in a binding variable value or a custom user alias from an action link template. To instantiate this action link group from an action
link template that uses binding variables or a custom user alias, you must provide values for all the binding variables and the
custom user alias.
• templateId—The ID of the action link group template from which to instantiate this action link group.
Action Link Input
The values for the status property have changed. The new values must be used in version 33.0 and later. This table maps the
old values to the new ones.

Old status property value New status property value

Failed FailedStatus

New NewStatus

Pending PendingStatus

Successful SuccessfulStatus

Action Link Template Binding Input


A key-value pair to fill in a binding variable value from an action link template.
This new request body has these properties:
• key—The name of the binding variable key specified in the action link template in Setup. For example, if the binding variable
in the template is {!Binding.firstName}, the key is firstName
• value—The value of the binding variable key. For example, if the key is firstName, this value could be Joan.

Files
Folder Input
This request body has this new property:
• isInMyFileSync—Indicates whether a folder is synced with Salesforce Files Sync.
Setting isInMyFileSync is valid only for the root folder. Once set to true, isInMyFileSync can’t be set to false.

Recommendations
Only community managers (users with the “Create and Set Up Communities” or “Manage Communities” permission) and users with the
“Modify All Data” permission can access and create custom recommendations. These recommendations are available only in feeds in
communities using the Napili or Salesforce Tabs + Visualforce template in Salesforce1 and via Chatter REST API.
Recommendation Definition Input
This new request body has these properties:
• actionUrl—The URL for acting on the recommendation, for example, the URL to join a group.
• explanation—The explanation, or body, of the recommendation.
• name—The name of the recommendation definition. The name is displayed in Setup.
• title—The title of the recommendation definition.

322
Salesforce Spring ’15 Release Notes API

Scheduled Recommendation Input


This new request body has these properties:
• rank—Relative rank of the scheduled recommendation indicated by ascending whole numbers starting with 1.
• recommendationDefinitionId—ID of the recommendation definition that is scheduled by this scheduled
recommendation.

Topics
Topic Input
This request body has this new property:
• idsToMerge—List of up to five topic IDs to merge.

Note: Topic merging is in beta and has known limitations. We welcome your feedback on the IdeaExchange.

New and Changed Chatter REST API Response Bodies


For complete information about these response bodies, see “Chatter REST API Response Bodies” in Chatter REST API Developer’s Guide.

Action Links
Action Link Definition
This response body has this new property:
• templateId—ID of the action link template from which the action link was instantiated. If the action link wasn’t instantiated
from a template, the value is null.
The method property has new values. This table maps the old values to the new ones.

Old method property value New method property value

Delete HttpDelete

Get HttpGet

Head HttpHead

Patch HttpPatch

Post HttpPost

Put HttpPut

Action Link Group Definition


This response body has this new property:
• templateId—ID of the action link group template from which the action link group was instantiated. If the action link group
wasn’t instantiated from a template, the value is null.
Platform Action
This response body has a new createdRecords property, which is a collection of records that this action created after it was
invoked by the context user.
The status property has new values. This table maps the old values to the new values.

323
Salesforce Spring ’15 Release Notes API

Old status property value New status property value

Failed FailedStatus

New NewStatus

Pending PendingStatus

Successful SuccessfulStatus

The type property’s AnchorAction value has changed to ProductivityAction.

Announcements
Announcement
This response body has one new property, url, that is the URL to the announcement.

Capabilities
Content Capability
If content is deleted from a feed element after it’s posted or if the access to the content is changed to private, the Content Capability
exists, however most of its properties are null.
Origin Capability
If a feed element has this capability, it was created by a feed action.
This new response body has these properties:
• actor—The user who executed the feed action.
• originRecord—A reference to the feed element containing the feed action.
Question and Answers Capability
This response body has this new property:
• escalatedCase—The case to which a question post was escalated.

Files
Folder
This response body has this new property:
• isInMyFileSync—Indicates whether the folder is synced with Salesforce Files Sync.

Groups
Features
This response body has these new properties:
• chatterGroupRecords—Specifies whether Chatter groups can have records associated with them.
• chatterGroupRecordSharing—Specifies whether Chatter records are implicitly shared among group members when
records are added to groups.
Group Record
A record associated with a group.

324
Salesforce Spring ’15 Release Notes API

This new response body has these properties:


• id—ID of the group.
• record—Information about the record associated with the group.
• url—URL to the record associated with the group.
Group Record Page
A paginated list of records associated with a group.
This new response body has these properties:
• currentPageUrl—URL to the current page.
• nextPageUrl —URL to the next page.
• previousPageUrl—URL to the previous page.
• records—Collection of records associated with a group.
• totalRecordCount—Total number of records associated with a group.

Recommendations
Only community managers (users with the “Create and Set Up Communities” or “Manage Communities” permission) and users with the
“Modify All Data” permission can access and create custom recommendations. These recommendations are available only in feeds in
communities using the Napili or Salesforce Tabs + Visualforce template in Salesforce1 and via Chatter REST API.
Recommendation Definition
This new response body has these properties:
• actionUrl—The URL for acting on this recommendation.
• explanation—Explanation of the recommendation definition.
• id—18-character ID of the recommendation definition.
• name—Name of the recommendation definition. The name is displayed in Setup.
• photo—Photo of the recommendation definition.
• title—Title of the recommendation definition.
• url—URL to the Chatter REST API resource for the recommendation definition.
Recommendation Definition Collection
This new response body has these properties:
• recommendationDefinitions—A list of recommendation definitions.
• url—URL to the Chatter REST API resource for the recommendation definition collection.
Scheduled Recommendation
This new response body has these properties:
• id—18-character ID of the scheduled recommendation.
• rank—The rank determining the order of this scheduled recommendation.
• recommendationDefinitionRepresentation—Recommendation definition that is scheduled by this scheduled
recommendation.
• url—URL to the Chatter REST API resource for the scheduled recommendation.
Scheduled Recommendation Collection
This new response body has these properties:
• scheduledRecommendations—A list of scheduled recommendations.

325
Salesforce Spring ’15 Release Notes API

• url—URL to the Chatter REST API resource for the scheduled recommendation collection.

Topics
Topic
This response body has this new property:
• isBeingDeleted—Indicates whether the topic is currently being deleted. After the topic is deleted, when attempting to
retrieve the topic, the response is 404: Not Found.

Data.com API
The Data.com APIs provide access to the most up-to-date Data.com records. You can search, match,
EDITIONS
and purchase company and contact records.
queryMore() is Supported by All Datacloud Objects Available in: Developer
Edition, Professional Edition
• When no LIMIT is specified, queryMore() returns the entire response in 25-record chunks.
(add-on), Enterprise Edition,
You can scroll through the full set of results 25 records at a time.
and Unlimited Edition.
• A LIMIT that’s set from 1 and 100 returns the actual number of records or the number
of records equal to the LIMIT value, whichever is fewer. This query returns only the first
75 records from a response that contains more than 1,000 records. A next page is not returned.
SELECT City,State,Street,CompanyId
FROM DatacloudCompany
WHERE Name like 'Salesforce'
LIMIT 75

• Specify a LIMIT greater than or equal to the number of records in the response to scroll through large responses in 100-record
chunks. For example, in a response with 1,900 records and a LIMIT that’s set to 2,000, you can scroll through the complete
response in chunks of 100 records. You can only scroll through as many records as are specified in the LIMIT. If your LIMIT
is less than the number of records in the response, queryMore() processes only the number of records that’s specified in
the LIMIT value.
Filter on Name and LocationStatus in the DatacloudDandBCompany Object
You can now filter on LocationStatus and Name in the DatacloudDandBCompany object.

Field = != < <= > >= LIKE IN NOT IN ORDER BY


LocationStatus √ √

Name √ √ √

Bulk API
Bulk API includes three new request headers. The first lets you disable retries for unfinished batches included in a bulk job. The second
lets you specify how Salesforce reads line endings when you upload data. The third lets you enable automatic primary key (PK) chunking
for bulk queries.
Batch Retry Header
When you create a bulk job, the Batch Retry request header lets you disable retries for unfinished batches included in the job. Use
this header to limit the batch processing time for batches that consistently time out.

326
Salesforce Spring ’15 Release Notes API

The following example disables retries for batches included in the new job: Sforce-Disable-Batch-Retry: TRUE
Line Ending Header
When you’re creating a bulk upload job, the Line Ending request header lets you specify whether line endings are read as line feeds
(LFs) or as carriage returns and line feeds (CRLFs) for fields of type Text Area and Text Area (Long).
The following example specifies that line endings are read as CRLFs: Sforce-Line-Ending: CRLF
PK Chunking Header
Use the PK Chunking request header to enable automatic primary key (PK) chunking for a bulk query. PK chunking splits bulk queries
on very large tables into chunks based on the record IDs, or primary keys, of the queried records. Each chunk is processed as a separate
batch that counts toward your daily batch limit, and its results must be downloaded separately. PK chunking is supported for the
following objects: Account, Campaign, CampaignMember, Case, Contact, Lead, LoginHistory, Opportunity, Task, User, and custom
objects.
Salesforce recommends that you enable PK chunking when querying tables with more than 10 million records or when a bulk query
consistently times out. However, the effectiveness of PK chunking depends on the specifics of the query and the queried data.
The following example enables PK chunking with a chunk size of 50,000 records: Sforce-Enable-PKChunking:
chunkSize=50000

Streaming API
Streaming API includes a new feature, generic streaming, in version 33.0.

Generic Streaming (Generally Available)


Previously we piloted generic streaming, a Streaming API feature that lets you send notifications for events that aren’t tied to Salesforce
data changes. You can use generic streaming to send custom notifications to specific teams or to your entire organization, or send
notifications for events that are external to Salesforce. Generic streaming is now generally available. For details, see the Force.com
Streaming API Developer’s Guide.
This feature will be available within 24 hours after the Spring ’15 release.

Tooling API
Use the Tooling API to build custom development tools for Salesforce applications.
Changes in Tooling API version 33.0 include the following new features:

Feature Description
Metadata namespace In previous versions of the SOAP Tooling API, metadata type elements were defined in the same
namespace as the sObjects of the API, tooling.soap.sforce.com. In order to uniquely
name these types, the suffix “Metadata” was appended to the metadata types. In this version of
the API, a new namespace is introduced, metadata.tooling.soap.sforce.com,
and the suffix is no longer used. The old names will continue to work with clients against older
API endpoints.

SOSL support The Tooling API adds SOSL (Salesforce Object Search Language) support.

Changes in Tooling API version 33.0 include the following new objects:

327
Salesforce Spring ’15 Release Notes API

Object Description
AutoResponseRule There are new AutoResponseRule and AssignmentRule objects in the mns namespace. The
earlier AutoResponseRule and AssignmentRule objects are still available in the tns namespace.

BusinessProcess Represents the metadata for a business process.

CustomFieldMember Represents the metadata for a custom field member.

CustomTab Represents the metadata for a custom tab.

FieldSet Represents the metadata for a group of fields.

RecentlyViewed Represents records that the current user has recently viewed or referenced by viewing a related
record.

Tooling API version 33.0 includes the following field changes. All fields are new unless otherwise noted.

Object Fields
ApexTrigger ApiVersion—The API version for this trigger. Every trigger has an API version specified at
creation.
Body—The Apex trigger definition. Limit: 1 million characters.
BodyCrc—The CRC (cyclic redundancy check) of the class or trigger file.
EntityDefinition—The EntityDefinition object associated with this object.
EntityDefinitionId—The Id of the EntityDefinition object associated with this object.
IsValid—Indicates whether any dependent metadata has changed since the trigger was last
compiled (true) or not (false).
LengthWithoutComments—Length of the trigger without comments.
Metadata—The trigger metadata.
Status—The current status of the Apex trigger. The following string values are valid:
• Active—The trigger is active.
• Inactive—The trigger is inactive, but not deleted.
• Deleted—The trigger is marked for deletion. This is useful for managed packages, because
it allows a class to be deleted when a managed package is updated.

Note: Inactive is not valid for ApexClass. For more information, see the Force.com
Metadata API Developer's Guide.
UsageAfterDelete—Specifies whether the trigger is an after delete trigger (true)
or not (false).
UsageAfterInsert—Specifies whether the trigger is an after insert trigger (true)
or not (false).
UsageAfterUndelete—Specifies whether the trigger is an after undelete trigger
(true) or not (false).
UsageAfterUpdate—Specifies whether the trigger is an after update trigger (true)
or not (false).

328
Salesforce Spring ’15 Release Notes API

Object Fields
UsageBeforeDelete—Specifies whether the trigger is an before delete trigger
(true) or not (false).
UsageBeforeInsert—Specifies whether the trigger is an before insert trigger
(true) or not (false).
UsageBeforeUpdate—Specifies whether the trigger is an before update trigger
(true) or not (false).
UsageIsBulk—Specifies whether the trigger is defined as a bulk trigger (true) or not
(false).

Note: This field is not used for Apex triggers saved using Salesforce API version 10.0 or
higher: all triggers starting with that version are automatically considered bulk, and this
field will always return true.

EntityDefintion FieldSets—Any field sets associated with the entity.


Fields—Any fields associated with the entity.
IsCreatable—Specifies whether you can create the object (true) or not (false).
IsDeletable—Specifies whether you can delete the object (true) or not (false).
IsQueryable—Specifies whether the object can be queried (true) or not (false).
KeyPrefix—The first three digits of the entity’s ID, which identify the object type (account,
opportunity, etc).

FieldDefinition DataType—The data type of the field.

Layout EntityDefinition—The EntityDefinition object associated with this object.


EntityDefinitionId—The Id of the EntityDefinition object associated with this object.

RecordType BusinessProcessId—ID of an associated BusinessProcess.


IsActive—Indicates whether this record is active (true) or not (false). Only active record
types can be applied to records.

User FirstName—The user’s first name.


LastName—The user’s last name.
Name—Concatenation of FirstName and LastName. Limited to 121 characters.

WorkflowAlert, Removed the TableEnumOrId field.


WorkflowOutboundMessage, and
WorkflowTask

For details, see the Force.com Tooling API Developer’s Guide.

SOAP API
SOAP API includes two changed calls in version 33.0.

329
Salesforce Spring ’15 Release Notes API

Changed Calls
These calls have changed in API version 33.0.
describeFlexiPages() and DescribeFlexiPageResult
The following fields have been added:
• sobjectType—This field is reserved for future use.
• template—The template the FlexiPage is associated with.
describeSObject() and describeSObjectResult
The following field has been added to the Field subtype:
• highScaleNumber—Indicates whether the field stores numbers to 8 decimal places regardless of what’s specified in the
field details (true) or not (false). Used to handle currencies for products that cost fractions of a cent and are sold by the
thousands. If high-scale unit pricing isn’t enabled in your organization, this field isn’t returned.

Metadata API
Use the Metadata API to manage customization information, such as custom object definitions and page layouts, for your organization.

IN THIS SECTION:
Metadata API Calls
Metadata API calls were modified or added in version 33.0.
Metadata Types and Fields
Metadata types and fields were modified or added in version 33.0.

Metadata API Calls


Metadata API calls were modified or added in version 33.0.

New Metadata Calls


The following Metadata API calls have been added.
deployRecentValidation()
Deploys a recently validated component set without running Apex tests.
Use deployRecentValidation() to deploy your components to production in less time by skipping the execution of Apex
tests. Ensure that the following requirements are met before deploying a recent validation.
• The components have been validated successfully for the target environment within the last four days (96 hours).
• As part of the validation, all Apex tests in the target organization have passed.
• The overall code coverage in the organization is at least 75%, and Apex triggers have some coverage.
This call is equivalent to performing a quick deployment of a recent validation on the Deployment Status page in the Salesforce user
interface.

Metadata Types and Fields


Metadata types and fields were modified or added in version 33.0.

330
Salesforce Spring ’15 Release Notes API

New Metadata Types


ActionLinkGroupTemplate
Represents the action link group template. Action link templates let you reuse action link definitions and package and distribute
action links. An action link is a button on a feed element. Clicking on an action link can take a user to another Web page, initiate a
file download, or invoke an API call to an external server or Salesforce. Use action links to integrate Salesforce and third-party services
into the feed. Every action link belongs to an action link group and action links within the group are mutually exclusive.
MatchingRule
Represents a matching rule that is used to identify duplicate records.
NamedCredential
Represents a named credential, which specifies the URL of a callout endpoint and its required authentication parameters in one
definition. A named credential can be specified as an endpoint to simplify the setup of authenticated callouts.
SharingBaseRule
Represents sharing rule settings such as access level and to whom access is granted.

Updated Metadata Types and Fields


These metadata types have changed, or have fields that have been added or changed in API version 33.0.
AuraDefinitionBundle
The following fields have been added:
designContent
The content of a design definition. Only valid inside a component bundle.
SVGContent
The SVG image for the definition.
AuthProvider
The following field has been added:
logoutURL
Provides a specific destination for users after they log out if they authenticated using the single sign-on flow. The URL must be
fully qualified with an http or https prefix, such as https://acme.my.salesforce.com.
The following fields have been updated:
authorizeUrl, consumerKey, consumerSecret, defaultScopes, tokenUrl and userInfoUrl
The behavior of these field changed to support the Salesforce-managed Auth. Provider configuration, which allows Salesforce
to manage the values for Facebook, Salesforce, LinkedIn, Twitter or Google authentication. However, if you provide a value for
any of these fields, then consumerKey and consumerSecret must be also be specified. For more information on this
configuration, see Set Up an Authentication Provider Using Salesforce-Managed Values.
providerType
Google has been added to the supported AuthProviderType enumeration values.
ExternalDataSource
The following field has been updated:
customConfiguration
A new parameter, requestCompression, is available for this JSON-encoded configuration string when the external data
source is of type OData. This parameter corresponds to the Compress Requests field in the user interface.
FlexiPage
The following fields have been added:

331
Salesforce Spring ’15 Release Notes API

sobjectType
This field is reserved for future use.
pageTemplate
The template associated with the FlexiPage.
Flow
The following field has been added.
interviewLabel
Label for the interview. This label helps users and administrators differentiate interviews from the same flow.
The actionType field on the FlowActionCall subtype supports the following new value.
apex
Invokes an Apex method
The following fields have been added to the FlowScreen subtype.
allowPause
Indicates whether to show (true) or hide (false) the Pause button on the screen at runtime.
pausedText
Confirmation message that appears when an end-user clicks Pause.
The following field on the FlowRule and FlowWaitEvent subtypes supports new values.
conditionLogic
This field now supports advanced logic like 1 AND (2 OR 3). If you use advanced logic, the string must be 1,000 or fewer
characters.
The following field has been added to the FlowWaitEvent subtype.
outputParameters
An array of the event’s output parameters. The parameter values are assigned from the event to variables in the flow.
NameSettings
Previously, NameSettings was released as a beta release type. Starting with API version 33.0, NameSettings is generally available.
RunTestFailure
The following field has been added to the RunTestFailure result object:
seeAllData
Indicates whether the test method has access to organization data (true) or not (false).
RunTestSuccess
The following field has been added to the RunTestSuccess result object:
seeAllData
Indicates whether the test method has access to organization data (true) or not (false).
SamlSsoConfig
The following fields have been added:
executionUserId
The user that runs the Apex handler class. The user must have the “Manage Users” permission. A user is required if you specify
a SAML JIT handler class.
requestSignatureMethod
The method that’s used to sign the SAML request. Valid values are RSA-SHA1 and RSA-SHA256.
samlJitHandlerId
The name of an existing Apex class that implements the Auth.SamlJitHandler interface.

332
Salesforce Spring ’15 Release Notes API

SecuritySettings
The following field has been added to the SessionSettings subtype:
lockSessionsToDomain
Indicates whether the current UI session for a user, such as a community user, is associated with a specific domain to help prevent
unauthorized use of the session ID in another domain. This is enabled by default for organizations created with the Spring ’15
release or later.
SharingRules
SharingRules now contains these child subtypes: SharingCriteriaRule, SharingOwnerRule, and SharingTerritoryRule.
All sharing rules for an organization can now be retrieved and deployed for all objects with wildcard support. Retrieving and deploying
of manual sharing and sharing rules by type (criteria, owner, and territory) is not supported.
These types are no longer available: AccountSharingRules, CampaignSharingRules, CaseSharingRules, ContactSharingRules,
LeadSharingRules, OpportunitySharingRules, AccountTerritorySharingRules, CustomObjectSharingRules.
Territory2Type
A new field, Priority, has been added to this metadata type. This field is reserved for future use.
These metadata field types have been added or changed in API version 33.0.
ActionLinkTemplate
This new field is a subtype of the ActionLinkGroupTemplate type and represents action link templates associated with the action
link group template.

Publisher.js API
Three events in the publisher.js API now support the Post and Social Post actions, so you can create
EDITIONS
custom console components that interact with these actions.
For more information on working with publisher.js, see “Creating Custom Console Components Available in:
That Interact with Case Feed” in Customizing Case Feed with Code. • Enterprise
• Performance
The following events have changed in API version 33.0. • Unlimited
• Developer

Salesforce Console API (Integration Toolkit)


The toolkit includes new and updated methods that let you customize a console programmatically.
EDITIONS
For more information (English only) about the toolkit, see the Salesforce Console Integration Toolkit
Developer's Guide. Available in: Enterprise,
Performance, Unlimited,
The following methods are new or have changed in API version 33.0.
and Developer Editions with
getPageInfo() the Service Cloud
Calls now return object tab labels in a new displayName attribute.
Available in: Performance
setSidebarVisible() and Developer Editions with
Shows or hides a console sidebar based on tabId and region. the Sales Cloud
Available in: Enterprise and
Unlimited Editions with the
Sales Cloud for an additional
cost

333
Salesforce Spring ’15 Release Notes API

Open CTI API


Open CTI includes new and updated methods that let you customize and integrate Salesforce with
EDITIONS
Computer-Telephony Integration (CTI) systems.
For more information (English only) about Open CTI, see the Open CTI Developer's Guide. Available in:
• Professional
The following methods are new or have changed in API version 33.0.
• Enterprise
getPageInfo() • Performance
Calls now return object tab labels in a new displayName attribute. • Unlimited
• Developer
onClickToDial()
Calls now return object tab labels in a new displayName attribute.
Calls now support the PersonAccount object.
onFocus()
Calls now return object tab labels in a new displayName attribute.
searchAndGetScreenPopUrl()
Calls now return picklist values instead of numbers for picklist values.
Calls now return object tab labels in a new displayName attribute.
searchAndScreenPop()
Calls now return picklist values instead of numbers for picklist values.
Calls now return object tab labels in a new displayName attribute.

Invocable Actions
Invocable Actions represent the actions that can be accomplished on Salesforce with APIs.
EDITIONS
All invocable actions are invoked using a common request object so you don’t have to interface
with different SOAP objects or REST JSON body shapes. Invocable actions provide “describe” support Available in:
so you can programmatically learn what each action’s valid input parameters are, as well as an • Professional
action’s output values. • Enterprise
• Performance
Invocable actions are available only through the REST API and provide the following attributes: • Unlimited
• Dynamic input and output values • Developer
• Programmatic describe support
• Consistent invocation interface
The following actions are available:
• Standard actions—These actions can be invoked as-is and don’t need any setup or creation of an instance.
– Email
– Post to Chatter
– Submit for Approval

• Custom actions—You create these actions. Apex actions are typically created by a developer, while the other actions are created
by an administrator.
– Apex
– Email Alert
– Flow

334
Salesforce Spring ’15 Release Notes ISVforce

– Quick Action

For more information on invocable actions, see Invocable Actions in the REST API Developer’s Guide.

ISVforce
Spring ’15 includes Environment Hub and packaging enhancements.

IN THIS SECTION:
Save Time with Default SSO When Connecting an Organization to the Environment Hub
When you connect an organization to the Environment Hub, single sign-on (SSO) is enabled by default, saving you the time and
effort of setting up SSO manually.
Keep Track of Member Organizations with Descriptions in Environment Hub
Are you getting lost in a long list of member organizations in the Environment Hub? Add a description of each hub member to make
it easier for you to keep track of the organizations that you’ve connected to the hub.
Streamline Managed Packages by Deleting Unused Components
When updating a managed package, you can now delete Visualforce pages, Visualforce components, and static resources. By
removing components that are no longer used by the app, you reduce its complexity and help create a more streamlined user
experience for your subscribers. The ability to delete these components builds on similar functionality that was introduced in the
Spring ’14 release.
Package Named Credentials
The Named Credential component is now available in managed and unmanaged packages. Add a named credential to a package
to enable authenticated Apex callouts in the subscriber organization to specify the named credential as the callout endpoint. Doing
so enables Salesforce to handle all the authentication securely for those callouts, so that the Apex code doesn’t have to.

Save Time with Default SSO When Connecting an Organization to the Environment
Hub
When you connect an organization to the Environment Hub, single sign-on (SSO) is enabled by
EDITIONS
default, saving you the time and effort of setting up SSO manually.
Previously, if you wanted to enable SSO for an Environment Hub member, you needed to do so Available in:
after connecting the organization to the Environment Hub. Now, when you connect an organization • Enterprise
to the Environment Hub, SSO is enabled by default. Of course, if you’d prefer to enable SSO yourself • Performance
at a later time, you can disable this option before you connect the organization. • Unlimited

Keep Track of Member Organizations with Descriptions in Environment Hub


Are you getting lost in a long list of member organizations in the Environment Hub? Add a description
EDITIONS
of each hub member to make it easier for you to keep track of the organizations that you’ve
connected to the hub. Available in:
If your Environment Hub has many members, or if members have similar names, keeping track of • Enterprise
which organization is which can be challenging. Now you can add a description to each hub • Performance
member—up to 4,000 characters—to distinguish it from the other members. The field is optional, • Unlimited
so if you’re happy with how you currently track and manage your hub members, simply leave it
empty.

335
Salesforce Spring ’15 Release Notes ISVforce

Streamline Managed Packages by Deleting Unused Components


When updating a managed package, you can now delete Visualforce pages, Visualforce components,
EDITIONS
and static resources. By removing components that are no longer used by the app, you reduce its
complexity and help create a more streamlined user experience for your subscribers. The ability to Available in:
delete these components builds on similar functionality that was introduced in the Spring ’14 • Developer
release.

Note: This feature is available to eligible Salesforce partners. For more information on the
Partner Program, including eligibility requirements, visit www.salesforce.com/partners.
Previously, these components couldn’t be deleted from managed packages. However, in complex packages, the number of components
can grow very large over multiple release cycles. In such cases, deleting unused managed components allows you to keep your app
clutter-free while you maintain and upgrade it.

Important:
• Deleting any component permanently deletes any data that exists in that component, deletes tracked history data, and changes
any integrations that rely on the component, such as assignment or escalation rules. Also, once you delete a component in a
managed package, you can’t restore it or create another component with the same API name.
However, no data or metadata is ever deleted in a subscriber organization without specific action by the customer. Subscribers
who upgrade to the new package version still have the deleted components available in their organization. They’re displayed
in the Unused Components section of the Package Details page. This ensures that subscribers have the opportunity to export
data and modify custom integrations that involve those components before explicitly deleting them.

• It’s your responsibility to educate your customers about the potential impact of any components that you delete. Salesforce
recommends that you list all deleted custom components and notify customers of any required actions in the release notes
for your upgraded package.

The following restrictions apply when deleting managed components.


• If a component is referenced by any other metadata, such as workflow rules, validation rules, or Apex classes, you can’t delete that
component.
You can delete managed components, both declaratively, from the user interface, and programmatically, using the Metadata API. In the
latter case, specify the components you want to delete in a destructiveChanges.xml manifest file and then use the standard
deploy() call. The process is identical to that for deleting components that aren’t managed. For more information about the API,
see the Metadata API Developer’s Guide. For more information about deleting components in managed packages, see the ISVforce Guide.

Package Named Credentials


The Named Credential component is now available in managed and unmanaged packages. Add
EDITIONS
a named credential to a package to enable authenticated Apex callouts in the subscriber organization
to specify the named credential as the callout endpoint. Doing so enables Salesforce to handle all Available in:
the authentication securely for those callouts, so that the Apex code doesn’t have to. • Group
Consider the following. • Professional
• Enterprise
• Named credentials aren’t automatically added to packages. If you package Apex code that • Performance
specifies a named credential as a callout endpoint, also add the named credential to that • Unlimited
package or otherwise make sure that the subscriber organization has a valid named credential • Developer
with the same name.
If you have multiple organizations, you can create a named credential with the same name in
each organization. Each of these named credentials can have a different endpoint URL, for example, to accommodate differences

336
Salesforce Spring ’15 Release Notes Other Changes in Force.com Development

in development and production environments. Because the code references only the name of the named credential, the same Apex
class can be packaged and deployed in all your organizations without the code having to programmatically check the environment.

• Certificates aren’t packageable. If you package a named credential that specifies a certificate, make sure that the subscriber organization
has a valid certificate with the same name.
• After installation from a managed or unmanaged package, the subscriber must reauthenticate to the external system.
– For password authentication, the subscriber must re-enter the password in the named credential definition.
– For OAuth, the subscriber must update the callback URL in the client configuration for the authentication provider and then
reauthenticate by selecting Start Authentication Flow on Save on the named credential.

Attributes of Named Credentials in a Managed Package


This table shows which attributes of a named credential are editable after installation from a managed package.
• 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, these
attributes aren’t upgradeable. Only new subscribers receive the latest changes.
• Locked: After a package is Managed - Released, the developer and subscriber can’t edit the component attributes in this column.

Developer Editable Subscriber and Developer Editable Locked

• Endpoint • Auth Provider Name

• Label • Certificate
• Identity Type
• OAuth Scope
• Password
• Protocol
• Username

Other Changes in Force.com Development


We’ve added Force.com Development tools to improve your experience.

IN THIS SECTION:
Develop Deployable Custom Metadata Types (Pilot)
You can now create custom metadata types and can then create custom metadata that uses these types’ characteristics. ISVs and
enterprise IT departments have in the past emulated custom metadata types by using list custom settings and in some cases custom
objects, but the rows on these items are data, not metadata, and data can’t be deployed to different organizations. Speed your
development by 20% or more by writing fewer deployment tools, use just a few custom metadata types to accomplish what
previously took tens of thousands of lines of code, and upgrade installed apps up to 50% faster. Use custom metadata types to define
configurations and create reusable app components and features that you can package and deploy.

337
Salesforce Spring ’15 Release Notes Other Changes in Force.com Development

Develop Deployable Custom Metadata Types (Pilot)


You can now create custom metadata types and can then create custom metadata that uses these
EDITIONS
types’ characteristics. ISVs and enterprise IT departments have in the past emulated custom metadata
types by using list custom settings and in some cases custom objects, but the rows on these items Available in:
are data, not metadata, and data can’t be deployed to different organizations. Speed your • Enterprise
development by 20% or more by writing fewer deployment tools, use just a few custom metadata • Performance
types to accomplish what previously took tens of thousands of lines of code, and upgrade installed • Unlimited
apps up to 50% faster. Use custom metadata types to define configurations and create reusable • Developer
app components and features that you can package and deploy. • Database.com

Note: Custom metadata types are currently available to select customers through a pilot
program. To be nominated to join this pilot program, contact salesforce.com. Additional terms
and conditions may apply to participate in the pilot program. Please note that pilot programs
are subject to change, and as such, we cannot guarantee acceptance into this pilot program
or a particular time frame in which this feature can be enabled. Any unreleased services or
features referenced in this document, press releases, or public statements are not currently
available and may not be delivered on time or at all. Customers who purchase our services
should make their purchase decisions based upon features that are currently available.
The Salesforce1 Platform has made Salesforce a market leader in CRM. Custom metadata types and custom metadata give you the power
to build an ecosystem for your apps, like Salesforce has done for ours. If you’ve tried to build your own platform-like features by using
custom settings and custom objects, you realize that custom-setting and custom-object data can’t be packaged, deployed, upgraded,
or customized in a manageable way. If you want to provide your customers and partners with audit capability, metadata can provide
an audit trail for debugging. (Field history tracking can’t be packaged.) If you want to build security into your apps, custom metadata
types enable simplified profile administration. (Custom settings are tied to profiles and can’t be easily tied to permission sets.)
As of Spring ’15, custom metadata types let you:
• Create custom metadata types and records in Developer Edition, Enterprise Edition, Performance Edition, Unlimited Edition, or
Database.com Edition organizations.
• Package custom metadata types and records in unmanaged packages, managed packages, or managed package extensions.
• Deploy packages that contain custom metadata types and records to Developer Edition, Enterprise Edition, Performance Edition,
Unlimited Edition, or Database.com Edition organizations that are part of the Custom Metadata Types pilot.
• Use change sets to deploy custom metadata types and records from a sandbox.
• Use all field types that are available in custom settings, except for currency fields, in custom metadata types.
• Expose custom metadata in the application cache for efficient access without the cost of repeated queries to the database.
• Read custom metadata types and records in Apex. Use the getByName(), getByNames(), and getAllNames() methods
to retrieve the API names of the custom metadata records on your custom metadata types. For example, you can:
– Retrieve a record that’s called OurCustomMdInstance1_md from the OurCustomMetadata_mdt type by using
getByName().

public class GetByNameWithExistingCmd {


public static void testGetByName() {
CustomMetadata.OurCustomMetadata__mdt cmd =
CustomMetadata.OurCustomMetadata__mdt.getByName('OurCustomMdInstance1__md');
}
}

338
Salesforce Spring ’15 Release Notes Help and Training

– Retrieve a record that’s called OurCustomMdInstance1_md from the OurCustomMetadata_mdt type by using
getByName(), and then assign the value of that record’s datetime__c custom field to a Datetime variable that’s
called fromCmd.
public class CustomFieldTests {
public static void testCustomFields() {
CustomMetadata.OurCustomMetadata__mdt cmd =
CustomMetadata.OurCustomMetadata__mdt.getByName('OurCustomMdInstance1__md');
Datetime fromCmd = cmd.datetime__c;
}
}

– Retrieve all records from the OurCustomMetadata_mdt type by using getAllNames(), assign them to a
Set<String> variable that’s called allNames, and then list them using a String variable called allNamesList.

public class GetByNamesUsingGetAllNames {


public static void testGetAllNames() {
Set<String> allNames = CustomMetadata.OurCustomMetadata__mdt.getAllNames();
String allNamesList = '';
for (String name : allNames) {
allNamesList += name + ' ';
}
}
}

– Retrieve two records from the OurCustomMetadata_mdt type by using getByNames(), assign them to a
Map<String, CustomMetadata.OurCustomMetadata__mdt> variable that’s called cmdMap, and then assign
the values of those records to variables that are called cmd and cmd2.
public class GetByNamesUsingGetAllNames {
public static void testGetAllNames() {
Set<String> allNames = CustomMetadata.OurCustomMetadata__mdt.getAllNames();
Map<String, CustomMetadata.OurCustomMetadata__mdt> cmdMap =
CustomMetadata.OurCustomMetadata__mdt.getByNames(allNames);
CustomMetadata.OurCustomMetadata__mdt cmd =
cmdMap.get('OurCustomMdInstance1__md');
CustomMetadata.OurCustomMetadata__mdt cmd2 =
cmdMap.get('OurCustomMdInstance2__md');
}
}

Custom metadata types enable you to create your own declarative developer frameworks for internal teams, partners, and customers.
Rather than building apps from data, you can build apps that are defined and driven by their own types of metadata. Contact Salesforce
for more information on joining the custom metadata types pilot, or join the Custom Platform community group at
success.salesforce.com to discuss this exciting new functionality.

Help and Training


We’re introducing walkthroughs, a whole new way to learn to use Salesforce features. We’ve also updated many help videos and some
of our compliance and trust documentation.

339
Salesforce Spring ’15 Release Notes Walkthroughs

IN THIS SECTION:
Walkthroughs
A walkthrough is a series of interactive steps that guides you through a task or feature. We’ve created some walkthroughs to introduce
you to different features in Salesforce, and more are on their way!
Videos
We've updated a number of instructional videos to help your users learn about new and improved Salesforce features.
Trust and Compliance Documentation
The Salesforce.com Trust and Compliance Documents have undergone seasonal updates.

Walkthroughs
A walkthrough is a series of interactive steps that guides you through a task or feature. We’ve created some walkthroughs to introduce
you to different features in Salesforce, and more are on their way!
Before you embark upon a walkthrough, make sure you have the correct user permissions and license associated with the feature so
you can access the proper pages in Salesforce. Bon voyage!

Important: Keep in mind that walkthroughs guide you through your own Salesforce account, so you are actually making changes
to the data in your organization as you walk through the steps. If you’re concerned about making these changes, follow the
walkthrough in a sandbox account or other test environment first.

Feature Walkthroughs You’ll need...


Consoles Create a Salesforce Console App Service Cloud User feature license or “Sales
Console” permission

Permission Sets Create, Edit, and Assign a Permission Set “Manage Profiles and Permission Sets”
permission

Reporting Create a Knowledge Search Activity • “Manage Custom Report Types”


Report Type permission
• “Manage Public Reports” permission

Sales Path Set Up a Sales Path • Sales Path enabled


• “View Setup” permission
• “Modify All Data” permission
• “Customize Application” permission

Salesforce1 Customize the Salesforce1 Navigation “Customize Application” permission


Menu
Create a Global Quick Action
Customize Global Publisher Layouts

Videos
We've updated a number of instructional videos to help your users learn about new and improved Salesforce features.

340
Salesforce Spring ’15 Release Notes Trust and Compliance Documentation

• We’ve updated our video series for importing contacts into your Salesforce organization! These popular videos are now up to date
for the newest import tools, including the unified Data Import Wizard, so you can get all the information you need to import your
contacts from other sources. To get started, view one or more of the following videos.

How to Import Your Contacts from Gmail

How to Import Your Contacts from a CSV File

How to Import Your Contacts from Outlook

How to Import Your Contacts from Act!


The new Salesforce Files Sync video shows you everything you need to do to start syncing files between your devices and the
cloud!
• Learn how Data.com Duplicate Management matching rules work so you can be confident that your rules are finding the most

accurate record matches for your company's requirements. Understanding Matching Rules

Take better notes faster with Notes, an enhanced version of the Salesforce note-taking tool. It’s optimized for Salesforce1. How
to Use Notes.
• We have two new videos showing exporting from various tools, and importing using the new Accounts and Contacts Import Wizard

Importing Your Accounts and Contacts—Part 1: Exporting Your Data

Importing Your Accounts and Contacts—Part 2: Importing Your Data

Trust and Compliance Documentation


The Salesforce.com Trust and Compliance Documents have undergone seasonal updates.

Notices and Licenses


The following changes have been made in the Notices and Licenses Documentation:
Salesforce
• Updated to identify new integration with Google Maps and associated customer flow through terms
• Updated Distributed Software section to include distributed open source components and corresponding license terms
ExactTarget
Updated Restricted Uses of Information section.
Marketing Cloud
Updated third-party notices to reflect current product offerings, including adding new third-party content providers.
Data.com
• Added Distributed Software section listing distributed open source software components and corresponding license terms
• Updated the Jigsaw product name to its new name, Data.com Connect

341
Salesforce Spring ’15 Release Notes Trust and Compliance Documentation

Security, Privacy, and Architecture


The following changes have been made in the Security, Privacy, and Architecture Documentation:
General Changes
The following change applies to all Security, Privacy, and Architecture Documentation.
• Added information on replication of Customer Data to support data backup processes
Salesforce
• Removed information about Activa Live Agent, as this legacy service will be retired in the Spring '15 release
• Changed the reference to the PCI DSS version 2.0 to account for the change in the standard to version 3.0
• Updated information about cryptographic protocols used to provide communication security over the Internet, specifically, from
VeriSign SSL Certification to TLS Certificates
Work.com
• Added the new process for requesting the Security, Privacy, and Architecture document for legacy Work.com Services running
on Amazon Web Services
• Added information on the ISO certification as it applies to Work.com on Salesforce and outlined the process for obtaining further
information
• Updated information about cryptographic protocols used to provide communication security over the Internet, specifically, from
VeriSign SSL Certification to TLS Certificates
Analytics Cloud
• Updated information about cryptographic protocols used to provide communication security over the Internet, specifically from
VeriSign SSL Certification to TLS Certificates
• Added a prohibition on submitting certain kinds of sensitive data as Customer Data
ExactTarget
• Changed description of services covered to reflect updated branding (clarifying that covered services include Salesforce Marketing
Cloud, do not exclude Marketing Cloud, and do exclude Web & Mobile Analytics and Web Personalization)
• Clarified the scope of ExactTarget’s use of content delivery networks
• Clarified information about encryption and decryption options for data used to construct email messages and landing pages
• Replaced SSL with TLS in reference to the type of encryption used for user authentication
• Updated information about cryptographic protocols used to provide communication security over the Internet, specifically, from
VeriSign SSL Certification to TLS Certificates
• Clarified that data deletion occurs after, rather than during, the 90 days when Customer Data is in inactive status
Predictive Intelligence
• Changed description of services covered to reflect updated branding (added Web & Mobile Analytics and Web Personalization)
• Replaced SSL with TLS in reference to the type of encryption used for user authentication
• Specified use of TLS Certificates for data encryption protocols
Radian6
• Replaced SSL with TLS in reference to the type of encryption used for user authentication
• Specified use of TLS Certificates for data encryption protocols
BuddyMedia
• Replaced SSL with TLS in reference to the type of encryption used for user authentication
• Specified use of TLS Certificates for data encryption protocols

342
Salesforce Spring ’15 Release Notes Other Salesforce Products

Social.com
(For February 2015 Security, Privacy, and Architecture publication)
• Added a Salesforce Infrastructure section to address use of a co-location facility in the U.S. as a primary data center and SoftLayer
as data backup
• Replaced SSL with TLS in reference to the type of encryption used for user authentication
• Specified use of TLS Certificates for data encryption protocols
Data.com
• Clarified the definition of Salesforce Services and when the Salesforce Services Security, Privacy, and Architecture document is
applicable
• Replaced SSL with TLS in reference to the type of encryption used for user authentication
• Updated information about cryptographic protocols used to provide communication security over the Internet, specifically, from
SSL Certificates to TLS Certificates
Heroku
• Clarified that customers have 30 days, rather than two weeks, to request return of their Customer Data
• Clarified that deletion of Customer Data occurs only after 30 days have elapsed post-termination

SEE ALSO:
Salesforce.com Trust and Compliance Documents

Other Salesforce Products

desk.com
Desk.com is an all-in-one customer support app for small businesses and growing teams.
For information on new features, go to the Desk.com Product Updates Blog.

Heroku
Heroku is a cloud-based application platform for building and deploying web apps.
For information on new features, go to the Heroku Changelog.

Salesforce Marketing Cloud


Salesforce Marketing Cloud is a unified social marketing suite that allows companies to listen to and engage customers, publish content,
optimize social advertising, measure campaigns, and integrate social insights with customer data.
For information on new features, go to the Salesforce Marketing Cloud Facebook page.

343

You might also like