Skip to main content
Actions

Deploy browser extensions

How this action force-installs Chrome, Edge and Firefox extensions on Windows, macOS and Linux, which settings it has and when the step fails.

Use this action to force-install extensions for Google Chrome, Microsoft Edge and Mozilla Firefox for every user on a Windows, macOS or Linux device. octoja does this through the browsers' enterprise policies. The device must be online.

Prerequisites

  • The View Automations and Manage Automations permissions, plus the Run Script device action on the test device for a Test run. See Create an automation for workflow setup.
  • The extension ID and the appropriate source for each browser. Use only trusted sources that the target device can reach.

Deploy extensions

  1. Open or create a workflow under Configuration → Automations.

  2. Add Deploy browser extensions and select the step.

  3. Click Add extension, choose the browser, and enter Extension ID and Source URL. If you change the browser, update the source URL explicitly.

    The disabled automation draft with the Deploy browser extensions step open. Its configuration shows Google Chrome, an extension ID, the Chrome Web Store source URL, and the Add extension and Import CSV or Excel file buttons.

  4. Add further extensions or import a list if needed.

  5. Use Test run on one device. Then check the extension in the relevant browser before saving and enabling the workflow for more devices.

Policies affect all users of the device, including during a test run. The step never removes anything from the device: Remove extension only deletes the workflow row. Policies from earlier runs also stay in place if you delete the step or disable the automation.

Configuration fields

The step holds a list of extensions and needs at least one before you can save the automation. Each row has these fields:

FieldTypeRequiredDefaultDescription
BrowserselectionYesGoogle ChromeGoogle Chrome, Microsoft Edge or Mozilla Firefox. Switching the browser leaves the Source URL unchanged.
Extension IDtextYes—For Chrome and Edge, exactly 32 lowercase letters from a to p. For Firefox, the add-on ID; any non-empty value is allowed. Each ID may appear only once per browser, ignoring case. No variables.
Source URLtextYeshttps://clients2.google.com/service/update2/crxFor Chrome and Edge, the extension's update URL — the Chrome Web Store URL is prefilled. For Firefox, the XPI file's installation URL. Must be an absolute URL starting with https://, http:// or file://. No variables.

Import a list

Import CSV or Excel file appends rows from a .csv, .xlsx or .xls file to the existing rows. Use these columns:

ColumnContent
BrowserChrome, Edge or Firefox
Extension IDThe extension ID; Extension-ID is also accepted as the heading.
Source URLThe source URL; Source-URL is also accepted as the heading.

Column and browser names are case-insensitive, and blank rows are skipped. If any other row is missing a value or names an unknown browser, octoja rejects the whole file with No valid extensions were found. Check the column names and values. Correct the file and import it again. After importing, check for duplicate entries; IDs and URLs are validated again when saving.

Platform support

PlatformSupported
WindowsYes
macOSYes
LinuxYes

On Linux, the device needs jq to merge the policy files. Without jq, the step fails.

Outputs

OutputDescription
configuredtrue when the policies for all listed extensions were written.
extensionCountNumber of extensions written.

Both values appear in the automation's Run history.

Result behaviour

The step writes the machine-wide policies and then finishes. It doesn't wait for the browser to download or install the extension, so Succeeded only means the policies are in place. If an extension is missing in the browser afterwards, check the applied policies there and whether the source URL is reachable from the device.

BrowserWindowsmacOSLinux
Google ChromeHKLM\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelistExtensionInstallForcelist in /Library/Managed Preferences/com.google.Chrome.plistExtensionInstallForcelist in /etc/opt/chrome/policies/managed/octoja-browser-extensions.json
Microsoft EdgeHKLM\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallForcelistExtensionInstallForcelist in /Library/Managed Preferences/com.microsoft.Edge.plistExtensionInstallForcelist in /etc/opt/edge/policies/managed/octoja-browser-extensions.json
Mozilla FirefoxExtensionSettings under HKLM\SOFTWARE\Policies\Mozilla\FirefoxExtensionSettings in /Library/Managed Preferences/org.mozilla.firefox.plist; EnterprisePoliciesEnabled is also set to trueExtensionSettings in /etc/firefox/policies/policies.json

For Firefox, the step sets installation_mode to force_installed. On macOS, it then restarts the cfprefsd preferences service so the browsers read the changed policies.

You can safely run the step again. For Chrome and Edge, an existing entry with the same extension ID gets the new source URL; for Firefox, the step replaces only that extension's entry. Other extensions' entries and other policies are kept.

Extensions are written one after another. If one fails — for example because an existing Firefox ExtensionSettings value on Windows or an existing policies.json on Linux isn't valid JSON — the step fails. Extensions written before it stay configured. If the device is offline when the step starts, If device is offline decides whether the run fails or the step is skipped.

See also: Create an automation