Read about our update schedules here.
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 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.
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.
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.
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.
The following table shows a selection of patterns to look for (or build) in your org and anti-patterns to avoid or target for remediation.
✨ Discover more patterns for streamlined apps in the Pattern & Anti-Pattern Explorer.
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 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 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 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.
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.
The following table shows a selection of patterns to look for (or build) in your org and anti-patterns to avoid or target for remediation.
✨ Discover more patterns for helpful apps in the Pattern & Anti-Pattern Explorer.
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 |
Tool | Description | Streamlined | Helpful |
---|---|---|---|
Activate Your Lightning App Page | Manage page availability, naming, visibility and positioning | X | |
Adoption Dashboards | Review login history, feature adoption, and productivity | X | X |
Alert | Persist alerts over sessions and display them without user initiation | X | |
Client-side Caching of Apex Method Results | Evaluate performance with cached client-side data | X | |
Dynamic Forms | Only display required fields and page sections to users | X | |
Engagement Insights | Monitor recent user activity and take action as needed | X | X |
In-App Guidance | Utilize prompts and walkthroughs for training and onboarding | X | |
Learning Paths | Personalize user learning experiences | X | |
Lightning App Builder | Create custom mobile and Lightning pages without code | X | |
Lightning Data Service | Cache and share data across components | X | |
Lightning Design System Validator for VS Code | Validate markup against SLDS guidelines | X | X |
Lightning Page Templates | Build Lightning Pages for different form factors | X | |
Lookup Filters | Filter values for lookup, master-detail and hierarchical relationships | X | |
Manage Multiple Currencies | Use multiple currencies in transactions | X | |
Messaging | Send SMS, Facebook Messenger or WhatsApp messages | X | |
Mobile Publisher | Create mobile versions of Lightning apps and Experience Cloud sites | X | |
Mobile-Ready Components | Build components that perform well across mobile experiences | X | |
Multilingual Sites | Create different language versions of your site | X | X |
Notification Builder | Create custom notifications to present information | X | |
Path | Guide users through business processes and celebrate success | X | X |
Platform Cache | Improve performance and reliability when caching data | X | |
Preview Mobile App Pages in Lightning App Builder | Preview record and app pages on a mobile device | X | |
Prompt | Alert users of system-related issues and updates | X | |
Recognition Badges | Acknowledge and celebrate user accomplishments | X | |
Recognition with WDC | Endorse skills and give thanks | X | |
Record Types | Personalize business processes, picklist values, and page layouts | X | X |
Reputation Overview | Recognize participation and knowledge sharing | X | |
Restriction Rules | Prevent users from accessing records that can contain unnecessary data | X | |
Standard Page Components | Understand the standard Salesforce Lightning components | X | |
Translations | Manage translations for global users | X | X |
Validation Rules | Verify that data meets specified standards prior to saving | X |
Resource | Description | Streamlined | Helpful |
---|---|---|---|
Architect's Guide to Building Forms | Evaluate form design considerations and select the best tool | X | |
Configure Your Component for Different Form Factors | Configure components to render in desktops and phones | X | |
Customize Help Content | Tailor help content to your unique implementation | X | |
Default Field Values | Define default, dynamic, or static field values | X | |
Design Guidelines | Create user interfaces consistent with best practices | X | X |
Design Standards Template | Create design standards for your organization | X | X |
Design Testing Skills (Trailhead) | Plan methods for validating and testing a designs | X | X |
In-App Feedback Guidelines | Review guidelines to collect feedback from within your system | X | X |
Lightning Design System Android Static Library | Build native Android apps with the look and feel of Lightning pages | X | |
Lightning Design System iOS Static Library | Build native iOS apps with the look and feel of Lightning pages | X | |
Messaging Guidelines | Communicate relevant information and create moments of delight | X | |
Messaging Types | Understand the different messaging types based on user interaction | X | |
Navigation Guidelines | Help users move between pages and situate themselves in an app | X | |
Testing for Web Accessibility (Trailhead) | Utilize automated and manual tests to ensure accessibility | X | X |
User Engagement Guidelines | Review guidelines for onboarding, adoption, assistance, and learning | X | X |
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.