Deploy with any other MDM

The platform contract, so you can deploy the client from an MDM without a dedicated guide

Use this if your MDM does not have its own guide, including JumpCloud, Ivanti Neurons, ManageEngine Endpoint Central, Sophos Central, Rippling, Hexnode, Miradore, and Chef or Ansible-driven fleets. Everything the client needs is a signed package, a handful of configuration values, and on macOS four permission payloads.

What your MDM has to be able to do

RequirementmacOSWindows
Install a signed package silently, as the deviceinstaller -pkg or native pkg supportmsiexec /qn or native MSI support
Deliver configuration to a system-wide locationManaged preferences payload, or a custom profileRegistry values or MSI properties
Pre-approve system permissionsRequired. Custom profile payloads, see belowNot applicable
Re-evaluate required softwareRecommended, so a removed client returnsRecommended

If your MDM cannot deliver a custom configuration profile on macOS, it cannot deploy this client to Macs. The four payloads below are not optional: without them macOS prompts the employee at every permission gate, which defeats a managed deployment. Windows has no equivalent constraint, so a Windows-only fleet needs far less from its MDM.

macOS

1. Deliver the configuration profile

Download merge-workforce-client.mobileconfig from Devices → Deployment. It contains all four payloads, with your EnrollmentToken, OrgSlug, and API URLs already filled in:

PayloadPurpose
com.apple.system-extension-policyPre-approves the system extension, so it activates without a prompt
com.apple.webcontent-filterPre-approves network content filtering
com.apple.TCC.configuration-profile-policyGrants full disk access, needed to read MCP configuration files and to permit the Endpoint Security client for process and install events
com.apple.servicemanagementMarks the login item as managed, suppressing the notification

The com.merge.workforceclient preference domain arrives pre-filled with these keys:

1<key>EnrollmentToken</key>
2<string>YOUR_ENROLLMENT_TOKEN</string>
3<key>OrgSlug</key>
4<string>acme</string>
5<key>PolicyMode</key>
6<string>observe</string>

Upload it as a custom or signed profile, scoped to the device rather than the user, and confirm it has applied before installing the package:

$defaults read /Library/Managed\ Preferences/com.merge.workforceclient.plist

2. Install the package

$installer -pkg MergeWorkforceClient-<version>.pkg -target /

3. Confirm

$sudo launchctl list | grep com.merge.workforceclient
$systemextensionsctl list | grep -i merge

The extension should read [activated enabled].

Windows

1. Deliver the configuration

Any of these three, whichever your MDM supports:

Registry values
1New-Item -Path 'HKLM:\SOFTWARE\Policies\Merge\WorkforceClient' -Force
2Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Merge\WorkforceClient' -Name 'EnrollmentToken' -Value 'YOUR_ENROLLMENT_TOKEN'
3Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Merge\WorkforceClient' -Name 'OrgSlug' -Value 'acme'
4Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Merge\WorkforceClient' -Name 'PolicyMode' -Value 'observe'
MSI properties at install time
1msiexec /i MergeWorkforceClient-<version>.msi /qn ENROLLMENTTOKEN=YOUR_ENROLLMENT_TOKEN ORGSLUG=acme POLICYMODE=observe

2. Install the package

1msiexec /i MergeWorkforceClient-<version>.msi /qn

Require Windows 10 build 19044 or later as an install condition where your MDM supports one. Windows 10 reached end of support in October 2025, so Windows 10 devices also need Extended Security Updates enrollment.

3. Confirm

1Get-Service MergeWorkforceClient
2Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Merge\WorkforceClient'

Identity without a supported MDM connection

Identity needs nothing from your MDM: the employee completes a one-time sign-in from the menu bar prompt, and Merge binds the verified identity to the device. See Assigning identity at deployment.

Verify the whole thing worked

Whatever the MDM, the check is the same: the device appears in Devices within a minute of the service starting, and shows the resolved employee once they complete the one-time sign-in. If it stays unattributed, work through Troubleshooting.

Next steps