Jamf Connector
Description
Jamf is an Apple device management and security platform. This component allows managing computers, mobile devices, users, scripts, packages, categories, and departments in Jamf Pro, as well as polling for newly enrolled computers and mobile devices and receiving webhook notifications from Jamf Pro.
API Documentation
This component was built using the following API References:
Connections
Basic Authentication
key: jamfBearerTokenTo authenticate with Jamf Pro using basic authentication, a local Jamf Pro user account with appropriate privileges is required.
Prerequisites
- A Jamf Pro instance
- A local (standard) Jamf Pro user account — SSO/federated accounts cannot be used for API authentication
Setup Steps
- Log in to the Jamf Pro dashboard
- Navigate to Settings > System > User Accounts and Groups
- Click New and select Create Standard Account
- Set the Access Level to Full Access and the Privilege Set to Administrator (or a custom set with the minimum required privileges)
- Note the username and password for the account
Jamf Pro does not support API authentication for SSO or federated accounts (for example, accounts backed by Okta, Azure AD, or another identity provider). This applies even when the account has Full Access and Administrator privileges.
If your Jamf Pro instance uses an identity provider for web UI login, you must still create a Standard Account (step 3 above) specifically for API use. Standard accounts coexist with federated accounts in the same Jamf Pro instance. You can identify account type in Settings > System > User Accounts and Groups — the Type column shows Local for standard accounts and Federated User for IdP-backed accounts.
Configure the Connection
Create a connection of type Basic Authentication and provide the following values:
- Jamf Pro URL: The base URL of the Jamf Pro instance (e.g.,
https://acme.jamfcloud.com) - Username: The username of the local Jamf Pro account
- Password: The password of the local Jamf Pro account
OAuth 2.0 client credentials is the recommended authentication method for production integrations. Basic authentication (username and password) exchanges credentials for a bearer token, which expires after 20 minutes.
| Input | Notes | Example |
|---|---|---|
| Jamf Pro URL | The base URL of the Jamf Pro instance (e.g., https://acme.jamfcloud.com). | https://acme.jamfcloud.com |
| Password | The Jamf Pro user account password. | |
| Username | The Jamf Pro user account username. SSO accounts cannot be used for API authentication. | admin |
OAuth 2.0 Client Credentials
key: jamfClientCredentialsTo authenticate with Jamf Pro using OAuth 2.0 client credentials, create an API client in the Jamf Pro dashboard.
Prerequisites
- A Jamf Pro instance with administrator access
- Access to Settings > API Roles and Clients in Jamf Pro
Setup Steps
- Log in to the Jamf Pro dashboard
- Navigate to Settings > API Roles and Clients
- Create an API role with the required privileges for the integration
- Click New under the API Clients tab to create a new API client
- Assign the API role created in step 3 to the new client
- Enable the API client and click Save
- Click Generate Client Secret and copy the Client Secret immediately (it will not be shown again)
- Copy the Client ID displayed on the API client details page
Refer to the Jamf Pro API Roles and Clients documentation for detailed instructions.
Configure the Connection
Create a connection of type OAuth 2.0 Client Credentials and provide the following values:
- Jamf Pro URL: The base URL of the Jamf Pro instance (e.g.,
https://acme.jamfcloud.com) - Client ID: The API Client ID from the Jamf Pro API client
- Client Secret: The API Client Secret generated in the setup steps
| Input | Notes | Example |
|---|---|---|
| Jamf Pro URL | The base URL of the Jamf Pro instance (e.g., https://acme.jamfcloud.com). | https://acme.jamfcloud.com |
| Client ID | The API Client ID from Settings > API Roles and Clients in Jamf Pro. | abc12345-1234-1234-1234-abc1234567890 |
| Client Secret | The API Client Secret from Settings > API Roles and Clients in Jamf Pro. |
Triggers
Manual Webhook
Receive and validate webhook requests from Jamf Pro for manually configured webhook subscriptions. | key: webhook
| Input | Notes | Example |
|---|---|---|
| Auth Header Name | Name of the header Jamf Pro sends for header authentication (must match the webhook's configured header). Leave blank to accept all incoming requests. | X-Jamf-Signature |
| Auth Header Value | Expected value of the authentication header. Incoming requests whose header does not match are rejected. Required only if an Auth Header Name is set. |
Example Payload for Manual Webhook⤓
New Computers
Checks for newly enrolled computers in Jamf Pro on a configured schedule. | key: pollNewComputers
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
This trigger checks for newly enrolled computers in Jamf Pro on a configured schedule.
How It Works
- The trigger runs on the configured schedule (e.g., every 5 minutes).
- It queries the Jamf Pro
GET /v1/computers-inventoryendpoint using an RSQL filter ongeneral.lastEnrolledDateto fetch only computers enrolled since the last poll time. - Each computer returned by the API is treated as a newly enrolled device for the current poll window.
- The trigger updates its internal state to record the current poll time so subsequent runs only return computers enrolled after this point.
State Management
The trigger persists a single value between executions:
State Shape
{
// ISO 8601 timestamp of the most recent poll execution.
// Used in the RSQL filter on general.lastEnrolledDate for the next run.
lastPolledAt: "2026-04-15T10:30:00.000Z";
}
On the first execution, lastPolledAt is initialized to the current timestamp so no historical computers are returned. From that point forward, only computers enrolled after the previous poll time are emitted.
Configuration
The trigger accepts the following inputs:
- Connection: The Jamf Pro connection to use.
- Page Size: The maximum number of computers to return per poll (defaults to 100, maximum 1000).
Returned Data
The trigger returns the list of newly enrolled computers in the data array. When no new computers are found, the trigger emits an empty array and marks the poll as having no changes.
Example Payload
{
"data": [
{
"id": "1",
"udid": "A8C5F29D-1234-5678-ABCD-9E0F1B2C3D4E",
"general": {
"name": "MacBook-Pro-001",
"lastContactTime": "2026-04-15T10:23:00.000Z",
"platform": "Mac",
"assetTag": null,
"reportDate": "2026-04-15T10:22:00.000Z",
"remoteManagement": { "managed": true },
"supervised": true
},
"hardware": {
"make": "Apple",
"model": "MacBook Pro (16-inch, 2023)",
"serialNumber": "C02XY1234567",
"processorType": "Apple M2 Pro",
"totalRamMegabytes": 16384
},
"operatingSystem": {
"name": "macOS",
"version": "15.4.0",
"build": "24E248"
},
"userAndLocation": {
"username": "jdoe",
"realname": "Jane Doe",
"email": "jdoe@example.com",
"department": "Engineering",
"building": null
},
"security": {
"sipStatus": "ENABLED",
"gatekeeperStatus": "APP_STORE_AND_IDENTIFIED_DEVELOPERS",
"xprotectVersion": "2199",
"firewall": true
}
}
]
}
Refer to the Jamf Pro Computer Inventory API reference for the complete list of fields returned for each computer.
Notes
- The first execution after deployment establishes the baseline timestamp and does not emit any computers. New computers enrolled after that baseline will appear in subsequent polls.
- Frequent polling schedules (under one minute) may be subject to Jamf Pro API rate limits. A polling interval of 5 minutes or longer is recommended for most use cases.
- The RSQL filter relies on
general.lastEnrolledDate. Computers that have been re-enrolled (rather than newly enrolled) will also match the filter when their re-enrollment falls within the polling window.
New Mobile Devices
Checks for newly enrolled mobile devices in Jamf Pro on a configured schedule. | key: pollNewMobileDevices
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
This trigger checks for newly enrolled mobile devices in Jamf Pro on a configured schedule.
How It Works
- The trigger runs on the configured schedule (e.g., every 5 minutes).
- It queries the Jamf Pro
GET /v2/mobile-devicesendpoint to retrieve the current set of enrolled mobile devices. - Each device's numeric
idis compared against the highest device ID seen on the previous poll. Devices with an ID greater than the stored maximum are treated as newly enrolled. - The trigger updates its internal state with the new maximum ID so subsequent runs only emit devices added after this point.
Why Max-ID Tracking
Unlike the Jamf Pro Computer Inventory API, the v2 mobile devices endpoint does not expose a reliable "enrolled since" filter. Jamf assigns sequential IDs to mobile devices as they are enrolled, so tracking the highest known ID provides a stable way to detect new enrollments between polls.
State Management
The trigger persists a single value between executions:
State Shape
{
// The highest mobile device ID observed in the previous poll.
// Devices with an ID greater than this value are treated as newly enrolled.
lastMaxId: 42;
}
On the first execution, lastMaxId is undefined and the trigger establishes a baseline by recording the current maximum ID without emitting any devices. From that point forward, only devices with an ID greater than lastMaxId are emitted.
Configuration
The trigger accepts the following inputs:
- Connection: The Jamf Pro connection to use.
- Page Size: The maximum number of mobile devices to fetch per poll (defaults to 100, maximum 1000).
Returned Data
The trigger returns the list of newly enrolled mobile devices in the data array. When no new devices are found, the trigger emits an empty array and marks the poll as having no changes.
Example Payload
{
"data": [
{
"id": "5",
"managementId": "mgmt-abc-123",
"name": "iPad-001",
"udid": "B3D6E19F-4321-8765-DCBA-EF0A1B2C3D4E",
"serialNumber": "DMPC123456789",
"wifiMacAddress": "a4:5e:60:ab:cd:ef",
"phoneNumber": null,
"username": "jdoe",
"type": "ios",
"model": "iPad Pro (11-inch) (4th generation)",
"modelIdentifier": "iPad14,3",
"softwareUpdateDeviceId": null
}
]
}
Refer to the Jamf Pro Mobile Devices API reference for the complete list of fields returned for each mobile device.
Notes
- The first execution after deployment establishes the baseline maximum ID and does not emit any devices. New devices enrolled after that baseline will appear in subsequent polls.
- Because detection relies on a monotonically increasing ID, devices that are unenrolled and later re-enrolled may receive a new ID and be emitted again.
- The maximum
Page Sizeaccepted by the Jamf Pro API is 1000. For tenants with high mobile device enrollment volume, pair this trigger with frequent polling to ensure new devices are captured within a single page.
Webhook Events
Subscribe to Jamf Pro events. On deploy, this trigger creates a webhook in Jamf Pro for each selected event (secured with a generated authentication header) and removes them when the instance is deleted. Incoming requests are validated against that header. | key: webhookEvents
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Events | The Jamf Pro events to subscribe to. One webhook is created per selected event. | ComputerAdded |
Example Payload for Webhook Events⤓
Data Sources
Select Category
Dynamically fetch a list of categories from Jamf Pro for use in a dropdown. | key: selectCategory | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for Select Category⤓
Select Computer
Dynamically fetch a list of computers from Jamf Pro for use in a dropdown. | key: selectComputer | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for Select Computer⤓
Select Department
Dynamically fetch a list of departments from Jamf Pro for use in a dropdown. | key: selectDepartment | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for Select Department⤓
Select Mobile Device
Dynamically fetch a list of mobile devices from Jamf Pro for use in a dropdown. | key: selectMobileDevice | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for Select Mobile Device⤓
Select Package
Dynamically fetch a list of packages from Jamf Pro for use in a dropdown. | key: selectPackage | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for Select Package⤓
Select Script
Dynamically fetch a list of scripts from Jamf Pro for use in a dropdown. | key: selectScript | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for Select Script⤓
Select Webhook
Dynamically fetch a list of webhooks from Jamf Pro for use in a dropdown. | key: selectWebhook | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for Select Webhook⤓
Actions
Create Category
Create a new category. | key: createCategory
| Input | Notes | Example |
|---|---|---|
| Name | The display name used to identify the category in Jamf Pro. | Productivity Apps |
| Connection | The Jamf Pro connection to use. | |
| Priority | The sort order weight for the category. Lower numbers appear first. | 9 |
Example Payload for Create Category⤓
Create Department
Create a new department. | key: createDepartment
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Name | The display name used to identify the department in Jamf Pro. | Information Technology |
Example Payload for Create Department⤓
Create Package
Create a new package record in Jamf Pro. | key: createPackage
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Category ID | The unique identifier of the category to assign to this package. | 3 |
| File Name | The filename of the package file on the Jamf distribution point (e.g., GoogleChrome.pkg). | GoogleChrome-120.0.6099.199.pkg |
| Fill User Template | Whether to fill the user template with the package contents. | false |
| Info | A description of the package displayed to administrators in Jamf Pro. | Google Chrome browser installer. |
| Package Name | The display name of the package as shown in Jamf Pro. | Google Chrome 120.0.pkg |
| Notes | Internal notes about the package visible only to administrators. | Downloaded from https://dl.google.com/chrome/mac/stable/ |
| OS Install | Whether this package is an OS installer. | false |
| Priority | Installation priority from 1 (highest) to 20 (lowest). Defaults to 10. | 10 |
| Reboot Required | Whether the device must reboot after installing this package. | false |
| Suppress EULA | Whether to suppress the End User License Agreement during installation. | false |
| Suppress From Dock | Whether to suppress the package icon from the Dock during installation. | false |
| Suppress Registration | Whether to suppress the registration window during installation. | false |
| Suppress Updates | Whether to suppress software updates during installation. | false |
Example Payload for Create Package⤓
Create Script
Create a new script. | key: createScript
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Category ID | The unique identifier of the category to assign to this script. | 3 |
| Script Contents | The shell script body. Include the shebang line (e.g., #!/bin/bash). | #!/bin/bash /usr/local/bin/install-app.sh |
| Info | A description of the script displayed to administrators in Jamf Pro. | Installs Google Chrome from the vendor CDN. |
| Name | The display name used to identify the script in Jamf Pro. | Install Chrome |
| Notes | Internal notes about the script visible only to administrators. | Updated 2026-01-15 to support macOS 15. |
| Priority | When the script runs relative to the policy. | AFTER |
Example Payload for Create Script⤓
Create Webhook
Create a new webhook subscription in Jamf Pro. | key: createWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Auth Header Name | Name of the header Jamf Pro sends when Authentication Type is Header. Required when using Header authentication. | X-Jamf-Signature |
| Auth Header Value | Value of the header Jamf Pro sends when Authentication Type is Header. Required when using Header authentication. | |
| Authentication Type | How Jamf Pro authenticates to the destination URL. Header authentication sends a custom header with every event. | NONE |
| Content Type | The payload format Jamf Pro delivers events in. | application/json |
| Enabled | Whether the webhook is active and delivering events. | true |
| Event | The Jamf Pro event that triggers this webhook. | ComputerAdded |
| Name | The display name used to identify the webhook in Jamf Pro. | New Computer Notifier |
| URL | The destination URL that Jamf Pro sends webhook events to. | https://example.com/webhook |
Example Payload for Create Webhook⤓
Delete Category
Delete a category by ID. | key: deleteCategory
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Category | The unique identifier of the category. | 1 |
Example Payload for Delete Category⤓
Delete Department
Delete a department by ID. | key: deleteDepartment
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Department | The unique identifier of the department. | 1 |
Example Payload for Delete Department⤓
Delete Instanced Webhooks
Delete all Jamf Pro webhooks that point to a flow in this instance. | key: deleteInstancedWebhooks
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for Delete Instanced Webhooks⤓
Delete Package
Delete a package record by ID. | key: deletePackage
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Package | The unique identifier of the package. | 1 |
Example Payload for Delete Package⤓
Delete Script
Delete a script by ID. | key: deleteScript
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Script | The unique identifier of the script. | 1 |
Example Payload for Delete Script⤓
Delete Webhook
Delete a webhook subscription by ID. | key: deleteWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Webhook | The unique identifier of the webhook. | 1 |
Example Payload for Delete Webhook⤓
Get Category
Get a single category by ID. | key: getCategory
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Category | The unique identifier of the category. | 1 |
Example Payload for Get Category⤓
Get Computer
Get a single computer inventory record by ID. | key: getComputer
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Computer | The unique identifier of the computer. | 1 |
| Section | Section of computer details to include in the response. If not specified, General section data is returned. | GENERAL |
Example Payload for Get Computer⤓
Get Department
Get a single department by ID. | key: getDepartment
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Department | The unique identifier of the department. | 1 |
Example Payload for Get Department⤓
Get Mobile Device
Get a single mobile device record by ID. | key: getMobileDevice
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Mobile Device | The unique identifier of the mobile device. | 1 |
Example Payload for Get Mobile Device⤓
Get Package
Get a single package record by ID. | key: getPackage
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Package | The unique identifier of the package. | 1 |
Example Payload for Get Package⤓
Get Script
Get a single script by ID. | key: getScript
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Script | The unique identifier of the script. | 1 |
Example Payload for Get Script⤓
Get Webhook
Get a single webhook subscription by ID. | key: getWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Webhook | The unique identifier of the webhook. | 1 |
Example Payload for Get Webhook⤓
List Categories
List all categories with optional filtering and pagination. | key: listCategories
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Fetch All | If true, fetch every page of results and ignore the Page and Page Size inputs. If false, return a single page. | false |
| Filter | An RSQL filter expression to narrow results. Example: name=="Apps*" or id>=5. Leave blank to return all results. | name=="Acme*" |
| Page | The zero-indexed page number for paginated results. Page 0 is the first page. | 0 |
| Page Size | The maximum number of results to return per page. Maximum 1000. | 100 |
| Sort | The sort criteria in the format property:asc or property:desc. Multiple criteria are comma-separated. | name:asc,id:desc |
Example Payload for List Categories⤓
List Computers
List computer inventory records with optional filtering and pagination. | key: listComputers
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Fetch All | If true, fetch every page of results and ignore the Page and Page Size inputs. If false, return a single page. | false |
| Filter | An RSQL filter expression to narrow results. Example: name=="Apps*" or id>=5. Leave blank to return all results. | name=="Acme*" |
| Page | The zero-indexed page number for paginated results. Page 0 is the first page. | 0 |
| Page Size | The maximum number of results to return per page. Maximum 1000. | 100 |
| Section | Section of computer details to include in the response. If not specified, General section data is returned. | GENERAL |
| Sort | The sort criteria in the format property:asc or property:desc. Multiple criteria are comma-separated. | name:asc,id:desc |
Example Payload for List Computers⤓
List Departments
List all departments with optional filtering and pagination. | key: listDepartments
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Fetch All | If true, fetch every page of results and ignore the Page and Page Size inputs. If false, return a single page. | false |
| Filter | An RSQL filter expression to narrow results. Example: name=="Apps*" or id>=5. Leave blank to return all results. | name=="Acme*" |
| Page | The zero-indexed page number for paginated results. Page 0 is the first page. | 0 |
| Page Size | The maximum number of results to return per page. Maximum 1000. | 100 |
| Sort | The sort criteria in the format property:asc or property:desc. Multiple criteria are comma-separated. | name:asc,id:desc |
Example Payload for List Departments⤓
List Mobile Devices
List all mobile device records with optional pagination. | key: listMobileDevices
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Fetch All | If true, fetch every page of results and ignore the Page and Page Size inputs. If false, return a single page. | false |
| Page | The zero-indexed page number for paginated results. Page 0 is the first page. | 0 |
| Page Size | The maximum number of results to return per page. Maximum 1000. | 100 |
| Sort | The sort criteria in the format property:asc or property:desc. Multiple criteria are comma-separated. | name:asc,id:desc |
Example Payload for List Mobile Devices⤓
List Packages
List all packages with optional filtering and pagination. | key: listPackages
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Fetch All | If true, fetch every page of results and ignore the Page and Page Size inputs. If false, return a single page. | false |
| Filter | An RSQL filter expression to narrow results. Example: name=="Apps*" or id>=5. Leave blank to return all results. | name=="Acme*" |
| Page | The zero-indexed page number for paginated results. Page 0 is the first page. | 0 |
| Page Size | The maximum number of results to return per page. Maximum 1000. | 100 |
| Sort | The sort criteria in the format property:asc or property:desc. Multiple criteria are comma-separated. | name:asc,id:desc |
Example Payload for List Packages⤓
List Scripts
List all scripts with optional filtering and pagination. | key: listScripts
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Fetch All | If true, fetch every page of results and ignore the Page and Page Size inputs. If false, return a single page. | false |
| Filter | An RSQL filter expression to narrow results. Example: name=="Apps*" or id>=5. Leave blank to return all results. | name=="Acme*" |
| Page | The zero-indexed page number for paginated results. Page 0 is the first page. | 0 |
| Page Size | The maximum number of results to return per page. Maximum 1000. | 100 |
| Sort | The sort criteria in the format property:asc or property:desc. Multiple criteria are comma-separated. | name:asc,id:desc |
Example Payload for List Scripts⤓
List Users
List Jamf Pro user accounts with optional filtering and pagination. | key: listUsers
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Fetch All | If true, fetch every page of results and ignore the Page and Page Size inputs. If false, return a single page. | false |
| Filter | An RSQL filter expression to narrow results. Example: name=="Apps*" or id>=5. Leave blank to return all results. | name=="Acme*" |
| Page | The zero-indexed page number for paginated results. Page 0 is the first page. | 0 |
| Page Size | The maximum number of results to return per page. Maximum 1000. | 100 |
| Sort | The sort criteria in the format property:asc or property:desc. Multiple criteria are comma-separated. | name:asc,id:desc |
Example Payload for List Users⤓
List Webhooks
List all webhook subscriptions configured in Jamf Pro. | key: listWebhooks
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. |
Example Payload for List Webhooks⤓
Raw Request
Send a raw HTTP request to the Jamf Pro API or the Classic API. | key: rawRequest
| Input | Notes | Example |
|---|---|---|
| API | Which Jamf Pro API to target. The Pro API uses the /api base path; the Classic API uses /JSSResource. | api |
| Connection | The Jamf Pro connection to use. | |
| Data | The HTTP body payload to send to the URL. | {"exampleKey": "Example Data"} |
| File Data | File Data to be sent as a multipart form upload. | [{key: "example.txt", value: "My File Contents"}] |
| File Data File Names | File names to apply to the file data inputs. Keys must match the file data keys above. | |
| Form Data | The Form Data to be sent as a multipart form upload. | [{"key": "Example Key", "value": new Buffer("Hello World")}] |
| Header | A list of headers to send with the request. | User-Agent: curl/7.64.1 |
| Max Retry Count | The maximum number of retries to attempt. Specify 0 for no retries. | 0 |
| Method | The HTTP method to use. | |
| Query Parameter | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2. | |
| Response Type | The type of data you expect in the response. You can request json, text, or binary data. | json |
| Retry On All Errors | If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors. | false |
| Retry Delay (ms) | The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled. | 0 |
| Timeout | The maximum time that a client will await a response to its request | 2000 |
| URL | The API path only (e.g., /v1/computers-inventory for the Pro API, or /computers/id/1 for the Classic API). The base URL and selected API prefix are added automatically. | /v1/computers-inventory |
| Use Exponential Backoff | Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored. | false |
Update Category
Update an existing category. | key: updateCategory
| Input | Notes | Example |
|---|---|---|
| Name | The display name used to identify the category in Jamf Pro. | Productivity Apps |
| Connection | The Jamf Pro connection to use. | |
| Priority | The sort order weight for the category. Lower numbers appear first. | 9 |
| Category | The unique identifier of the category. | 1 |
Example Payload for Update Category⤓
Update Computer
Update specific fields of a computer inventory record. Only the provided fields are modified. | key: updateComputer
| Input | Notes | Example |
|---|---|---|
| Update Data | JSON object with the computer inventory fields to update. Only the provided fields will be modified (PATCH semantics). | |
| Connection | The Jamf Pro connection to use. | |
| Computer | The unique identifier of the computer. | 1 |
Example Payload for Update Computer⤓
Update Department
Update an existing department. | key: updateDepartment
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Name | The display name used to identify the department in Jamf Pro. | Information Technology |
| Department | The unique identifier of the department. | 1 |
Example Payload for Update Department⤓
Update Package
Update an existing package record. | key: updatePackage
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Category ID | The unique identifier of the category to assign to this package. | 3 |
| File Name | The filename of the package file on the Jamf distribution point (e.g., GoogleChrome.pkg). | GoogleChrome-120.0.6099.199.pkg |
| Fill User Template | Whether to fill the user template with the package contents. | |
| Info | A description of the package displayed to administrators in Jamf Pro. | Google Chrome browser installer. |
| Package Name | The display name of the package as shown in Jamf Pro. | Google Chrome 120.0.pkg |
| Notes | Internal notes about the package visible only to administrators. | Downloaded from https://dl.google.com/chrome/mac/stable/ |
| OS Install | Whether this package is an OS installer. | |
| Priority | Installation priority from 1 (highest) to 20 (lowest). Defaults to 10. | 10 |
| Reboot Required | Whether the device must reboot after installing this package. | |
| Suppress EULA | Whether to suppress the End User License Agreement during installation. | |
| Suppress From Dock | Whether to suppress the package icon from the Dock during installation. | |
| Suppress Registration | Whether to suppress the registration window during installation. | |
| Suppress Updates | Whether to suppress software updates during installation. | |
| Package | The unique identifier of the package. | 1 |
Example Payload for Update Package⤓
Update Script
Update an existing script. | key: updateScript
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Script | The unique identifier of the script. | 1 |
| Category ID | The unique identifier of the category to assign to this script. | 3 |
| Script Contents | The shell script body. Include the shebang line (e.g., #!/bin/bash). | #!/bin/bash /usr/local/bin/install-app.sh |
| Info | A description of the script displayed to administrators in Jamf Pro. | Installs Google Chrome from the vendor CDN. |
| Name | The display name used to identify the script in Jamf Pro. | Install Chrome |
| Notes | Internal notes about the script visible only to administrators. | Updated 2026-01-15 to support macOS 15. |
| Priority | When the script runs relative to the policy. | AFTER |
Example Payload for Update Script⤓
Update Webhook
Update an existing webhook subscription. | key: updateWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The Jamf Pro connection to use. | |
| Webhook | The unique identifier of the webhook. | 1 |
| Content Type | The payload format Jamf Pro delivers events in. | application/json |
| Enabled | Whether the webhook is active and delivering events. | |
| Event | The Jamf Pro event that triggers this webhook. | ComputerAdded |
| Name | The display name used to identify the webhook in Jamf Pro. | New Computer Notifier |
| URL | The destination URL that Jamf Pro sends webhook events to. | https://example.com/webhook |
Example Payload for Update Webhook⤓
Changelog
2026-06-10
Initial release of the Jamf Pro component, providing:
- Connects to Jamf Pro using OAuth 2.0 Client Credentials (Jamf Pro 10.49.0+) or Basic Authentication
- Manages Computers, Mobile Devices, Users, Departments, Categories, Scripts, Packages, and Webhooks through dedicated actions
- Includes a Raw Request action with an API option to target either the Jamf Pro API or the Classic API
- Offers a Manual Webhook trigger plus a managed Webhook Events trigger that creates a webhook per selected event on instance deploy, secures deliveries with a generated authentication header, removes the webhooks on instance delete, and covers all 22 Jamf Pro event types
- Provides New Computers and New Mobile Devices polling triggers that page through all results
- Surfaces Select Computer, Select Mobile Device, Select Department, Select Category, Select Package, Select Script, and Select Webhook data sources, wired to the relevant ID inputs across the get, update, and delete actions
- Supports a Fetch All option on list actions to optionally retrieve every page of results in a single run
- Applies partial updates on Update Package, Update Script, and Update Category so fields left blank keep their current values
- Returns a confirmation message from Update Computer, since the Jamf Pro endpoint responds with no content on success
- Secures Create Webhook with header authentication and supports optional header validation on the Manual Webhook trigger
- Documents known Jamf Pro behavior where Delete Package can return a 500 or 504 error while still deleting the package