In-App Prompts for ISVs

Michael Holt
AppExchange and the Salesforce Ecosystem
6 min readJul 4, 2019

Since the release of Lightning Experience on the Salesforce Platform in 2015, we have continued to innovate on the platform and provide a wealth of new and improved features, as well as UI enhancements. The three releases per year have not ceased to improve end-user productivity and provide partners with the tools and technology innovate on their own AppExchange offerings.

All of this innovation has lead to a highly customisable platform and ecosystem of applications, requiring tailored educational prompts and coaching. We’re going to explore some of the newest features to help Salesforce partners incorporate guided learning into your products and tailor this to your apps, pages, and users.

Introducing User Engagement

As of Summer ’19, the Setup menu welcomes a new resident; User Engagement! User Engagement provides a number of features, including the options to toggle various prompts and guides on and off. We also have a new feature, under “Help Menu” allowing admins to create a custom section and underlying links to resources that will appear in the standard Salesforce Help Menu — pretty cool!

Where we’re going to focus on is the In-App Guidance option. In-App Guidance is the ability to create custom prompts within apps, add them to specific pages, and tailor the messaging accordingly. The prompts can be added to areas of out-of-the-box Salesforce pages and best of all, they’re packagable! So you, our ISV Partners, can begin to provide a tailored learning experience to your customers.

There are a huge variety of use cases for this feature, one example is using our Sparkle Recruiting App Interviewer Console Page, we can now instruct the users that they should select the different interview records to see the related Twitter and Referrals information, like so:

So let’s dive into the In-App Guidance in the setup menu and take a look at how this is done. The menu starts by giving us the option to “Add Prompt” and use the Authoring Bar to create and edit them. The Authoring Bar can be thought of as the “Lightning App Builder for prompts”; it allows us to navigate our apps and pages, to find the right home for our prompt. Note: Unlike the Lightning App Builder which runs in design time, this authoring mode is in run time, meaning that prompts you create will often be immediately available.

Authoring Bar

Clicking the “Add Prompt“ button gives us the opportunity to create two different prompt types. The Floating prompt stays in the chosen position until a user navigates away, takes action, or closes the prompt. The Docked prompt stays in the bottom right of the screen and can be minimised and maximised by the user, making it ideal for more guided, step-by-step instruction.

Floating versus Docked Prompts

It’s not currently possible to point a prompt to a particular component or menu within Salesforce. However, in the case of Floating prompts, admins and partners are able to select one of six screen segments in which the prompt should appear. For example, if we are referencing some material on the right-hand side, then it makes sense to show the prompt on the left!

Floating Screen Prompt Position

Moving through the menu, we’re able to indicate the users for whom the prompt will be shown, via permissions. Note that this permission selection is treated as an “AND” and users must, therefore, have all of the permissions required. If you wish to provide combinations of permissions, at this stage you will need to duplicate the prompt.

Content is where we begin to create the information to be hosted within our component. Dynamic prompts provide a rich text entry, whilst Floating prompts are plain text only. Floating Prompts do, however, give us the option to add an “Action Button” to our prompt, for example sending users to some relevant video training materials. The stats for interactions with this button are also captured, but we’ll come back to that later.

The Schedule gives us the ability to add a start date and optionally, as well as an end date if we’re planning on running specific adoption campaigns at specific times. Schedule also provides us the ability to continue to prompt customers more than once, but we might not want to hassle them every day. Let’s say we want to remind our customers about a cool new feature in our app every Monday for five weeks, or until they follow the action button to view our training video. We can do this by setting “Times to Show” to 5 and “Days in Between” to 7. If we have an Action Button, the prompt will automatically stop showing to users who click the Action Button, if we have no Action Button, it will stop showing once the user acknowledges the prompt by clicking the dismiss button.

Schedule Prompt

The last page in the creation wizard is purely administrative, to provide the Prompt with a name, an API name, and a description. Once we save, we’re shown a preview of our prompt and can continue to work on it, or hit Done, to finish. Note, that this prompt is immediately added to the page we’re on — remember how we mentioned the Authoring Bar exists in run time? That means our prompt is now live, but we still have the option to move throughout our app, to see if there are other places it may make sense to add our prompt.

We mentioned earlier that the prompts are packagable and observant readers may have noticed a new option within the Package Manager — Prompts! Selecting the Prompt and adding it to our package allows us to easily deploy everything we’ve just built in the wizard.

And lastly, remember that we mentioned the stats for the Action Button are captured? Admins can see all of their prompts, combined with the prompts from their installed packages, under the In-App Guidance page in the Setup menu. They can disable prompts as necessary and see the percentage of users who have completed the prompt. Either by hitting the Action Button, for those prompts that have one, or by acknowledging the prompt using the Dismiss button:

Pretty great, huh? Now, let’s dive into some FAQs.

FAQs

Can ISV Partners Create and Package Prompts on Pages that are not part of their apps?
Yes, it is by design that ISV Partners can create and package Prompts for any App. For example, they can create guidance prompts against the out-of-the-box Salesforce apps in Lightning.

What are the Subscriber/Developer controls for the Prompt Metadata type (Upgradeable, Subscriber Deletable, Developer Deletable, Protectable, IP Protection)?

  • Upgradeable: Yes
  • Subscriber Deletable: No. Note: The admin in the subscriber org can Deactivate a prompt to have it stop showing.
  • Protectable: No
  • IP Protection: No

Can Prompts be created for VF Pages, Lightning Console Apps?
The prompt authoring bar that appears at the top of the page will let you know if you can create a prompt on that page. If you cannot, the “Add Prompt” button will be disabled. Console Apps or VF pages created as a custom tab are supported. Some Apps and pages are not supported, e.g., Related List pages, Setup, Communities, etc..

When will Prompts be available on Communities?
Enabling Prompts in other Apps like Communities is on the roadmap, but currently no ETA.

Are Prompts going to be exposed on Salesforce Mobile?
Enabling Prompts in mobile is on the roadmap, but currently no ETA.

Is the Prompt metadata upgradeable so push upgrades work?
Yes, Managed Packages with Prompts are upgradeable.

--

--

Michael Holt
AppExchange and the Salesforce Ecosystem

ISV Technical Evangelist working at Salesforce. Developer, interested in all things technology.