- Create in-app guidance prompts to deliver news, training, tips, and more to users
- Use the new Prompt, PromptAction, PromptActionShare, PromptActionOwnerSharingRule, PromptVersion objects.
- See an event’s due date time
- Use the new ActivityDateTime field on the LookedUpFromActivity, OpenActivity, and ActivityHistory objects.
- Give feedback about call quality in Lightning Dialer
- Use the new VoiceCallQualityFeedback and VoiceCallQualityFeedbackShare objects.
- Customize product schedules
- The OpportunityLineItemSchedule object now supports custom fields, validation rules, and Apex triggers. Deleting a schedule now also invokes delete triggers. If customizable product schedules are enabled, you can use custom fields in default schedules and customize their layout. But if you’ve applied validation rules or Apex triggers, they’re bypassed when they’re first inserted.
- Partner relationships are creatable and deletable
- The View All Data permission requirement was removed from the AccountPartner, OpportunityPartner, and Partner objects. These objects are now creatable and deletable according to a user's Write and Delete permissions on the Opportunity and Account objects.
- Set the primary contact at the same time the opportunity is created
- Use the ContactID field, set as the primary contact, on the existing Opportunity object.
- The Asset object supports primary key (PK) chunking for bulk query jobs
- PK chunking helps you efficiently process a large volume of records. For more information, see PK Chunking Header and Walk Through a Bulk Query Sample Using PK Chunking.
- Request usage data on your managed packages (Pilot)
- Use the new AppAnalyticsQueryRequest object to request App Analytics data on managed packages.
- Disable email notifications from approval processes where the user is an approver
- Use the new UserPreferencesReceiveNoNotificationsAsApprover field on the existing User object.
- Enable email notifications from approval processes where the user is a delegated approver
- Use the new UserPreferencesReceiveNotificationsAsDelegatedApprover field on the existing User object.
Authentication and Identity
- Give a connected app permission to access external resources
- Use the new OauthCustomScope object, which represents a permission that defines the protected resources that a connected app can access from an external entity.
- See the number of failed login attempts on a user account
- Use the new NumberOfFailedLogins field on the existing User object.
- View the operating system version running on a device
- Use the new PlatformVersion field on the existing UserDevice object.
- See if a user attempted to access a list view
- Use the new ListView picklist option for the Activity field of the VerificationHistory object.
- View streaming logout event data in any org with API access
- The LogoutEventStream object is now available in any org with the API Enabled permission.
- See more data about user login events
- Use the CountryIso field on the LoginEvent object to see the country code where a user logged in to Salesforce.
- Use the HttpMethod field on the LoginEvent object to identify the HTTP method of the login request.
- Enable callouts to resources in Amazon Web Services over HTTP using the Signature Version 4 signing process
- Use the new AwsAccessKey, AwsService, AwsRegion, and AwsAccessSecret fields on the existing NamedCredential object.
- Build token-based named credentials for easier external connections
- Use the new AuthTokenEndpointUrl, JwtAudience, JwtFormulaSubject, JwtIssuer, JwtSigningCertificate, JwtTextSubject, and JwtValidityPeriodSeconds fields on the existing NamedCredential object.
Data Protection and Privacy
- Manage the version and lifespan of an authorization form
- Use the new AuthorizationForm object.
- Store your customers’ consent to an authorization form
- Use the new AuthorizationFormConsent object.
- Get info on the changes to values in the fields of an authorization form consent record
- Use the new AuthorizationFormConsentHistory object.
- Indicate the data use purpose associated with an authorization form
- Use the new AuthorizationFormDataUse object.
- Get info on the changes to values in the fields of an authorization form data use record
- Use the new AuthorizationFormDataUseHistory object.
- Get info on rules for sharing an authorization form data use object with users other than the owner
- Use the new AuthorizationFormDataUseOwnerSharingRule object.
- Get info on the list of access levels to an authorization form data use
- Use the new AuthorizationFormDataUseShare object.
- Get info on the changes to values in the fields of an authorization form record
- Use the new AuthorizationFormHistory object.
- Get info on rules for sharing an authorization form object with users other than the owner
- Use the new AuthorizationFormOwnerSharingRule.
- Get info on the list of access levels to an authorization form
- Use the new AuthorizationFormShare object.
- Specify the text and language of an authorization form
- Use the new AuthorizationFormText object.
- Get info on the changes to values in the fields of an authorization form text record
- Use the new AuthorizationFormTextHistory object.
- Get info about data sensitivity values in the SecurityClassification picklist
- Use the new FieldSecurityClassification object.
- Track customers’ consent preferences for being contacted via mailing, social, and web
- Use the new mailing, social, and web values on the action parameter on the existing Consent object.
- Get customers’ consent preferences for a specific timestamp
- Use the new datetime parameter on the existing Consent object.
- Get customers’ consent preferences for being contacted for a specific reason
- Use the new purpose parameter on the existing Consent object.
- BEHAVIOR CHANGE: The Consent object includes more objects when aggregating customers’ consent settings
- The Consent object consults fields on the DataUsePurpose and ContactPointTypeConsent objects.
- New fields added
- The individual object now has three new fields: InfluencerRating, ConsumerCreditScore, and ConsumerCreditScoreProvider.
- DEPRECATED: Use EPT instead of UI_RENDER_TIME in Einstein Analytics.
- UI_RENDER_TIME is deprecated in Summer '19 with API version 46.0. Use the wave performance event type EPT field instead.
- Get notifications when an Einstein feature has written prediction results back to AI prediction fields
- Use the new AIPredictionEvent standard platform event. Subscribe to this event using processes, flows, Apex triggers, and Streaming API.
- The fields MessageIdentifier and ThreadIdentifier now include the idLookup property.
- Use the new EnhancedLetterheadId field to
determine which enhanced letterhead is associated with the email template.
Use the new read-only DeliveryRate, TotalDelivered, TotalSoftBounced, TotalHardBounced, TotalOpens, and TotalSent fields to understand engagement activity related to a template.
- Use the new object for the enhanced letterhead feature.
Field Service Lightning
- Create work type-based scheduling limits to control how many hours your team spends on specific types of jobs
Use the new WorkCapacityLimit, WorkCapacityUsage, and ServiceAppointmentCapacityUsage objects. To learn more, see Set Scheduling Limits for Different Types of Work.
- Choose whether service appointment notifications are sent on assignment or on dispatch
- Use the new IsAssignmentNotification and IsDispatchNotification fields on the FieldServiceMobileSettings object.
- IsUseSalesforceMobileActions field reserved for future use
- This field remains in the API for a future release.
- Start populating data into the Shift standard object
- The new Shift object will be used to schedule service resources in a future release.
- Get info on shift statuses
- Use the new ShiftStatus object.
- Get info on rules for sharing a shift object with users other than the owner
- Use the new ShiftOwnerSharingRule object.
- Get info on the list of access levels to a shift
- Use the new ShiftShare object.
- Get info on the changes to values in the fields of a shift record
- Use the new ShiftHistory object.
- Filter or sort flow interviews by whether or not they were paused from a screen
- Use the new WasPausedFromScreen field on the existing FlowInterview object.
- Get metadata about a flow definition
- Use the new FlowDefinitionView object.
- Get metadata about a flow version
- Use the new FlowVersionView object.
- Get metadata about a flow variable
- Use the new FlowVariableView object.
- Get the ID of the queue that the work assignment was originally routed to
- Use the new OriginalGroupId field on the AgentWork object.
- Get the ID of the preferred user to handle the work.
- Use the new PreferredUserId field on the AgentWork and PendingServiceRouting objects.
- Get the ID of the Omni-Channel queue
- Use the new GroupId field on the PendingServiceRouting object.
- Set the number of seconds to wait before a skill marked as Additional Skill is dropped from Omni-Channel routing. The case is then routed to the best-matched agent even if they don’t have all the skills.
- Use the new DropAdditionalSkillsTimeout field on the QueueRoutingConfig object.
- Set a skill to Additional Skill. After a designated timeout period, a skill marked as additional is dropped from Omni-Channel routing. The case is then routed to the best-matched agent even if they don’t have all the skills.
- Use the new IsAdditionalSkill field on the SkillRequirement object.
- Deprecate a package version
- Use the new IsDeprecated field on the MetadataPackageVersion object.
Permission Set Groups
- Get info about the visibility attributes that determine a record’s read access
- Use the new RecordVisibility (pilot) object.
Social Customer Service
- Specify the type of the first attachment on the social post
- Use the new supported values APPLICATION, AUDIO, and TEXT in the existing AttachmentType field on the SocialPost object.
- Retrieve the user's social network avatar
- Use the new AvatarURL field on the existing SocialPersona object.
- Add logic that controls the execution of macro instructions
- Use the new IF, ELSEIF, ELSE, and ENDIF values in the Operation field of a MacroInstruction object.
- Specify an expression that controls the execution of macro instructions
- Use the new ExpressionFilter object when defining a conditional statement in a MacroInstruction object.
- Define a condition used in an expression for a conditional macro
- Use the ExpressionFilterCriteria object to define a condition that’s used in an ExpressionFilter object.
- Show quick actions in the Actions & Recommendations component
- Use the new value QuickAction in the existing ActionType field on the RecordAction object.
- View the history of quick actions that started from the Actions & Recommendations component
- Look for the new value QuickAction in the existing ActionType field on the RecordActionHistory object.
- Newly documented fields for case milestones
- Introduced in a previous API version, the fields TimeSinceTargetInDays, TimeSinceTargetInHours, TimeRemainingInDays, and TimeRemainingInHours have been documented for the CaseMilestone object. As of API version 46.0, these fields are available in Lightning Experience.
Enterprise Territory Management
- Edit the Object Territory Assignment Rule page layout in Object Manager
- The describeLayout() property on the ObjectTerritory2AssignmentRule object makes Object Territory Assignment Rule available in Object Manager.
- Filter outlier values to improve event log data in reports and dashboards
- In the Lightning Page View event type, outlier values in the EFFECTIVE_PAGE_TIME field of over 60 seconds are now filtered out of the event logs.
- Changed data type for fields in Apex Unexpected Exception event type
- In the Apex Unexpected Exception event type of EventLogFile, the data type of EXCEPTION_MESSAGE and STACK_TRACE fields has changed from String to Text.
- When using this object to retrieve apps for use in your mobile apps, the mobileStartUrl now returns a fully qualified domain name for a Lightning community.
- The new channelProgramMemberhistory, lets users track the history of changes to a partner who is a member of a channel program.
- The new PreferencesDisableBestAnswerEmail, when false, lets users receive email when someone marks their answer to a post as best.
- Store the complete user input for a question label
- Use the new QuestionName field on the existing SurveyQuestion object.
- Store the complete participant response for a survey question
- Use the new ResponseValue field on the existing SurveyQuestionResponse object.
- BEHAVIOR CHANGE: Store up to 250 characters of user’s input for a question label
- Use the existing Name field on the SurveyQuestion object. This field previously stored the complete question label.
- BEHAVIOR CHANGE: Store up to 250 characters of a participant’s response for a question
- Use the existing ResponseShortText field on the SurveyQuestionResponse object. This field previously stored the complete participant response for a question.
Real-Time Event Monitoring (Beta)
- Stream and store real-time events in your org
- An EventStream object represents an instance of a real-time, streaming event that
occurs in your org. You can subscribe to EventStream objects, create transaction
policies to take actions when events occur, and more. The following
are included as part of Real-Time Event Monitoring (beta).
You can opt to store information about streaming events to an Event object, which is a big object that acts as a log for streaming events. The following Event objects are included as part of Real-Time Event Monitoring (beta).
- AdminSetupEventStream—Tracks when an admin makes changes to encryption keys in your org.
- ApiEventStream—Tracks user API queries in your org.
- LightningUriEventStream—Tracks when a user creates, accesses, updates, or deletes a record in Lightning Experience.
- ListViewEventStream—Tracks when a user accesses data with list views.
- LoginAsEventStream—Tracks when an admin logs in to your org as another user.
- LoginEventStream—Tracks when a user logs in to your org.
- LogoutEventStream—Tracks when a user clicks Log Out in the Salesforce UI. This object is enabled in all orgs with API access.
- ReportEventStream—Tracks when a user accesses or exports report data.
- UriEventStream—Tracks when a user creates, accesses, updates, or deletes a record in Salesforce Classic.
- AdminSetupEvent—Stores AdminSetupEventStream objects.
- ApiEvent—Stores ApiEventStream objects
- LightningUriEvent—Stores LightningUriEventStream objects
- ListViewEvent—Stores ListViewEventStream objects
- LoginAsEvent (GA)—Stores LoginAsEventStream objects
- LogoutEvent—Stores LogoutEventStream objects
- ReportEvent—Stores ReportEventStream objects
- UriEvent—Stores UriEventStream objects