Salesforce Spring15 Release Notes
Salesforce Spring15 Release Notes
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
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
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.
2
Salesforce Spring ’15 Release Notes You Asked for It!
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.
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!
Multiple Email Address Recognition Increase Your Teams’ Chances of Seeing Relevant Contacts and
Multiple Email Addresses Leads in the Side Panel
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!
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!
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
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.
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 1, 2015
See News about Accounts
Noted that Account News is available only in English, and only to users in the United States.
8
Salesforce Spring ’15 Release Notes Release Notes Changes
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.
9
Salesforce Spring ’15 Release Notes Release Notes Changes
10
Salesforce Spring ’15 Release Notes Release Notes Changes
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.
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.
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.
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
14
Salesforce Spring ’15 Release Notes How and When Analytics Cloud Features Become Available
15
Salesforce Spring ’15 Release Notes How and When Mobile Features Become Available
16
Salesforce Spring ’15 Release Notes How and When Mobile Features Become Available
17
Salesforce Spring ’15 Release Notes How and When Mobile Features Become Available
18
Salesforce Spring ’15 Release Notes How and When Chatter Features Become Available
Groups
Files
Feeds
19
Salesforce Spring ’15 Release Notes How and When Communities Features Become Available
API Enhancements
20
Salesforce Spring ’15 Release Notes How and When Communities Features Become Available
Community Builder
Community Templates
Analytics
21
Salesforce Spring ’15 Release Notes How and When Sales Features Become Available
Leads
Sales Path
22
Salesforce Spring ’15 Release Notes How and When Sales Features Become Available
Products
Email Connect
23
Salesforce Spring ’15 Release Notes How and When Work.com Features Become Available
Activities
Salesforce to Salesforce
24
Salesforce Spring ’15 Release Notes How and When Data.com Features Become Available
Entitlement Management
Assets Object
25
Salesforce Spring ’15 Release Notes How and When Service Features Become Available
Open CTI
New Methods
Salesforce Console
Console Tab
26
Salesforce Spring ’15 Release Notes How and When Salesforce1 Reporting Features Become
Available
Improved Administration
Business Continuity
27
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available
IN THIS SECTION:
General Administration
Data
Business Logic and Process Automation
Security and Identity
Sharing
Globalization
Critical Updates
Additional Customization
General Administration
28
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available
Data
Enabled for
administrators/ Requires Contact Salesforce to
Feature developers administrator setup enable
Process Builder
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
Deploy Processes
Visual Workflow
30
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available
Identity
Administration
31
Salesforce Spring ’15 Release Notes How and When Force.com Customization Features Become
Available
Sharing
Globalization
Critical Updates
32
Salesforce Spring ’15 Release Notes How and When Force.com Development Features Become
Available
Additional Customization
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
Visualforce
34
Salesforce Spring ’15 Release Notes How and When Force.com Development Features Become
Available
Apex Code
Lightning Components
New Components
New Events
Case Sensitivity
35
Salesforce Spring ’15 Release Notes How and When Force.com Development Features Become
Available
API
Changed Objects
APIs
REST API
SOAP API
Data.com API
Publisher.js API
Streaming API
Bulk API
Tooling API
Metadata API
Invocable Actions
36
Salesforce Spring ’15 Release Notes Salesforce Overall: Better Search, Duplicate Management,
and More
ISVForce
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
SEE ALSO:
How and When General Enhancements Become Available
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
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
40
Salesforce Spring ’15 Release Notes Supported Browsers
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
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.
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
東京 京都
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.
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)
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.
• 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)
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.
48
Salesforce Spring ’15 Release Notes DKIM Signing Outbound Email
• 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.
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.
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.
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
SEE ALSO:
How and When Analytics Cloud Features Become Available
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.
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.
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.
• The mobile iOS app includes only English versions of sample datasets and dashboards.
54
Salesforce Spring ’15 Release Notes New in Spring `15 Plus
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.
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.
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
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.
59
Salesforce Spring ’15 Release Notes New in Spring `15 Plus
Note: To use the append transformation, the columns in the input datasets must match. They must have the same names, field
types, and order.
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.
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.
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.
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
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.
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.
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
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
64
Salesforce Spring ’15 Release Notes New in Spring `15 Plus
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"]
}
}
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
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.
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.
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
Null Operators
SAQL includes two new operators to test whether or not a value is null.
• is null
• is not null
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);
68
Salesforce Spring ’15 Release Notes Find the Value in Your Data
69
Salesforce Spring ’15 Release Notes Explore Data Anywhere with Salesforce Analytics for iOS
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
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
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
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.
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.
SEE ALSO:
Exploring and Sharing Analytics Cloud Data
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
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
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
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.
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
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
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.
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.
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
80
Salesforce Spring ’15 Release Notes Get Analytics Up and Running Fast
• The mobile iOS app includes only English versions of sample datasets and dashboards.
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
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
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.
Move your users off older iOS mobile devices that are no longer supported
by Salesforce.
Enjoy enhanced object home pages that show more details about
recently viewed records and make it easier to access 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)
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)
83
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release
Reduce clutter in the feed by bundling multiple record updates into one
post.
Browse and share all file types with new filters in Files lists and when
posting to feeds.
Search Enhancements
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
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.
Keeps sales reps updated with the latest news about their accounts.
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.
Activities Enhancements
Keep tasks updated more efficiently by seeing task details alongside task
lists. (Tablets Only)
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.
85
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release
See Fewer Report Rows for Better Performance on the Go (iPhone 6 Plus
Only).
Notifications Enhancements
Offline Enhancements
86
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release
To enable Salesforce Adoption Manager, from Setup in the full Salesforce site, click Manage Users > Adoption Manager and select
Enable Salesforce Adoption Manager.
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)
89
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release
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
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
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.
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.
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.
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.
95
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release
SEE ALSO:
Allow Users to Add Records to Chatter Groups
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
For more information on configuring the group layout and action bar, see “Customize Chatter Group Layouts and Quick Actions” in the
Salesforce Help.
• 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
SEE ALSO:
Connect to Content in OneDrive for Business
Find More Files with New Salesforce Files Filters
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
99
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release
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)
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
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
SEE ALSO:
See News about Accounts
Manage the Day Better with Even More Key Information in Salesforce Today
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
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
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
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.
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.
109
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release
Tap to select a running user to view the dashboard from that user’s access level.
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
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.
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
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
• 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
117
Salesforce Spring ’15 Release Notes Salesforce1 Enhancements in This Release
118
Salesforce Spring ’15 Release Notes Salesforce1 Differences from the Full Salesforce Site
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.
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.
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.
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
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.
122
Salesforce Spring ’15 Release Notes Community Management
Note: The Overview page displays advanced customization and quick links based on your community configuration and
permissions.
123
Salesforce Spring ’15 Release Notes Community Management
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.
Tip: You can also use other data loaders to update your community membership such as Workbench.
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
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.
125
Salesforce Spring ’15 Release Notes Community Management
USER PERMISSIONS
126
Salesforce Spring ’15 Release Notes Community Management
• 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.
127
Salesforce Spring ’15 Release Notes Community Builder
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
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.
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
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
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
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
135
Salesforce Spring ’15 Release Notes Community Builder
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
138
Salesforce Spring ’15 Release Notes Community Templates
Example:
139
Salesforce Spring ’15 Release Notes Community Templates
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.
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.
141
Salesforce Spring ’15 Release Notes Community Templates
• 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
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.
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
144
Salesforce Spring ’15 Release Notes Sales: Duplicate Management, Sales Path, and More
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)
SEE ALSO:
How and When Sales Features Become Available
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).
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.
• 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)
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)
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.
150
Salesforce Spring ’15 Release Notes Avoid Duplicate Contacts and Accounts when Converting
Leads
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
160
Salesforce Spring ’15 Release Notes Email Connect
161
Salesforce Spring ’15 Release Notes Email Connect
162
Salesforce Spring ’15 Release Notes Salesforce for Outlook
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.
163
Salesforce Spring ’15 Release Notes Salesforce for 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.
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.
165
Salesforce Spring ’15 Release Notes Salesforce Console for Sales
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
SEE ALSO:
How and When Work.com Features Become Available
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
177
Salesforce Spring ’15 Release Notes Assets Object Redesigned as a Standard Object
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.
179
Salesforce Spring ’15 Release Notes Knowledge
Knowledge
Salesforce Knowledge is your Knowledge Centered Support certified knowledge base.
EDITIONS
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.
181
Salesforce Spring ’15 Release Notes Knowledge
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.
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.
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
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.
184
Salesforce Spring ’15 Release Notes Open CTI
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
185
Salesforce Spring ’15 Release Notes Salesforce Console for Service
Open items in tabs without shifting focus from current work. CTRL+click for PCs; CMD+click for Macs
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)
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.
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
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
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
192
Salesforce Spring ’15 Release Notes Social Customer Service
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
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.
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
Note: Private conversations can become public, if the conversation is changed within Google+.
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.
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.
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.
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
SEE ALSO:
How and When Chatter Features Become Available
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.
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.
User Profiles Monitor post and comment activity within user profiles.
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
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.
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.
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.
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.
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.
202
Salesforce Spring ’15 Release Notes More Communication Options in Chatter Feeds
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.
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.
• :) (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)
• >:’(
• :’-(
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.
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
SentDate DateTime Date and time that the message was sent
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;
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
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.
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
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.
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
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
214
Salesforce Spring ’15 Release Notes General Administration
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.
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.
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.
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.
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
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.
218
Salesforce Spring ’15 Release Notes Data
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
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.
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.
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.
• 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.
223
Salesforce Spring ’15 Release Notes Business Logic and Process Automation
224
Salesforce Spring ’15 Release Notes Business Logic and Process Automation
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).
225
Salesforce Spring ’15 Release Notes Business Logic and Process Automation
226
Salesforce Spring ’15 Release Notes Business Logic and Process Automation
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
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.
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.
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.
230
Salesforce Spring ’15 Release Notes Business Logic and Process Automation
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:
232
Salesforce Spring ’15 Release Notes Business Logic and Process Automation
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;
}
}
233
Salesforce Spring ’15 Release Notes Business Logic and Process Automation
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.
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.
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
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
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.
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”.
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
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.
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.
242
Salesforce Spring ’15 Release Notes Security and Identity
To update Profiles, Permission Sets, and “Customize Application” AND “Modify All
Service Provider SAML Attributes: Data”
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.
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
{
"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"
}]
}
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
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.
247
Salesforce Spring ’15 Release Notes Security and Identity
USER PERMISSIONS
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.
248
Salesforce Spring ’15 Release Notes Security and Identity
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
To update Profiles, Permission Sets, and “Customize Application” AND “Modify All
Service Provider SAML Attributes: Data”
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.
250
Salesforce Spring ’15 Release Notes Security and Identity
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.
USER PERMISSIONS
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
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.
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.
255
Salesforce Spring ’15 Release Notes Critical Updates
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.
257
Salesforce Spring ’15 Release Notes Force.com Development: Create Your Own Salesforce App
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
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.
259
Salesforce Spring ’15 Release Notes Change Sets and Deployment
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.
260
Salesforce Spring ’15 Release Notes Change Sets and Deployment
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.
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
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.
Note: Visualforce mapping components aren’t currently available in Developer Edition organizations.
<!-- 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:repeat>
</apex:map>
</apex:pageBlockSection>
263
Salesforce Spring ’15 Release Notes Visualforce
</apex:pageBlock>
</apex:page>
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.
264
Salesforce Spring ’15 Release Notes Visualforce
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.
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.
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.
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';
// Callback method
public Object processResponse() {
269
Salesforce Spring ’15 Release Notes Apex Code
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.
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 {
271
Salesforce Spring ’15 Release Notes Apex Code
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
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');
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
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
For more information about critical updates, see “Critical Updates Overview” in the Salesforce Help.
275
Salesforce Spring ’15 Release Notes Apex Code
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.
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.
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
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.
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.
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:
{!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.
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}
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
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
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
Note: Topic merging is in beta and has known limitations. We welcome your feedback on the IdeaExchange.
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.
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.
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.
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.
• 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.
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
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.
295
Salesforce Spring ’15 Release Notes Apex Code
296
Salesforce Spring ’15 Release Notes Lightning Components (Beta)
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.
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: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
297
Salesforce Spring ’15 Release Notes Lightning Components (Beta)
Radio Button ui:inputRadio A selectable option that supports only a single selection
Text Area ui:inputTextArea An input field for entering multiple lines of text
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.
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.
298
Salesforce Spring ’15 Release Notes Lightning Components (Beta)
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.
ui:menuSelect Indicates that a menu item has been selected in the menu component.
IN THIS SECTION:
Case Sensitivity
Lightning components markup is now case sensitive.
299
Salesforce Spring ’15 Release Notes Lightning Components (Beta)
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}.
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.
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.
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>
302
Salesforce Spring ’15 Release Notes API
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
303
Salesforce Spring ’15 Release Notes API
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.
WhoId Name ID
306
Salesforce Spring ’15 Release Notes API
WhoId Name ID
Event
The label for WhoId has changed.
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.
WhoId Name ID
WhoId Name ID
OpenActivity
The labels for WhatId and WhoId have changed.
WhoId Name ID
308
Salesforce Spring ’15 Release Notes API
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.
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.
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"
} ]
}
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
...
}
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
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.
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
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:
{!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
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}
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.
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
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
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.
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.
Delete HttpDelete
Get HttpGet
Head HttpHead
Patch HttpPatch
Post HttpPost
Put HttpPut
321
Salesforce Spring ’15 Release Notes API
Failed FailedStatus
New NewStatus
Pending PendingStatus
Successful SuccessfulStatus
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
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.
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.
Delete HttpDelete
Get HttpGet
Head HttpHead
Patch HttpPatch
Post HttpPost
Put HttpPut
323
Salesforce Spring ’15 Release Notes API
Failed FailedStatus
New NewStatus
Pending PendingStatus
Successful SuccessfulStatus
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
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.
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.
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.
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.
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.
330
Salesforce Spring ’15 Release Notes API
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
333
Salesforce Spring ’15 Release Notes API
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
335
Salesforce Spring ’15 Release Notes ISVforce
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.
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.
• Label • Certificate
• Identity Type
• OAuth Scope
• Password
• Protocol
• Username
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
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().
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.
– 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.
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.
Permission Sets Create, Edit, and Assign a Permission Set “Manage Profiles and Permission Sets”
permission
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
341
Salesforce Spring ’15 Release Notes Trust and Compliance Documentation
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
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.
343