Read about our update schedules here.

Introduction

Systems demonstrate engaging behaviors by making it easy for people to access and use apps, making users feel they are getting more high-quality work done, and making people want to use apps in the system.

Delivering engaging behavior matters to the business because it directly correlates to user adoption as well as overall worker and customer satisfaction. Engaging behaviors also help reduce support requests and can help raise the quality of feature requests from users.

One of the challenges of creating engaging behavior is that it is difficult to measure by objective metrics alone. Instead, it is gauged by the subjective experiences of users; users feel that engaging apps provide genuine value. Engaging apps are accessible, non-intrusive, and easy to understand. They require a minimal amount of onboarding and training. And they use clear methods to proactively prevent user errors.

Another challenge is that engagement goals will often vary with the different types of user interactions in your system. For example, you may have one set of goals for internal users who are managing cases and another for external users who are submitting information through a form on your website. To design engaging systems, you need to carefully consider the type of engagements you’re trying to create, and why users would want to engage before you begin assembling features and pages.

Partnering with user experience (UX) designers will help you make much more effective decisions when it comes to delivering engaging apps. From an architectural perspective, user adoption and retention are crucial components of a healthy system. Engaging architectures reduce the likelihood of data quality issues caused by users hurrying through processes or skipping steps to avoid having to spend time in a system they don’t enjoy using. For external-facing systems, an engaging architecture can increase revenue and customer retention as customers who find your systems easier to work with choose to do more business with your organization.

You can create more engaging apps by focusing on delivering streamlined and helpful experiences.

Streamlined

Streamlined apps are easy to navigate, present information and data entry tasks clearly, and adapt to fit various form factors. Streamlined apps also feature experience patterns that users have become accustomed to in other commonly used applications. For example, most web browsers present “open in new tab” as the top option when users right-click a link. A streamlined app that contains tabs will follow the same pattern.

The impacts of inefficient app experiences can extend far beyond an individual app. Poor app experiences erode the trust of users. As more kinds of business-critical and customer-facing apps move to digital channels, this can cost companies the loyalty of key stakeholders.

You can better streamline your apps by being intentional in how you approach app complexity, form design, and form factors.

Application Complexity

Minimizing application complexity means users see only relevant menu items, tabs, and navigation controls. You’ll need to create mappings between user groups, user permissions, and the correct app experience. Use these mappings to understand what app experience to present to a given user and then ensure your app has the logical controls needed to deliver that experience.

Apps that present users with too much complexity can cause a variety of poor experiences:

These poor experiences lead to low adoption rates and satisfaction levels.

Consider the following when determining the right level of app complexity:

The list of patterns and anti-patterns below shows what proper (and poor) app complexity management looks like in a Salesforce org. You can use these to validate or improve your application designs.

To learn more about Salesforce tools that can help you manage application complexity,see Tools Relevant to Engaging.

Forms

Streamlined forms organize information into logical sequences, support quick data entry, and minimize required steps. They also allow for helpful client-side data validation messages and eliminate repeated form submission cycles.

Consider the following when designing forms:

Streamlined forms help increase data integrity in your apps and how helpful your apps feel to users. They can also reduce support tickets and requests, as users are better able to address errors and clearly understand the state of their form submissions. Further, streamlined forms enable fast and efficient data entry, and ensure that users won’t have to wait for longer-running processes to complete in order to carry out further work.

The list of patterns and anti-patterns below shows what proper (and poor) form design looks like in a Salesforce org. You can use these to validate or improve your form designs.

To learn more about Salesforce tools that can help you build more streamlined forms, see Tools Relevant to Engaging. For more specific guidance on choosing the right form tool for your use case, check out the Architect’s Decision Guide to Building Forms with Salesforce.

Form Factor

Engaging apps adapt gracefully to different devices and interaction types, or form factors. Depending on device type, different kinds of user interactions will be easier (or more difficult), and the readability for forms and fields will change. Keep in mind that in addition to screen dimensions, form factor also refers to how your users interact with the screen. An increasing number of devices now have touch screens and some users may also use special devices for accessibility. Be sure to take these factors into consideration when designing forms.

Failing to account for form factor variations can lead to a variety of issues, including:

To design for interoperability across form factors in your Salesforce apps, consider the following:

The list of patterns and anti-patterns below shows what proper (and poor) form factor awareness looks like in a Salesforce org. You can use these to validate your designs before you build, or identify pages that need to be refactored.

To learn more about Salesforce tools for effective form factor design see Tools Relevant to Engaging.

Streamlined App Patterns and Anti-Patterns

The following table outlines patterns to look for (or build) in your org and anti-patterns to avoid or target for remediation.

Patterns Anti-Patterns
App Complexity In your org:
- Apps have fewer than 10 tabs in the admin-provided default configuration
- No apps have "Disable end user personalization of nav items in this app" set to true
In your org:
- Apps routinely have more than 10 tabs in the admin-provided default configuration
- Many apps have "Disable end user personalization of nav items in this app" set to true or permission to customize nav items is disabled org-wide
Forms In your apps:
- Fields follow logical groupings
- Data input fields appear together, in groups of five or fewer
- Data entry errors are clear and appear at the field level, before users navigate away or submit data
- Pagination controls enable movement between steps
- Data submission happens once
- Labels for actions and navigation are clear
- Timely and visual feedback is provided to acknowledge user actions such as button clicks
- Navigation buttons (for example, "go", "next", and "back") are placed consistently throughout the UI
In your apps:
- Data input fields are not grouped logically, requiring an extensive amount of context switching by users filling out forms
- Data entry errors contain cryptic information that can only be interpreted by someone who understands the internal workings of the system
- Data entry errors only appear when a form's submit button is clicked
- Steps and groupings are not clearly defined, making navigation difficult
- Data submission happens multiple times throughout the data entry process
- Labels for actions and navigation are confusing to users who aren't familiar with underlying system functionality
- Visual acknowledgement of user actions is not provided
- Navigation buttons appear in arbitrary locations throughout the UI
In your form logic:
- Fields are prefilled or autocompleted as much as possible
- Users are not required to wait for long-running server-side actions to complete
- Custom components use cacheable=true for server-based actions that do not involve data operations
- Data operations are carried out once
- In LWC @wire adapters handle all actions not involving data operations
In your form logic:
- Fields that could be prefilled or autocompleted require manual entry
- Users have to stop working during the submission process to wait for server-side actions to complete
- Custom components set cacheable=false
Form Factor In your org:
- Salesforce-provided Lightning page templates are used for all or most pages
- Custom Lightning page templates use design:supportedFormFactors and design:supportedFormFactor in Aura component design files
- Custom LWC or Aura components available in App Builder declare supported form factors in their respective design files and implement width-aware styling patterns
In your org:
- Classic is still active
- Custom Lightning page templates do not uniformly use design:supportedFormFactors and design:supportedFormFactor in Aura component design files
- Custom LWC or Aura components available in App Builder do not consistently declare supported form factors in their respective design files
- In custom LWC or Aura components, width-aware styling is not implemented by Salesforce-provided interfaces
- In custom LWC or Aura components, styling for different form factors is driven purely by hardcoded px or % values in CSS
On desktop:
- Data input fields and navigation controls fit on the screen and can be interacted with as intended
- Record and app pages appear correctly, based on page activation assignment rules
On desktop:
- Data input fields and navigation controls do not appear in their intended locations on the screen
- Interactions with data input fields and navigation controls do not match required behaviors
- Lack of page activation assignment rules means all users see the same record and app pages
On mobile and tablets:
- Data inputs and navigation controls appear correctly
- Users can input data easily
- Mobile navigation menus, optimized for smaller form factors, appear
- Compact layouts appear at the record level
On mobile and tablets:
- Data inputs and navigation controls do not render consistently or correctly
- Users cannot input data easily
- Mobile navigation menus are not distinguishable from desktop navigation
- Compact layouts are not configured at the record level

Helpful

Helpful applications enable users to feel more empowered and effective, with fewer distractions or interruptions.

Helpful applications help maintain data integrity by mitigating manual errors and providing feedback to users when and where they need it. They help users understand what actions they need to focus on now and next, and provide relevant information to help users solve their own problems faster. They provide a clear link between a user’s actions and meaningful impact or achievements.

You can build more helpful applications with three key habits: notification and messages, in-app guidance, and recognition and rewards.

Notifications and Messages

Notifications and messages help users stay informed.

A well-designed notification and messaging system can increase engagement and productivity by providing users with the information they need to make critical decisions in a timely manner. A poorly designed notification and messaging system — one that presents messages that are neither relevant nor timely — will have the opposite effect. Internal users will quickly disable or ignore notifications, causing them to miss out on legitimate messages that may affect essential business processes. Customers or other external users who grow tired of meaningless notifications may decide to stop using your systems altogether.

When deciding how apps will handle sending notifications and messages to users, consider the following:

Include patterns for when to use notifications or different types of errors in your design standards to help ensure app builders follow consistent practices.

The list of patterns and anti-patterns below shows what proper (and poor) notifications and messaging looks like in a Salesforce org. You can use these to validate your designs before you build, or identify usages that need to be refactored.

To learn more about Salesforce tools for notifications and messaging, see Tools Relevant to Engaging.

In-App Guidance

In-app guidance can be a powerful way to demystify complex workflows (though you should make sure you’ve optimized them first) or help onboard new staff. It can be a great way to introduce process changes, highlight new features, or distribute training in an automated and scalable way. If it is not carefully implemented, however, in-app guidance can be overused. Frequent popups or alerts can create a tremendous amount of noise and interruption for users, leading to lost productivity. In-app guidance can also be underused, resulting in more cumbersome release and change management processes (especially for simple features). Ultimately, both overuse and underuse of in-app guidance lead to a number of issues that pose risks to the business, including:

Keep in mind that you may want to use in-app guidance differently in different scenarios, as a user’s mindset will dictate how much guidance is “too much” versus “not enough”. Users who are being introduced to a new system for the first time will likely require more frequent messaging than users who are simply learning about a new feature in a system they’re already familiar with.

Here are some keys to creating effective in-app guidance:

The list of patterns and anti-patterns below shows what proper (and poor) in-app guidance looks like in a Salesforce org. You can use these to validate designs before you build, and identify implementations that need to be refactored.

To learn more about Salesforce tools for in-app guidance, see Tools Relevant to Engaging.

Recognition and Rewards

Building recognition and rewards into an app helps the individuals using that app feel more connected to the impact of their work and better understand the value of their contributions, productivity, and performance. It is also a powerful way to unlock loyalty and engagement.

Not designing for recognition or rewarding app experiences can contribute to a variety of problems, including:

Rewarding app experiences can be difficult to design and deliver, because they depend on company culture, policies, and standards as well as the context and preferences of individual users. Features that may help desktop users feel moments of delight or appreciation may become an irritation to a user on mobile or a user trying to work from a noisy, busy home office. People using an app to work with information that is private or highly sensitive may not appreciate communication about milestones in the form of confetti celebrations or badges. A distributed sales team, in contrast, may see such gamification as an appropriately rewarding app experience. Ultimately, the implementation patterns you choose may be best determined by working with user experience (UX) designers on a team.

When it comes to architecture, it’s important to identify how and where apps can implement features that help users feel recognized and rewarded. It’s also key to understand how and where these features could make apps less reusable or take away from delivering real business value.

Here are some questions to consider when evaluating recognition and rewards in Salesforce apps:

The list of patterns and anti-patterns below shows what proper (and poor) recognition and rewards looks like in a Salesforce org. You can use these to validate designs before you build, and identify implementations that need to be refactored.

To learn more about Salesforce tools for recognition and rewards, see Tools Relevant to Engaging.

Helpful App Patterns and Anti-Patterns

The following table outlines patterns to look for (or build) in your org and anti-patterns to avoid or target for remediation.

Patterns Anti-Patterns
Notifications and Messages Your design standards include:
- Approved use cases for notifications, toasts, and notices
- Design patterns for toast variants and notifications
- Design patterns for error messaging
If design standards are defined at all, they do not address errors and notifications
In your org:
- Notifications are the predominant messaging format
- Toast messages use variants
- Toast messages with mode set to sticky do not exist
- Notices are used rarely, if at all
- Generative responses always identify data sources used
- Bots clearly identify themselves before the first interaction with users
- Disclaimers for risks associated with generative AI appear to users before first interaction
- AI disclaimers are in clear and understandable language for users
In your org:
- Emails are the predominant messaging format
- There is no consistent approach to message types
- Toast messages do not consistently use variants
- Toast messages with mode set to sticky exist
- Notices are used ad hoc
- Generative responses do not identify data sources used
- Bots do not clearly identify themselves before the first interaction with users
- No disclaimers for generative AI risks appears to users
- AI disclaimers are not in clear and understandable language for users
In your apps:
- No generative responses are sent directly to end users without points of human involvement
In your apps:
- Generative responses are sent directly to end users without points of human involvement
Also see: Error Handling
In-App Guidance Your design standards and documentation include:
- Approved use cases for in-app guidance
- Design patterns for prompts and walkthroughs
- A clear matrix of users, apps, and active in-app guidance
If design standards and documentation exist, they:
- Do not address in-app guidance
- Do not include a clear matrix showing users, apps, active in-app guidance
In your org:
- The setting for "Delay Between In-App Guidance" uses the default value or a custom value that is longer than the default (24-hour) period provided by Salesforce
- No apps have more than one active walkthrough
- No walkthroughs have a "Times to show" setting that is higher than 10
- No prompts are activated for "Any page, any app" or "This page, any app"
In your org:
- The setting for "Delay Between In-App Guidance" is set to a period that is shorter than the default (24-hour) period provided by Salesforce
- Apps have more than one active walkthrough
- Many walkthroughs have a "Times to show" setting that is higher than 10 (and some have the maximum value of 30)
- Prompts are activated ad hoc, many with the "Any page, any app" or "This page, any app" setting
Recognition and Rewards In your org:
- Apps use embedded analytics to show users relevant goal progress and productivity stats
- Path celebrations are enabled only with user consent
- Notifications and messaging include user recognition, and reflect user preferences in the design of who is notified and what triggers notifications
In your org:
- Analytics related to goal progress and productivity stats are only available in reports or manager dashboards
- Path celebrations are enabled without checking for user consent
- Notifications and messaging do not include any kind of user recognition or don't reflect the preferences of users and feel noisy or gimmicky

Tools Relevant to Engaging

ToolDescriptionStreamlinedHelpful
Activate Your Lightning App PageManage page availability, naming, visibility and positioningX
Adoption DashboardsReview login history, feature adoption, and productivityXX
AlertPersist alerts over sessions and display them without user initiationX
Client-side Caching of Apex Method ResultsEvaluate performance with cached client-side dataX
Dynamic FormsOnly display required fields and page sections to usersX
Engagement InsightsMonitor recent user activity and take action as neededXX
In-App Guidance Utilize prompts and walkthroughs for training and onboardingX
Learning PathsPersonalize user learning experiencesX
Lightning App BuilderCreate custom mobile and Lightning pages without codeX
Lightning Data ServiceCache and share data across componentsX
Lightning Design System Validator for VS CodeValidate markup against SLDS guidelinesXX
Lightning Page TemplatesBuild Lightning Pages for different form factorsX
Lookup FiltersFilter values for lookup, master-detail and hierarchical relationshipsX
Manage Multiple CurrenciesUse multiple currencies in transactionsX
Messaging Send SMS, Facebook Messenger or WhatsApp messagesX
Mobile PublisherCreate mobile versions of Lightning apps and Experience Cloud sitesX
Mobile-Ready ComponentsBuild components that perform well across mobile experiencesX
Multilingual SitesCreate different language versions of your siteXX
Notification BuilderCreate custom notifications to present informationX
PathGuide users through business processes and celebrate successXX
Platform CacheImprove performance and reliability when caching dataX
Preview Mobile App Pages in Lightning App BuilderPreview record and app pages on a mobile deviceX
PromptAlert users of system-related issues and updatesX
Recognition BadgesAcknowledge and celebrate user accomplishmentsX
Recognition with WDCEndorse skills and give thanksX
Record TypesPersonalize business processes, picklist values, and page layoutsXX
Reputation OverviewRecognize participation and knowledge sharingX
Restriction RulesPrevent users from accessing records that can contain unnecessary dataX
Standard Page ComponentsUnderstand the standard Salesforce Lightning componentsX
TranslationsManage translations for global usersXX
Validation RulesVerify that data meets specified standards prior to savingX

Resources Relevant to Engaging

ResourceDescriptionStreamlinedHelpful
Architect's Guide to Building FormsEvaluate form design considerations and select the best toolX
Configure Your Component for Different Form FactorsConfigure components to render in desktops and phonesX
Customize Help ContentTailor help content to your unique implementation X
Default Field ValuesDefine default, dynamic, or static field valuesX
Design GuidelinesCreate user interfaces consistent with best practicesXX
Design Standards TemplateCreate design standards for your organizationXX
Design Testing Skills (Trailhead)Plan methods for validating and testing a designsXX
In-App Feedback GuidelinesReview guidelines to collect feedback from within your systemXX
Lightning Design System Android Static LibraryBuild native Android apps with the look and feel of Lightning pagesX
Lightning Design System iOS Static LibraryBuild native iOS apps with the look and feel of Lightning pagesX
Messaging GuidelinesCommunicate relevant information and create moments of delightX
Messaging TypesUnderstand the different messaging types based on user interactionX
Navigation GuidelinesHelp users move between pages and situate themselves in an appX
Testing for Web Accessibility (Trailhead)Utilize automated and manual tests to ensure accessibilityXX
User Engagement GuidelinesReview guidelines for onboarding, adoption, assistance, and learningXX

Tell us what you think

Help us keep Salesforce Well-Architected relevant to you; take our survey to provide feedback on this content and tell us what you’d like to see next.