Overview
This article covers the installation process of the Pendo Launcher on a Mac computer using JAMF.
Planning your Pendo Launcher install will help your team accurately capture all of the Visitor and Account metadata you'll need to install the Pendo Launcher on their computer.
If you don't wish to use an MDM device to force install the Pendo Launcher to your users, you can also install the Pendo Launcher via the Chrome Admin Console and instructions for that process can be found here. Force installing the Pendo Launcher via the Chrome Admin Console, however, will not allow you to push metadata.
Installation Process For Mac Via JAMF
- Determine the Google Chrome Extension ID of the particular version of the Pendo Launcher you are using
-
(OPTIONAL) Force Install Extension Via MDM Tooling
- Determine metadata values you intend to configure onto the machine.
- Create a .plist file for chrome using these strings
- Push the plist file to the user’s machine
- Confirm the plist file is correctly imported
- Verify policy configurations in Chrome
Determine Google Chrome Extension ID
For the purpose of this document the Google Chrome Extension ID will be called <EXTENSION_ID>. This ID will remain the same through major and minor version updates, but there may be other versions of the Pendo Launcher deployed to the Chrome Extension Store intended for use by other organizations. You can check this value by navigating to chrome://extensions in Chrome.
(OPTIONAL) Force Install Extension Via MDM Tooling
If you don't want to use an MDM like JAMF to install the extension you can use the Chrome Admin Console. Documentation for that process can be found here. This document, however, will cover the installation process via JAMF.
In order to deploy the extension you will need to configure two settings for your users: the extension itself and the metadata you intend to use. You don’t need to use JAMF for both, but you can.
To install the extension via JAMF select Computers > Configuration Policies > Applications & Custom Settings > Upload > Add.
In the Upload File section input this code block:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ExtensionInstallForcelist</key>
<array>
<string>epnhoepnmfjdbjjfanpjklemanhkjgil</string>
</array>
</dict>
</plist>
Determine Metadata Values
In JAMF there are several payload variables that are used to populate settings in a configuration profile and metadata in a P-list. Here is a list of payload variables that come standard in any JAMF configuration (they might be empty if you haven’t uploaded data for them.)
The values you will need to properly configure metadata for the Pendo Launcher are as follows: ID correlates with $EMAIL and positions correlates with $POSITION. Below is an example of what your string will look like.
1{
2 "id": "$EMAIL",
3 "position": "$POSITION",
4}
These values, however, should be stored as a stringified JSON object with all XML incompatible characters escaped. Here are a few online tools you can use to do so: FreeFormatter AppDevTools. Your XML-escaped string should now look like this:
1{
2 "id": "$EMAIL",
3 "position": "$POSITION",
4}
Create .plist File
Using the strings it’s now time to create a .plist file for Chrome. Plist files are unique to Mac systems. PLIST (stands for Property List) is an extension used to save preferences of applications. These files are formatted in XML and contain properties and configuration settings for various programs.
For the Property List field, input the script found below:
<plist version="1.0">
<dict>
<key>APIKey</key>
<string>YOUR API KEY HERE (REQUIRED)</string>
<key>visitor</key>
<string>YOUR VISITOR STRING HERE (OPTIONAL, BUT RECOMMENDED)</string>
</dict>
</plist>
There are a few things to notice with this file:
-
The first key value pair under both visitor and account keys are:
<key>state</key> <string>always</string>
The state key is used by the MCX preferences to determine how often this policy should be enforced; setting it to always keeps this policy in place at all times.
-
The string values after the key named value contain your XML escaped JSON strings from step 2.
Locating Your API Key
You can access your API key by navigating in Adopt to Setting > Subscriptions.
Push .plist File
In JAMF select Computers > Configuration Profiles > Browsers > New.
This will then prompt you to create a new configuration profile. Fill in each of the sections on the screen below as you see fit. Pendo, however, recommends that the distribution method be configured to “Install Automatically” so users have access to the Launcher immediately and won’t be able to remove it.
Then navigate to Configuration Profiles > Applications & Custom Settings > Upload. In the Preference Domain field, input com.google.Chrome.extensions.InsertYourExtensionID. When inputting your com.google.Chrome.extensions.InsertYourExtensionID into the Preference Domain, keep in mind that your extension ID should be added at the end of the domain.
For the Property List field, input the script found in the Create .plist file section.
Once you’ve updated your Preference Domain and Property List, navigate to Applications & Custom Settings > Upload > Add.
Under the Scope tab, determine Scope to your test computers that should have the extension and metadata. Then click Save and you will be prompted to select Redistribution Options. Pendo recommends selecting Automatically Update.
Navigate to Settings > Profiles on the Target computer. You should see a profile with the title that matches the Configuration Profile.
The content of the Custom Settings section should also be equivalent to the code block you previously inputted.
It will, however, be a JSON file instead of an XML file.
Confirm .plist Is Imported Correctly
In order to ensure the .plist was imported successfully confirm that a file /Library/Managed\ Preferences/com.google.chrome.extension.YourExtensionID.plist exists and is a binary encoded version of the above .plist file.
Verify Policy Configurations In Chrome
To verify that the policies have been correctly configured into chrome, navigate to chrome://policy.
After clicking refresh policies, you should see your strings configured as chrome policies for the Pendo Launcher.
To verify the metadata is being correctly injected into the agent, right click the Pendo Launcher and click "Show Debug Info".
If the Pendo Launcher is collecting information properly, you will see a message stating "The Pendo Launcher is collecting data on this page." This means your Pendo Launcher is installed.
If the Pendo Launcher is NOT collecting information on the page, you will see this message below.
Console Command
You can also type pendo.validateInstall() into the console. The result should show all of your metadata in a parsed format.
Validation Of Metadata
The image below describes whether or not the Pendo Launcher is active. If the Pendo Launcher is pink, it is successfully installed and collecting metadata. If the Pendo Launcher is grey, it is inactive and not collecting information.
Frequently Asked Questions
How Often Is The Extension Updated?
Pendo updates and maintains the Pendo browser extension, including regular agent updates and feature enhancements. Updates to the extension are submitted to the corresponding browser owners (e.g. the Chrome Web Store) where they go through a security audit before being published. Chrome and Edge automatically check for extension updates (e.g. Chrome checks every 12 hours). Chrome and Edge can also be configured to automatically update extensions when a newer version is available.