Skip to content

JAMF Setup Checklist

Scott Kendall edited this page Apr 29, 2026 · 12 revisions

Introduction

The JAMF Concepts team came up with this little gem called "Setup Checklist" (https://github.com/Jamf-Concepts/setup-checklist). Often times after an enrollment, you need to make sure that users are logged into specific apps, screen sharing is enabled, dock applications are installed, etc...That is what this program does for you, in a nicely formatted step-by-step GUI window. Here is a sample of what you can do with it

JAMFCheckList_EnrollmentDone.mp4

Full details on how this application works can be found here: https://github.com/Jamf-Concepts/setup-checklist

For the recording above, I used the open source application called Recordly https://recordly.dev

Learning how to use the JAMF Setup Checklist can be a little overwhelming as there are a lot of configuration options. I have listed my Configuration Profile below for your reference:

Configuration Profile

Domain: com.jamf.setupchecklist

<?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>DEBUG</key>
    <true/>
	<key>accentColor</key>
	<string>##red</string>
	<key>hideOtherApps</key>
	<false/>
	<key>icon</key>
	<string>/Library/Application Support/GiantEagle/Enrollment/GE_Icon.png</string>
    <key>title</key>
    <string>Enrollment Checklist</string>
	<key>message</key>
	<string>Let&apos;s finish setting up your new Mac!</string>
	<key>showIconInDock</key>
	<true/>
	<key>steps</key>
    <array>
        <dict>
            <key>identifier</key>
            <string>welcome-message</string>
            <key>icon</key>
            <string>symbol:list.bullet.clipboard</string>
            <key>iconColor</key>
            <string>##red</string>
            <key>image</key>
            <string>/Library/Application Support/GiantEagle/Enrollment/HQWallpaper.jpg</string>
            <key>kind</key>
            <string>message</string>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Welcome to macOS Setup</string>
            </dict>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>Just a few more steps to configure your new Mac.</string>
            </dict>
        </dict>
        <dict>
            <key>identifier</key>
            <string>script-companyportal</string>
            <key>icon</key>
            <string>/Applications/Company Portal.app</string>
            <key>image</key>
            <string>/Applications/Company Portal.app</string>
            <key>kind</key>
            <string>script</string>
            <key>actionButtonLabel</key>
            <string>Register</string>
            <key>actionButtonScript</key>
            <string>/usr/local/jamf/bin/jamfAAD registerWithIntune</string>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Register with Company Portal</string>
            </dict>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>Company Portal allows access to Giant Eagle cloud resources. Sign in with your Giant Eagle credentials when Company Portal opens and follow the on‑screen prompts. Your device must meet Giant Eagle compliance and security requirements to continue using corporate applications and services, for example Microsoft Teams and Microsoft Outlook</string>
            </dict>
            <key>updateStatusScript</key>
            <string>defaults read com.microsoft.CompanyPortalMac "com.microsoft.intune.connectivityCheck.lastHeartbeatTime" 2&gt;/dev/null | grep -c "+"</string>
            </dict>
        <dict>
            <key>identifier</key>
            <string>wallpaper</string>
            <key>icon</key>
            <string>symbol:photo.artframe</string>
            <key>iconColor</key>
            <string>##red</string>
            <key>kind</key>
            <string>wallpaper</string>
            <key>path</key>
            <string>/Library/Application Support/GiantEagle/Wallpapers</string>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Choose a Wallpaper</string>
            </dict>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>Please choose a background from our list of wallpapers. You can always change it later</string>
            </dict>
        </dict>
        <dict>
            <key>dockAction</key>
            <array>
                <string>add</string>
                <string>replace</string>
            </array>
            <key>dockItems</key>
            <array>
                <string>com.jamf.selfserviceplus</string>
                <string>com.apple.apps.launcher</string>
                <string>com.apple.Safari</string>
                <string>com.microsoft.outlook</string>
                <string>com.microsoft.teams2</string>
                <string>Downloads</string>
            </array>
            <key>identifier</key>
            <string>dock</string>
            <key>kind</key>
            <string>dock</string>
            <key>iconColor</key>
            <string>##red</string>
            <key>mayKeepCurrent</key>
            <true/>
            <key>message</key>
            <string>For convienient access, we recommend adding these apps and items to your Dock.</string>
        </dict>
        <dict>
            <key>identifier</key>
            <string>open-outlook</string>
            <key>item</key>
            <string>/Applications/Microsoft Outlook.app</string>
            <key>kind</key>
            <string>open</string>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Sign In to Outlook</string>
            </dict>
                <key>message</key>
            <dict>
                <key>en</key>
                <string>Outlook is a comprehensive personal information manager that integrates email, calendaring, task management, and contact organization.  Sign in with your Giant Eagle credentials when prompted.</string>
            </dict>
        </dict>
        <dict>
            <key>identifier</key>
            <string>default-app-mail</string>
            <key>bundle-id</key>
            <string>com.microsoft.Outlook</string>
            <key>icon</key>
            <string>symbol:envelope.badge</string>
            <key>iconColor</key>
            <string>##red</string>
            <key>kind</key>
            <string>defaultApp</string>
            <key>mayKeepCurrent</key>
            <false/>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Set Default Mail App</string>
            </dict>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>Please verify that your default email app is set to Outlook.</string>
            </dict>
            <key>urlScheme</key>
            <string>mailto</string>
        </dict>
        <dict>
            <key>identifier</key>
            <string>open-teams</string>
            <key>item</key>
            <string>/Applications/Microsoft Teams.app</string>
            <key>kind</key>
            <string>script</string>
            <key>actionButtonLabel</key>
            <string>Open Teams</string>
            <key>actionButtonScript</key>
            <string>open "/Applications/Microsoft Teams.app"</string>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Sign In to Teams</string>
            </dict>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>Teams is a cloud-based collaboration platform that centralizes chat, video meetings, and file sharing into a single workspace.  Click on your profile name to sign in.</string>
            </dict>
            /usr/bin/plutil -extract "AccountInfo_Business1.UserEmail" raw ~/Library/Group\ Containers/UBF8T346G9.OneDriveStandaloneSuite/Library/Preferences/UBF8T346G9.OneDriveStandaloneSuite.plist | grep -c "@"
            <key>updateStatusScript</key>
            <string>/usr/bin/plutil -extract "MCMMetadataInfo.SandboxProfileDataValidationInfo.Parameters._USER" raw "~/Library/Containers/com.microsoft.teams2/.com.apple.containermanagerd.metadata.plist" | grep -c "$USER"</string>
        </dict>
        <dict>
            <key>identifier</key>
            <string>open-onedrive</string>
            <key>item</key>
            <string>/Applications/OneDrive.app</string>
			<key>image</key>
			<string>/Applications/OneDrive.app</string>
            <key>kind</key>
            <string>script</string>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Sign In to OneDrive</string>
            </dict>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>OneDrive stores your work files and syncs your Desktop and Documents folders to the cloud. Sign in with your Giant Eagle credentials and complete the folder setup when prompted.</string>
            </dict>
            <key>buttonLabel</key>
            <string>Open OneDrive</string>
            <key>prepareScript</key>
            <string>#!/bin/zsh
                # Verify OneDrive is installed before showing this step.
                # If missing, mark error so it's visible rather than silently pending.
                if [[ ! -e "/Applications/OneDrive.app" ]]; then
                    /usr/local/bin/setupchecklist status open-onedrive error 2&gt;/dev/null
                    exit 1
                fi
                exit 0
            </string>
            <key>buttonScript</key>
            <string>#!/bin/zsh
                open /Applications/OneDrive.app
                exit 0
            </string>
            <key>updateStatusScript</key>
            <string>/usr/bin/plutil -extract "AccountInfo_Business1" raw ~/Library/Group\ Containers/UBF8T346G9.OneDriveStandaloneSuite/Library/Preferences/UBF8T346G9.OneDriveStandaloneSuite.plist | grep -c "LastKFMOptInTime"</string>
        </dict>
        <dict>
            <key>bundle-id</key>
            <array>
                <string>com.microsoft.teams2</string>
            </array>
            <key>icon</key>
            <string>symbol:rectangle.on.rectangle.angled</string>
            <key>iconColor</key>
            <string>##red</string>
            <key>movie</key>
            <string>/Library/Application Support/GiantEagle/Enrollment/Security_Privacy.mp4</string>
            <key>identifier</key>
            <string>screensharing</string>
            <key>kind</key>
            <string>screensharing</string>
            <key>message</key>
            <string>Enable Screen &amp; System Audio Recording for Microsoft Teams</string>
            <key>openAutomatically</key>
            <true/>
            <key>title</key>
            <string>Configure Screen Sharing</string>
            <key>windowPosition</key>
            <string>right</string>
        </dict>
        <dict>
            <key>identifier</key>
            <string>gethelp-message</string>
            <key>icon</key>
            <string>symbol:questionmark.circle</string>
            <key>iconColor</key>
            <string>##red</string>
            <key>movie</key>
            <string>/Library/Application Support/GiantEagle/Enrollment/supportapp.mp4</string>
            <key>kind</key>
            <string>message</string>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Need Help?</string>
            </dict>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>Use our Support App to get help with your Mac.</string>
            </dict>
        </dict>
		<dict>
			<key>identifier</key>
			<string>run-jamf-policies</string>
			<key>kind</key>
			<string>script</string>
			<key>title</key>
			<string>Finish Giant Eagle Setup</string>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>Learn the basics to get started with your Mac—like using the trackpad, menu bar, and Control Center—while we complete the final Giant Eagle setup. This may take a few minutes as your Mac connects to the management server.</string>
            </dict>
			<key>icon</key>
			<string>symbol:gearshape</string>
            <key>iconColor</key>
            <string>##red</string>
			<key>movie</key>
			<string>/Library/Application Support/GiantEagle/Enrollment/NewToMac.mp4</string>
			<key>buttonLabel</key>
			<string>Run Final Setup</string>
			<key>buttonScript</key>
			<string>#!/bin/zsh
                [[ ! -x /usr/local/bin/jamf ]] &amp;&amp; exit 1
                TRIES=0
                until /usr/local/bin/jamf checkJSSConnection &gt;/dev/null 2&gt;&amp;1 || [[ "$TRIES" -ge 12 ]]; do
                    ((TRIES++))
                    /bin/sleep 5
                done
                if ! /usr/local/bin/jamf checkJSSConnection &gt;/dev/null 2&gt;&amp;1; then
                    exit 1
                fi
                /usr/local/bin/jamf policy
                exit $?
            </string>
			<key>updateStatusScript</key>
			<string>#!/bin/zsh
                exit 0
            </string>
			<key>willContinueScript</key>
			<string>#!/bin/zsh
                exit 0
            </string>
		</dict>
        <dict>
            <key>identifier</key>
            <string>thankyou-message</string>            
            <key>icon</key>
            <string>symbol:quote.bubble</string>
            <key>iconColor</key>
            <string>##red</string>  
            <key>image</key>
            <string>/Library/Application Support/GiantEagle/Enrollment/SetupCompleted.jpeg</string>
            <key>kind</key>
            <string>message</string>
            <key>title</key>
            <dict>
                <key>en</key>
                <string>Thank you</string>
            </dict>
            <key>message</key>
            <dict>
                <key>en</key>
                <string>The configuration is complete, enjoy your Mac!</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Videos & Links

Inside of the Checklist app, I have a few other movies, they can be found here: https://github.com/ScottEKendall/JAMF-Pro-Scripts/tree/main/WikiPages/JAMF_CheckList. I have also included the preview(s) below

Apple Support New To Mac:

https://www.youtube.com/watch?v=rqI6Nq9rJ74&t=19s

Support.app demo:

supportapp.mp4

I am trying to drive my users to use the support.app as much as possible. Details about this app can be found here: https://github.com/root3nl/supportapp and I have some examples on my Wiki pages as well...

Clone this wiki locally