Skip to content
Development
Skill

/user-onboarding

New-hire setup in Jamf Pro: user records and how to avoid duplicates, scoping a new Mac's serial to a computer PreStage enrollment for Automated Device Enrollment, assigning computers and mobile devices to a user, building, department, and site, and adding Macs to static groups

From plugin
msp-claude-plugins
55200 skills165 agents200 commands4 MCP

Claude Code

$ npx -y skills add wyre-ai/msp-claude-plugins --skill user-onboarding --agent claude-code

SKILL.md

user-onboarding.SKILL.md
name: "Jamf Pro User Onboarding"
description: >
  New-hire setup in Jamf Pro: user records and how to avoid duplicates,
  scoping a new Mac's serial to a computer PreStage enrollment for Automated
  Device Enrollment, assigning computers and mobile devices to a user,
  building, department, and site, and adding Macs to static groups so the
  right policies and profiles apply.
when_to_use: >-
  When a client has a new starter who needs a Mac, iPhone, or iPad, when a
  device needs to be reassigned to a different user, or when a Mac must be
  scoped to a PreStage before it ships. Use when: jamf new hire, onboard user
  jamf, assign mac to user, prestage enrollment, automated device enrollment,
  add serial to prestage, reassign device, jamf static group.

Jamf Pro User Onboarding

Overview

Onboarding in Jamf Pro has three jobs. Get the new Mac to enroll with the client's configuration at Setup Assistant (PreStage scoping). Record who the device belongs to (user and location assignment). Put it in the groups that scope the client's apps and settings. All of the changes here are write tier and non-destructive.

Anti-triggers

  • **Leaver, lost, or stolen device**: use `jamf-device-offboarding`.
  • **Creating the person's identity account (Entra ID, Google)**: Jamf user records are inventory assignments, not IdP accounts.

Key Concepts

| Thing | Tools | |-------|-------| | Jamf users (who devices are assigned to) | `jamf_search_users`, `jamf_get_user`, `jamf_create_user`, `jamf_update_user` | | Computer PreStages (ADE profiles) | `jamf_list_computer_prestages`, `jamf_add_serials_to_computer_prestage` | | Mobile PreStages | `jamf_list_mobile_device_prestages` (read only, no serial scoping tool) | | Location ids | `jamf_list_buildings`, `jamf_list_departments`, `jamf_list_sites` | | Assignment | `jamf_assign_computer`, `jamf_assign_mobile_device` | | Groups | `jamf_list_computer_groups`, `jamf_get_computer_group`, `jamf_add_computers_to_static_group` |

Common Workflows

New starter with a new Mac

1. **Find or create the user.** `jamf_search_users` by `email` and `username` first. Only if nothing matches, `jamf_create_user` with `username` (match the IdP username), `realname`, `email`, and `position`. 2. **Scope the serial before the Mac is unboxed.** `jamf_list_computer_prestages` to find the client's PreStage, then `jamf_add_serials_to_computer_prestage` with `prestageId` and `serialNumbers`. Serials must already be in Apple Business Manager and assigned to this Jamf instance, or Jamf rejects them. 3. **After enrollment, assign the Mac.** `jamf_search_computers` with `serialNumber` to get the computer id. Resolve `departmentId`, `buildingId`, and `siteId` with the list tools, then `jamf_assign_computer` with the id and only the fields you want to set. 4. **Group it.** `jamf_list_computer_groups` to find the client's onboarding or department static group, then `jamf_add_computers_to_static_group`. 5. Report back: user id, PreStage name, computer id, assigned fields, and groups.

New iPhone or iPad

Mobile devices have no serial-scoping tool here. The client's Apple Business Manager default assignment usually handles PreStage selection. After enrollment, `jamf_search_mobile_devices` by `serialNumber`, then `jamf_assign_mobile_device` with the user fields.

Reassigning a device

1. `jamf_search_users` for the new owner (create if missing). 2. `jamf_assign_computer` or `jamf_assign_mobile_device` with the new `username`, `realName`, `email`, and location ids. 3. If the old owner left the company, run the leaver steps in `jamf-device-offboarding` for their other devices.

Updating a user record

`jamf_update_user` reads the current record and changes only the fields you pass (`username`, `realname`, `email`, `phone`, `position`, `managedAppleId`). Use it for name changes and new job titles. It does not touch device assignments.

Gatekeeping

  • Lookups are **read** tier.
  • `jamf_create_user`, `jamf_update_user`, `jamf_add_serials_to_computer_prestage`, `jamf_assign_computer`, `jamf_assign_mobile_device`, and `jamf_add_computers_to_static_group` are **write** tier.
  • Nothing in onboarding is admin tier. The reverse operations differ: `jamf_remove_computers_from_static_group` is also **write** tier, while `jamf_delete_user` is **admin** tier.

Gotchas

  • `jamf_create_user` does not look for existing records first. Always search, by email as well as username, because people get re-hired under new usernames.
  • The two assign tools take `realName` (capital N). The user tools take `realname`. Pass the right one or the field is dropped.
  • `jamf_assign_computer` and `jamf_assign_mobile_device` need at least one field besides `id`. Fields you leave out keep their current values.
  • `jamf_add_serials_to_computer_prestage` uppercases serials and accepts up to 100. Serials must be 8-20 letters and digits.
  • `jamf_add_computers_to_static_group` refuses smart groups. Smart group membership comes from criteria. Pick a static group, or change the attribute the smart group keys on (often department or building through the assign tools).
Read more
@wyre-technology
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: wyre-ai.github.io/msp-claude-plugins

55200 skills165 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
55
Star history of wyre-technology/msp-claude-plugins on GitHub, a chart by star-history.com

Other skills on msp-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about user-onboarding.

Which coding agents can use user-onboarding?
user-onboarding installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.