Skip to main content

Deploying CarePilot Dictate with MDM (configuration profile)

Written by Tanner Helton

Overview

A macOS configuration profile (.mobileconfig) lets IT lock two CarePilot Dictate settings on every managed Mac: whether the app updates itself, and how long it waits before signing out an inactive user.

This article is for IT administrators who manage Macs with an MDM such as Jamf Pro, Kandji, Microsoft Intune or Mosyle. When a setting is managed, users see it as locked in Dictate with the note "Managed by your organization." Removing the profile gives control back to the user.

Managed settings apply to the Mac app only. Windows installs are not affected by a configuration profile.

Before you begin

You need three things:

  • Enrolled Macs with CarePilot Dictate installed, managed by an MDM that can deliver custom configuration profiles or custom preference settings.

  • The preference domain com.carepilot.dictate. This must match exactly, or the profile has no effect.

  • A plan for updates. If you turn off in-app updates, your team becomes responsible for deploying new Dictate versions. CarePilot still enforces a minimum supported version, and a Mac below it loses dictation access until it is updated.

Policies are read when Dictate launches. After you install, change or remove a profile, users must fully quit Dictate from its menu bar icon and reopen it. Closing the settings window is not enough, because the app keeps running in the menu bar.

Deploy the profile

You can deploy either a complete .mobileconfig file or just the settings, depending on what your MDM accepts.

  1. Choose your values. Decide whether to turn off in-app updates and which inactivity timeout to enforce. See the settings reference below.

  2. Prepare the profile. Copy the sample profile below into a file named carepilot-dictate.mobileconfig. Replace both PayloadUUID values with new UUIDs (run uuidgen in Terminal), and change the PayloadIdentifier values to use your organization's naming.

  3. Upload it to your MDM. Use the vendor notes below. If your MDM asks for a preference domain and a plist separately, use the settings-only plist instead of the full profile.

  4. Scope it to a test group first. Assign the profile to one or two test Macs and verify it (see Verify the deployment) before rolling it out.

  5. Ask users to restart Dictate. Users must quit Dictate from the menu bar and reopen it for the policy to apply.

Sample profile

This profile turns off in-app updates and signs users out after 15 minutes of inactivity. The file is unsigned. Most MDMs sign profiles when they deliver them.

<?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>PayloadType</key>   <string>Configuration</string>   <key>PayloadVersion</key>   <integer>1</integer>   <key>PayloadIdentifier</key>   <string>com.carepilot.dictate.managed-profile</string>   <key>PayloadUUID</key>   <string>2A85E722-8B8D-4FD4-A46E-1D0D6A3D6992</string>   <key>PayloadDisplayName</key>   <string>CarePilot Dictate managed settings</string>   <key>PayloadScope</key>   <string>System</string>   <key>PayloadContent</key>   <array>     <dict>       <key>PayloadType</key>       <string>com.apple.ManagedClient.preferences</string>       <key>PayloadVersion</key>       <integer>1</integer>       <key>PayloadIdentifier</key>       <string>com.carepilot.dictate.managed-preferences</string>       <key>PayloadUUID</key>       <string>53F67428-9705-4CF3-8D8B-4C0EFB19E1EC</string>       <key>PayloadDisplayName</key>       <string>CarePilot Dictate preferences</string>       <key>PayloadContent</key>       <dict>         <key>com.carepilot.dictate</key>         <dict>           <key>Forced</key>           <array>             <dict>               <key>mcx_preference_settings</key>               <dict>                 <key>DisableAppUpdates</key>                 <true/>                 <key>InactivityTimeoutMinutes</key>                 <integer>15</integer>               </dict>             </dict>           </array>         </dict>       </dict>     </dict>   </array> </dict> </plist>

Settings-only plist

Use this when your MDM asks for a preference domain (com.carepilot.dictate) and a plist file separately.

<?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>DisableAppUpdates</key>   <true/>   <key>InactivityTimeoutMinutes</key>   <integer>15</integer> </dict> </plist>

Vendor notes

Menu names change between MDM versions. Check your vendor's documentation if a path below does not match.

MDM

Where to add it

What to upload

Jamf Pro

Configuration Profiles → New → Application & Custom Settings → Upload

Preference domain com.carepilot.dictate and the settings-only plist

Kandji

Library → Add new → Custom Profile

The full .mobileconfig

Microsoft Intune

Devices → macOS → Configuration → Create → Templates → Preference file

Preference domain com.carepilot.dictate and the settings-only plist

Mosyle

Management → Custom Profiles

The full .mobileconfig

Other MDMs

Any custom profile or custom settings payload

The full .mobileconfig, or the domain and settings-only plist

Settings reference

The profile supports two keys. Leave a key out to keep the user in control of that setting.

Key

Type

Accepted values

Effect

DisableAppUpdates

Boolean

true or false

true stops all in-app update downloads and installs, including Check for updates, Restart now, idle installs and install on quit. false keeps normal update behavior.

InactivityTimeoutMinutes

Integer

0, or 5 to 120

Locks the minutes without Dictate activity before the user is signed out. 0 locks the setting to Never.

What counts as activity. Only using Dictate itself: interacting with its window or dictating. Typing in other apps does not keep a user signed in. Sleep and restarting the app do not reset the timer. Dictate does not track system-wide keystrokes to measure this.

The seven-day limit still applies. Every sign-in expires after seven days, even when the timeout is 0 (Never).

Invalid values fall back to the stricter setting. Dictate logs a configuration warning and then:

  • treats an invalid DisableAppUpdates value as true (updates off)

  • treats an invalid InactivityTimeoutMinutes value as 15 minutes

Common mistakes that count as invalid: strings such as "true" or "15", decimal numbers such as 15.0, negative numbers, and timeouts from 1 to 4 or above 120.

Profile values only. Dictate reads only settings that an MDM profile enforces. Values set with defaults write on a Mac are ignored for policy.

Verify the deployment

Test on one enrolled Mac before rolling out widely. Use a test account, not a clinician's live account.

  1. Confirm the profile arrived. On the Mac, open System Settings → General → Device Management (Privacy & Security → Profiles on older macOS) and check that the CarePilot Dictate profile is listed.

  2. Confirm the settings landed. In Terminal, run defaults read "/Library/Managed Preferences/com.carepilot.dictate". You should see the keys and values you deployed.

  3. Restart Dictate. Quit it from the menu bar icon and reopen it.

  4. Check the About page. Under Updates you should see "App updates are installed by your administrator." The "Sign out when inactive" setting should be locked and show "Managed by your organization."

  5. Test the timeout. With a short value such as 5, leave Dictate idle past the timeout. Dictate should return to the sign-in screen. Active dictation should keep the user signed in.

  6. Test removal. Remove the Mac from the profile's scope, restart Dictate, and confirm the user can change the settings again.

Troubleshooting and FAQ

The profile is installed, but Dictate still lets users change the settings. Dictate reads policy only at launch. Have the user quit Dictate from the menu bar and reopen it. If the settings are still unlocked, check that the preference domain is exactly com.carepilot.dictate.

The timeout is 15 minutes, but I set something else. The value was probably invalid, so Dictate used its 15-minute fallback. Make sure the value is an integer (<integer>, not <string> or <real>) and is 0 or between 5 and 120.

Updates are off, but I never set DisableAppUpdates to true. An invalid value, such as the string "false", turns updates off. Use a real Boolean (<false/>) or remove the key.

Where do I find the configuration warning? In Dictate's log on the affected Mac, at ~/Library/Logs/com.carepilot.dictate/. Warnings start with [mdm].

Users lost dictation access after we turned off updates. Their installed version is probably below CarePilot's minimum supported version. Deploy the current Dictate release through your MDM. Turning off in-app updates does not exempt a Mac from the minimum version.

Can I still push new versions with my MDM when updates are off? Yes. The profile only blocks Dictate's own updater. Replacing the app through your MDM or another install process still works.

What happens to a user's own setting when we remove the profile? The user's saved setting returns after they restart Dictate. Managed values never overwrite the user's own preferences.

Does this work on Windows? No. Configuration profiles are a macOS feature, and Windows installs of Dictate are not affected.

Did this answer your question?