> ## Documentation Index
> Fetch the complete documentation index at: https://docs.serval.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Jamf Protect

> Connect Jamf Protect to Serval to triage macOS security alerts, inspect enrolled computers, manage plans and analytics, and read tenant audit logs.

## About Jamf Protect

Jamf Protect is Jamf's endpoint-security product for macOS - detection, visibility, and compliance for Mac fleets. Connecting it to Serval lets your team list and triage security alerts, look up enrolled computers, inspect plans and the analytics catalog, read tenant audit logs, and remove computer records - all through Serval workflows that call your tenant's Jamf Protect GraphQL API on your behalf. Serval only ever sends authenticated requests to the exact Protect tenant you configure.

**Authentication:** Jamf Protect API client. You create an API client in the Protect console and give Serval the Client ID and Password plus your tenant name. Serval stores the Client ID and an encrypted copy of the password, and exchanges them for short-lived access tokens against your own tenant on demand - no browser-based sign-in and no user-level consent.

**Data sync:** On demand. There is no background sync - workflows call the Jamf Protect API when they run (subject to each workflow's approval procedure).

## What the Jamf Protect integration enables

| Capability                          | Description                                                                                                                                                                                        |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Alert management                    | List macOS security alerts filtered by severity range (Informational, Low, Medium, High) and set alert status (New, InProgress, Resolved) for up to 100 alerts at a time (requires approval).      |
| Computer management                 | List enrolled computers with inventory details (serial, host name, OS, agent version, plan, connection status), find a computer by serial number, and delete computer records (requires approval). |
| Tenant administration               | List the analytics catalog (Jamf-managed and custom detections), retrieve a plan with its associated analytics, and read tenant audit logs within a date range (retained one year).                |
| Full API access in custom workflows | Custom Serval workflows can send any GraphQL query or mutation to your tenant's API with the credentials you configured.                                                                           |

## Get your credentials

Serval authenticates with a Jamf Protect **API client**. See Jamf's guide, [Creating an API Client in Jamf Protect](https://learn.jamf.com/r/en-US/jamf-protect-documentation/Creating_an_API_Client_in_Jamf_Protect), for full details. Note that tenants are limited to five API clients.

<Steps>
  <Step title="Open API Clients">
    Log in to Jamf Protect and go to **Administrative** → **API Clients**, then select **Create API Client**.
  </Step>

  <Step title="Assign a role">
    Name the client (e.g. "Serval Integration") and assign a role. A read-only role covers the listing workflows; updating alert status and deleting computers need the matching write permissions. You can change the role later without reconnecting.
  </Step>

  <Step title="Copy the credentials">
    Copy the **Client ID** and the generated **Password** immediately - the password is shown only once.
  </Step>
</Steps>

## Connect Jamf Protect to Serval

<Steps>
  <Step title="Open integrations">
    In Serval, go to **Settings** → **Integrations** and select **Jamf Protect**.
  </Step>

  <Step title="Enter your tenant and credentials">
    Enter your Protect tenant (the first part of your tenant URL, e.g. `your-tenant` for `https://your-tenant.protect.jamfcloud.com` - pasting the full URL also works), the **Client ID**, and the **Password**.
  </Step>

  <Step title="Connect">
    Click connect. Healthchecks run immediately and verify the credentials can reach your tenant's alerts, computers, and analytics.
  </Step>
</Steps>
