Lightning · Salesforce

Highlights of Winter’19 Release Notes: Part I

“Aloha Ohana”!! It is that time of the year again when salesforce is upgrading it’s functionality and here we bring you the Winter 19 highlights!!

Lightning Experience Adoption: More Ways to Discover and Adopt the New Salesforce

  1. Learn Why Users Are Switching Back to Salesforce Classic

We can find out why  your users aren’t adopting Lightning Experience by going to the source. A form prompts your users for feedback when they switch back to Salesforce Classic. We can use the responses to educate users about productivity features and fine-tune your org customizations.

The feedback form appears when users switch to Salesforce Classic. Choose whether to keep the default feedback question or write your own. Select how often the form appears and in which public Chatter group to store the feedback. Users write the reason, which is posted in your chosen public Chatter group. Users are notified in the form that their feedback is shared in a public group where everyone can contribute to the conversation and see other commonly asked questions. Users aren’t required to add feedback before switching back to Salesforce Classic.

Screenshot (121)

From Setup in Lightning Experience, enter Onboarding in the Quick Find box, and then select Onboarding & Assistance. Turn on the feature under Switch to Salesforce Classic Feedback Form.

2. View Page Performance by Browser and Other New Metrics in the Lightning Usage App

You can now view more metrics in the Lightning Usage App, including page performance by browser. You can also generate reports using the Lightning Usage App objects. The Lightning Usage App is not available for sandbox orgs. The Lightning Usage App is not available for sandbox orgs.

  • To view the 10 pages where switches occur most frequently, click Switches to Classic and scroll to the Page pane.

Screenshot (124)

  • To view page performance by browser, click Browser. The Performance pane displays page load times by browser for the previous 3 months and the previous 7 days.Screenshot (122)Page load time, or Experienced Page Time (EPT), is a measure of how long it takes for a page to load so that a user can meaningfully interact with it. EPT is equivalent to “critical-path” or “time-to-interaction”. Many parameters impact EPT, in particular network speed, hardware performance, page complexity, and number of components. Page complexity is the number of requests to the server or database and the amount of data downloaded. Complex pages usually have higher EPT values (longer load times).
  • To view the performance of the top-viewed pages in Lightning Experience, click Page. The Performance pane shows the page load times for the most viewed pages, and the page load times of a selected page for the previous 30 days. The first time you launch the Lightning Usage App, the Single Page Performance pane displays data for the current day. Data for additional days displays as days accrue.


Screenshot (125)

  • To create custom reports, use the Lightning Usage App objects. See LightningExitByPageMetrics,LightningToggleMetrics, LightningUsageByAppTypeMetrics, LightningUsageByBrowserMetrics,
    LightningUsageByFlexiPageMetrics, and LightningUsageByPageMetrics in Standard Objects in the SOAP API Developer Guide.
3. Change Your View with Display Density Settings
  • Two new Lightning Experience display density settings give you more control of how you want to view data without changing the page layout. Select one of the settings as the default, but users can choose their own display density at any time from the user profile menu.
  • Density changes don’t apply to Communities or the Salesforce mobile app.
  • The Compact setting, which has labels to the left of fields and less space between page elements, fits 30% more fields on the page.

Screenshot (126)

  • Comfy has labels on the top of fields and more space between page elements. It’s similar to previous versions of Lightning Experience.

Screenshot (127)

  • From Setup in Lightning Experience, enter Display Settings in the Quick Find box, and then select Display Settings. The org default setting applies, unless a user changes it from their profile menu. You can’t override a user’s display density preference.

Screenshot (128)

  • Salesforce notifies all Lightning Experience users of the new setting with in-app assistance

Screenshot (129)

4. Assign a New Owner to Multiple Leads, Cases, or Custom Objects at One Time
  • Use the Change Owner page-level button to assign a new owner for up to 200 selected leads, cases, or custom objects. You can access the button in the page-level action menu in a list view or related list in standard table mode or in Related List Quick Links
  • Select up to 200 records and click Change Owner in the page-level action menu, or (depending on your page layout) click drop down icon in the page-level action menu and then click Change Owner.
  • In the Change Owner dialog box, enter the new owner name, select Send Email Notification if needed, and click Submit. You must have Edit permission for a selected record to change its owner.

Screenshot (130)

5. Use Background Utility Items to Add Functionality to a Lightning App
  • Background utility items run without a visible entry in the utility bar. They provide an unobtrusive way to add functionality to your Lightning apps without cluttering the user experience.
  • This change applies to Lightning Experience for Essentials, Professional, Enterprise, Performance, Unlimited, and Developer editions. Lightning console apps are available for an extra cost to users with Salesforce Platform user licenses for certain products. Some restrictions apply. For pricing details, contact your Salesforce account executive.
  • In standard navigation and console navigation apps, you can create and add background utility items to invisibly execute code.
  • Here are a few nifty things you can do with background utility items
    • Add custom keyboard shortcuts
    • Capture data on how your service agents or sales reps spend their time interacting with customers
    • Enforce console tab limits
    • Listen for events, like chat notifications, and notify the user
  • Implement the lightning:backgroundUtilityItem interface to use a custom component as a background utility item.

What’s Different or Not Available in Winter ’19 Lightning Experience Features

  1. Sales Features: Lightning Experience Considerations

Learn about the issues that your Sales team can encounter in Lightning Experience.

Accounts Teams : Change Owner

  • Changing the account owner doesn’t change the account team.
  • Changing the account owner doesn’t change the opportunity team on any opportunities transferred to the new owner.
  • The option to transfer closed opportunities owned by the existing account owner is not available
  • The option to transfer cases owned by the existing account owner is not available.

To complete these tasks, switch to Salesforce Classic.

  • Create or edit account team member page layouts.
  • Add partner users to a team.

Features Not Available in Lightning Experience

  • Copy Billing Address to Shipping Address link
2. Productivity Features: Lightning Experience Considerations

Learn about the issues to expect when using Salesforce productivity tools in Lightning Experience. Some Salesforce features aren’t available in the new user interface. And some features don’t have full parity with what’s available in Salesforce Classic.

Events that repeat have different names and behavior depending on where you create them. In Lightning Experience, they’re called event series. In Salesforce Classic, they’re called recurring events.

  • Events in a series can’t be made to overlap with other events in the series.
  • If you create a series in Lightning Experience and edit it from Salesforce Classic, you can only edit the entire series. We recommend editing in Lightning Experience only.
  • You can’t edit the start date of a series. Instead, delete the series and recreate it with a new start date.
  • If you delete a series, events in the series that haven’t started yet are removed. All exceptions to the series are deleted.
  • To delete a single event, open the event you want to delete. Then, change the date, time, or location of that event. Save your changes. Then, open the event again and delete the event.

Lightning Essentials:  Improvements in Sales and Service

Set up and get started faster than ever with improved flows for deleting sample data and adding custom fields.  These changes apply to Lightning Experience only.

  1. Sales Cloud Lightning Essentials: Setup Improvements

a. Delete Trial Data in a Jiffy

Make sure that your data is just that, yours. Sample data is great for when you’re learning but can throw off your real data after you’re ready to use the app. With a click of a button, remove the trial data that we include to help you learn about the product.

After you’ve finished your trial with Essentials, you’re prompted to remove sample data. Click Delete Sample Data.

Screenshot (131)

b. Sync Your Emails and Activities

Work smarter with the new setup flow for Einstein Activity Capture. It helps you sync your email and activities so you don’t need to switch between applications.

Work smarter with the new setup flow for Einstein Activity Capture. It helps you sync your email and activities so you don’t need to switch between applications.

Screenshot (132)

2. Service Cloud Lightning Essentials: Help Center for Self-Service

a. Let Customers Be Self-Sufficient with Help Center

Create a self-service help center for your company where customers can browse articles and answer their own questions before they reach out for help. You can include a contact button for those tricky questions that need human intervention. The contact button creates a Case in Salesforce, so you or someone on your team can look into the issue. Manage your help centers from the new Help Center page in Setup.

Go to the Help Center page in Setup and click New to launch a guided setup flow.

Screenshot (133)


Lightning App Builder: Component Visibility Rule Enhancements, Managed
App Editing, and New Components

Get increased control over who sees which components using visibility rules based on standard and custom user permissions. Edit managed apps inside the Lightning App Builder. Augment your Lightning pages with new components.

  1. Set Component Visibility Based on Standard and Custom User Permissions
  • Now you can make your Lightning pages more dynamic by configuring component visibility filters based on the permissions of the person viewing the page. For example, you can create a rule for a component to display for users with a specific permission, but it’s hidden for everyone else.
  • If you don’t define a filter, the component displays on the Lightning page as usual. When you define one or more filters and set the filter logic for a component, the component is hidden until the filter logic criteria are met.

Screenshot (134)

2. Edit Managed Apps with the Lightning App Builder

Apps installed from a managed package no longer use the Edit App wizard to customize their settings. Instead, select Edit in the App Manager for a managed Lightning app, and make your changes using the Lightning App Builder.

3. Add the Text Shortcuts Component for Email Application Panes
  • Save your sales reps time when they compose emails with the same phrases. Reps using Outlook integration with Inbox and Inbox Beta for Gmail can save the phrases they use the most and quickly add them to an email.
  • Companies with Inbox enabled can add the Text Shortcuts component to their email application panes.

New and Changed Lightning Components

New Components

These components are new and require API version 44.0 and later.

  • lightning:empApi

Embed the lightning:empApi component in your custom Lightning component to subscribe to a streaming event channel and receive event notifications. You can subscribe to any type of event channel on the Lightning Platform, including channels for
platform events, PushTopic and generic events, and Change Data Capture (Developer Preview) events. The lightning:empApi component uses a shared CometD-based Streaming API connection, enabling you to run multiple streaming apps in the browser.

  • lightning:map

The lightning:map component securely displays a map of one or more locations using Google Maps. You can pass markers to the component to define the locations to map. A marker can be a coordinate pair of latitude and longitude, or a set of address elements: City, Country, PostalCode, State, and Street.

Screenshot (135)

When you specify multiple locations, the map component creates clickable tiles for each location. You can specify a title to display above the list of addresses. You can also show a footer with an “Open in Google Maps” link and specify an initial zoom level for the map.

  • lightning:menuDivider

This component is used as a child component of lightning:buttonMenu. Use lightning:menuDivider to create a dividing line after a menu item. By default, space is added above and below the divider. Use variant=”compact” with lightning:menuDivider to reduce the space.


  • lightning:menuSubheader

This component is used as a child component of lightning:buttonMenu. Use lightning:menuSubheader to create subheadings in the list of menu items. Specify the text of the heading using the label attribute.

Screenshot (136)

Changed Components
  • lightning:accordion – These attributes are new:
    • allowMultipleSectionsOpen – Indicates that the user can open multiple sections of the accordion at the same time. By default, only one accordion section is expanded at a time.
    • onsectiontoggle – Specifies a handler for the event that’s fired when the open sections change. The event passes an array of all open sections in the accordion.
  • lightning:buttonMenu – These attributes are new
    • isLoading – Enables you to show a spinner activity indicator while the menu is loading.
    • loadingStateAlternativeText – Specifies required explanatory text, such as “Loading menu…”, to display when isLoading is true.


Lightning Flow: Screen Components Galore, CI/CD Support, Stretching the Limits

  1. Automate More Business Processes with Increased Per-Org Limits

    The default limits for total processes and flows, active processes and flows, and groups of scheduled actions or flow interviews that are waiting to be processed has increased.  This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions.

    Screenshot (137)

  2. Process and Flow Design: New Out-of-the-Box Screen Components, Validation for Custom Screen Components

    a. Display Dependent Picklists in Flow Screens

    Add dependent picklists to your flow screens with just a few clicks. The new Dependent Picklist screen component takes advantage ofthe field dependencies that you’ve already defined in your org.

    Screen components are supported only in Lightning flow runtime. In a Screen element, add a Lightning Component field. For Lightning Component, select flowruntime:dependentPicklists, and use the Inputs tab to configure which picklist fields from your org to use.

    Screenshot (138)

    b. Capture Names in Flow Screens

    It’s easier to capture a name in a flow screen. The new Name screen component generates a name form with up to six different fields. In a Screen element, add a Lightning Component field. For Lightning Component, select flowruntime:name. Use the Inputs tab to configure the heading that appears above the group of name fields and which name fields to display.

    Screenshot (139)

    c. Let Flow Users Select a Number Value with a Slider

    With Slider, you can configure the range of valid values, and the user enjoys a better visualization.

    In a Screen element, add a Lightning Component field. For Lightning Component, select flowruntime:slider, and use the Inputs tab to configure the slider’s label and range.

    Screenshot (140)

    d. Capture and Validate Email Addresses in Flow Screens

    Easily capture email addresses in flow screens by using the new Email screen component in the Cloud Flow Designer. The component verifies that each entered value is a valid email address.

    In a Screen element, add a Lightning Component field. For Lightning Component, select flowruntime:email, and use the Inputs tab to configure the email field’s label, default value, and placeholder text.

    e. Capture Phone Numbers in Flow Screens

    Easily capture phone numbers in flow screens by using the new Phone screen component in the Cloud Flow Designer.

    In a Screen element, add a Lightning Component field. For Lightning Component, select flowruntime:phone, and use the Inputs tab to configure the phone field’s label, placeholder text, and the pattern for valid values.

    f. Capture URLs in Flow Screens

    In a Screen element, add a Lightning Component field. For Lightning Component, select flowruntime:url, and use the Inputs tab to configure the URL field’s label, default value, and the pattern for valid values.

    g. Remember Previously Entered Values in Flow Screen Components

    By default, screen components have no memory. If a user enters a value, navigates to another screen, and returns to the component’s screen, the user-entered value is lost. Now flows remember the value for each attribute that you configure in both Inputs and Outputs tabs of the screen component.

    To retain the value of an attribute while a user moves between screens, add the attribute to both the Inputs and Outputs tabs in the screen component.

    Example: Suppose that you use the Email screen component in an email address confirmation screen. In the Email component, the Value attribute represents the email address. Configure the Inputs tab to set the Value attribute to the value of the
    {!existingEmail} variable, which is set earlier in the flow to the user’s email address. Configure the Outputs tab to map the Value attribute to the {!confirmedEmail} variable.

    Screenshot (142)

    When Madison Rigsby runs the flow and sees the email confirmation screen, the Value attribute is already set to per the Inputs tab setting.
    Madison changes that value to and clicks Next. When Madison clicks Previous to return to the email confirmation screen, she sees the email address value as

    h. Avoid Creating Multiple Record-Change Processes for an Object

    When you select the object for a new record-change process, Process Builder displays a list of active record-change processes associated with that object.

    We recommend restricting your org to one record-change process per object. The more record-change processes that are associated with an object, the more likely your org is to exceed limits, such as SOQL queries. In addition, if you create multiple record-change processes for an object, Salesforce can’t guarantee which process is evaluated first or second or seventh. Whenever you see this list of processes in the Object node, consider adding to an existing process instead of creating another one. We recommend automating everything in one process per object, whenever possible.

  3. Process and Flow Testing: Apex Test Support for Scheduled Actions and Waiting Flows, Process and Flow Test Coverage

    Validate scheduled actions in record-change processes and flows that resume after waiting for alarms with an Apex test. See the test coverage for processes and flows by querying Tooling API objects.

    a. Test Scheduled Actions and Waiting Flows with Apex

    To help you provide more test coverage for behind-the-scenes automations, the stopTest Apex method executes processes’ pending scheduled actions and resumes flows that are waiting on alarms. Previously, Apex tests could start processes and autolaunched flows, but they couldn’t validate scheduled actions or whether a flow that’s waiting for an alarm resumes.

    The stopTest method marks the point in your test code when your test ends.When stopTest is executed, all asynchronous processes are run synchronously. For Apex tests that trigger record-change processes (built in Process Builder), the stopTest method executes scheduled actions for any date, even if the criteria group includes multiple schedules. For Apex tests that trigger autolaunched flows with Wait elements, the stopTest method resumes the flow and executes the remaining elements. For each Wait element that’s waiting on an alarm, the flow resumes and executes all the elements along the path.

    i. If a flow Wait element is waiting for multiple alarms, the flow executes the path for one of them. You can’t control which
    alarm’s path is executed.

    ii. To resume a flow that’s waiting for a platform event, publish the event, and use either the Test.getEventBus().deliver() method or the stopTest method.

    b. Track Process and Flow Test Coverage

    If your org uses Apex tests to validate processes and autolaunched flows, you’re probably interested in knowing what your flow test coverage is. We’re introducing two Tooling API objects that you can query to calculate test coverage for processes and autolaunched flows. When you deploy an active process or flow, Salesforce runs your org’s Apex tests and confirms that enough of your processes and
    flows have test coverage.

    FlowTestCoverage represents test coverage for a flow by an Apex test method. FlowElementTestCoverage records are created when an Apex test method executes a flow element. To calculate the overall test coverage for a flow version, query the FlowTestCoverage object. The FlowElementTestCoverage object is not used to calculate test coverage.


Sharing and Security

  1. Sharing sets upgraded to Customer Community Users

With the Winter’19 Release the Community User sharing settings have been upgraded. Now users retain the sharing sets even after upgrading to Customer Community Plus and have access to the data. We can define/modify sharing data to users using sharing settings.

This change applies to Enterprise, Essentials, Performance, Unlimited, and Developer editions.

maxresdefault (1)

2.  Use sharing sets to provide access to records for contacts associated with Multiple Accounts

Let’s say we have created a Community/Portal user from a contact which is associated with multiple accounts. By using sharing sets we can grant access to the records by with a lookup to any account which is related to that contact.

This change applies to Lightning communities and Salesforce Tabs + Visualforce communities accessed through Lightning Experience and Salesforce Classic. This change applies to Enterprise, Essentials, Performance, Unlimited, and Developer editions.

Users with the following Licenses can use sharing sets:

  • Customer Community Login User
  • Customer Community Plus and Partner Community Licenses
  • Customer Community User
3. Grant access to community/portal users to records associated to their campaigns,orders and Opportunities 

You can now grant portal or community users access to records that are associated with their campaigns, opportunities, and orders using sharing sets.

This change applies to Lightning communities and Salesforce Tabs + Visualforce communities accessed through Lightning Experience and Salesforce Classic. Communities are available in Enterprise, Performance, Unlimited, and Developer editions.

4. Protect your community using CSP

Winter’19 release brings you an upgraded and improvised Content Security Policy(CSP) to protect your community.

Strict CSP standards protect you and your customers by allowing content only from explicitly whitelisted external hosts to display in your communities and by blocking all inline scripts.

This feature is available in Lightning communities accessed through Lightning Experience and Salesforce Classic, and is available in Essentials, Enterprise, Performance, Unlimited, and Developer editions.

With Winter’19 Release new communities created will be automatically upgraded to strict CSP and the existing one’s will be set to least CSP to ensure they continue working.


5. Enable Users to Log In with Their Email, Phone Number, or Any Identifier You Choose

You can create login pages with ease, which allows your user easily to login to your community.

Instead of logging in with username always you can allow your community external users to log in with their phone and instead of typing in password every time they can log in with the verification code sent to their phone and access the community.

6. Give Internal Users Login Access to Communities Through an External Authentication Provider

Previously, internal users accessed a community either through the community login page or by logging in to Salesforce and accessing the community through SAML single sign-on (SSO). Now internal users can access a community through an external authentication provider for apps that support the OpenID Connect protocol, such as Facebook.

Your Salesforce developer must update the Apex createUser(portalId, userData) registration handler method to account for both internal and external user creation during OpenID Connect SSO to communities. For example, the developer can use a unique attribute in the userData object to determine whether the newly created user is internal or external.The remaining processes of creating external users, configuring the service provider website, and defining the authentication provider in your org remain the same.

Source : Salesforce Winter’19 Release Notes

One thought on “Highlights of Winter’19 Release Notes: Part I

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s