Skip to main content
jamf icon

Jamf Connector

SourceAPI DocsAPI ChangelogConnector Changelog

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: jamfBearerToken

To 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​

  1. Log in to the Jamf Pro dashboard
  2. Navigate to Settings > System > User Accounts and Groups
  3. Click New and select Create Standard Account
  4. Set the Access Level to Full Access and the Privilege Set to Administrator (or a custom set with the minimum required privileges)
  5. Note the username and password for the account
SSO and Federated Accounts Cannot Be Used

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
Recommended Authentication Method

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.

InputNotesExample
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: jamfClientCredentials

To 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​

  1. Log in to the Jamf Pro dashboard
  2. Navigate to Settings > API Roles and Clients
  3. Create an API role with the required privileges for the integration
  4. Click New under the API Clients tab to create a new API client
  5. Assign the API role created in step 3 to the new client
  6. Enable the API client and click Save
  7. Click Generate Client Secret and copy the Client Secret immediately (it will not be shown again)
  8. 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
InputNotesExample
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

InputNotesExample
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⤓
Loading…

New Computers​

Retrieves existing and newly enrolled computers in Jamf Pro. Load history once, check for new enrollments on a schedule, or both. | key: pollNewComputers

InputNotesExample
Connection

The Jamf Pro connection to use.

Look-back Date

The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each computer enrolled on or after this date once.

2026-01-01

This trigger checks for newly enrolled computers in Jamf Pro on a configured schedule.

How It Works​

  1. The trigger runs on the configured schedule (e.g., every 5 minutes).
  2. It queries the Jamf Pro GET /v3/computers-inventory endpoint with an RSQL filter on general.lastEnrolledDate, sorted oldest enrollment first, and reads one page at a time.
  3. Each computer returned by the API that has not been delivered before is treated as a newly enrolled device.
  4. The trigger stores a position in its internal state, so a backlog larger than one page is read across consecutive rounds or recurrences without skipping or repeating computers.

State Management

The trigger persists a small position between executions:

State Shape
{
// The committed position: the enrollment time (to the second) the last fully read poll reached.
lastPolledAt: "2026-04-15T10:30:00.000Z",
// Ids already delivered at exactly lastPolledAt, so they are not delivered twice.
boundaryIds: ["4821"],
// Present only while a backlog is still being read. Holds the position the next round resumes from.
cursor: { watermark: "2026-04-15T10:30:00.000Z", boundaryIds: ["4821"] }
}

The position comes from the computers themselves (their newest enrollment time), never from the time the poll ran. Each request asks for computers enrolled at or after that position and at least one minute in the past, so a computer whose enrollment is recorded late is not stepped over; computers newer than that wait for the next poll. If more computers share one enrollment second than fit on a page, they are read by increasing id within that second, and each computer is still delivered once.

Initial Sync

An initial sync seeds a complete starting state rather than a change feed, so an input that narrowed which computers are reported would leave gaps in it. This trigger has no such input, so an initial sync ignores none. It begins on the first recurrence, when the trigger has no stored position and a Look-back Date (YYYY-MM-DD) is set, and seeds each computer enrolled on or after 00:00 UTC on that date once. Left empty, there is no sync: the first recurrence records the current time as its starting position and delivers nothing, and later recurrences deliver computers enrolled after it.

The backlog is read oldest enrollment first, one page of up to 1000 computers per round. With batching on, the platform runs one round after another until the backlog is read. With batching off, each scheduled recurrence reads up to 20 pages and stores where it stopped, so a larger backlog drains over several recurrences, one window per recurrence, and the next recurrence continues from the stored position rather than starting over. The first incremental recurrence after the sync resumes from the position the sync reached; nothing is lost and nothing is repeated. Nothing in the payload marks the handoff. A trigger deployed before this change carries only the old poll-time position; it resumes from that time, and computers enrolled within that same second may be delivered once more.

Connection still applies. The trigger has no page-size or field-selection input, so nothing else is suppressed.

Batching

Batching is enabled per flow on this trigger: each changed record is dispatched as its own execution, or grouped by the configured batch size. It also lets a large backlog be read in consecutive rounds within one recurrence, one page per round. Batch size and batch concurrency can both be overridden per instance. Raising concurrency increases the request volume sent to Jamf Pro.

To turn it on, select the flow's trigger, open the Flow control tab, and switch on Enable Batching. Under Batch Size, keep Trigger default or choose Custom batch size. Batch Concurrency is optional; leave it blank for no batch-level limit.

With batching off a downstream step reads the computer array at body.data. With batching on that array does not exist: each execution receives one { "changeType": "created", "record": ... } item, or an array of them when the batch size is greater than 1. Any step reading the older shape must be updated before batching is enabled. Because batching is enabled per flow, that change is scoped to the flow rather than to the component or to other flows using the same trigger.

Returned Data​

With batching off, 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. The trigger requests only the GENERAL inventory section, so each computer carries id, udid, and general. Fields shown are representative. The full response object includes additional properties.

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
}
}
]
}

With batching on, each execution receives one computer tagged with how it changed, or an array of such items when the batch size is greater than 1. Every item has changeType created. The data array is not part of this shape.

Batched Item
{
"changeType": "created",
"record": {
"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
}
}
}

Refer to the Jamf Pro Computer Inventory API reference for the complete list of fields in the general section.

Notes​

  • Without a Look-back Date, 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.
  • A computer enrolled in the last minute is delivered by a later poll, not the current one.
  • This trigger reads Jamf Pro's /v3/computers-inventory endpoint, which Jamf has deprecated in favor of /v4.
  • 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

InputNotesExample
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​

  1. The trigger runs on the configured schedule (e.g., every 5 minutes).
  2. It queries the Jamf Pro GET /v2/mobile-devices endpoint to retrieve the current set of enrolled mobile devices.
  3. Each device's numeric id is 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.
  4. 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 Size accepted 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

InputNotesExample
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⤓
Loading…

Data Sources​

Select Category​

Dynamically fetch a list of categories from Jamf Pro for use in a dropdown. | key: selectCategory | type: picklist

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for Select Category⤓
Loading…

Select Computer​

Dynamically fetch a list of computers from Jamf Pro for use in a dropdown. | key: selectComputer | type: picklist

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for Select Computer⤓
Loading…

Select Department​

Dynamically fetch a list of departments from Jamf Pro for use in a dropdown. | key: selectDepartment | type: picklist

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for Select Department⤓
Loading…

Select Mobile Device​

Dynamically fetch a list of mobile devices from Jamf Pro for use in a dropdown. | key: selectMobileDevice | type: picklist

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for Select Mobile Device⤓
Loading…

Select Package​

Dynamically fetch a list of packages from Jamf Pro for use in a dropdown. | key: selectPackage | type: picklist

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for Select Package⤓
Loading…

Select Script​

Dynamically fetch a list of scripts from Jamf Pro for use in a dropdown. | key: selectScript | type: picklist

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for Select Script⤓
Loading…

Select Webhook​

Dynamically fetch a list of webhooks from Jamf Pro for use in a dropdown. | key: selectWebhook | type: picklist

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for Select Webhook⤓
Loading…

Actions​

Create Category​

Create a new category. | key: createCategory

InputNotesExample
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⤓
Loading…

Create Department​

Create a new department. | key: createDepartment

InputNotesExample
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⤓
Loading…

Create Package​

Create a new package record in Jamf Pro. | key: createPackage

InputNotesExample
Additional Fields

Additional optional fields: includes Priority, Info, Notes, Reboot Required, OS Install, Fill User Template, Suppress Updates, Suppress EULA, Suppress From Dock, and Suppress Registration.

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
Package Name

The display name of the package as shown in Jamf Pro.

Google Chrome 120.0.pkg
Example Payload for Create Package⤓
Loading…

Create Script​

Create a new script. | key: createScript

InputNotesExample
Additional Fields

Additional optional fields: includes Script Contents, Priority, Info, and Notes.

Connection

The Jamf Pro connection to use.

Category ID

The unique identifier of the category to assign to this script.

3
Name

The display name used to identify the script in Jamf Pro.

Install Chrome
Example Payload for Create Script⤓
Loading…

Create Webhook​

Create a new webhook subscription in Jamf Pro. | key: createWebhook

InputNotesExample
Additional Fields

Additional optional fields: includes Content Type, Enabled, Authentication Type, Auth Header Name, and Auth Header Value.

Connection

The Jamf Pro connection to use.

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⤓
Loading…

Delete Category​

Delete a category by ID. | key: deleteCategory

InputNotesExample
Connection

The Jamf Pro connection to use.

Category

The unique identifier of the category.

1
Example Payload for Delete Category⤓
Loading…

Delete Department​

Delete a department by ID. | key: deleteDepartment

InputNotesExample
Connection

The Jamf Pro connection to use.

Department

The unique identifier of the department.

1
Example Payload for Delete Department⤓
Loading…

Delete Instanced Webhooks​

Delete all Jamf Pro webhooks that point to a flow in this instance. | key: deleteInstancedWebhooks

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for Delete Instanced Webhooks⤓
Loading…

Delete Package​

Delete a package record by ID. | key: deletePackage

InputNotesExample
Connection

The Jamf Pro connection to use.

Package

The unique identifier of the package.

1
Example Payload for Delete Package⤓
Loading…

Delete Script​

Delete a script by ID. | key: deleteScript

InputNotesExample
Connection

The Jamf Pro connection to use.

Script

The unique identifier of the script.

1
Example Payload for Delete Script⤓
Loading…

Delete Webhook​

Delete a webhook subscription by ID. | key: deleteWebhook

InputNotesExample
Connection

The Jamf Pro connection to use.

Webhook

The unique identifier of the webhook.

1
Example Payload for Delete Webhook⤓
Loading…

Get Category​

Get a single category by ID. | key: getCategory

InputNotesExample
Connection

The Jamf Pro connection to use.

Category

The unique identifier of the category.

1
Example Payload for Get Category⤓
Loading…

Get Computer​

Get a single computer inventory record by ID. | key: getComputer

InputNotesExample
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⤓
Loading…

Get Department​

Get a single department by ID. | key: getDepartment

InputNotesExample
Connection

The Jamf Pro connection to use.

Department

The unique identifier of the department.

1
Example Payload for Get Department⤓
Loading…

Get Mobile Device​

Get a single mobile device record by ID. | key: getMobileDevice

InputNotesExample
Connection

The Jamf Pro connection to use.

Mobile Device

The unique identifier of the mobile device.

1
Example Payload for Get Mobile Device⤓
Loading…

Get Package​

Get a single package record by ID. | key: getPackage

InputNotesExample
Connection

The Jamf Pro connection to use.

Package

The unique identifier of the package.

1
Example Payload for Get Package⤓
Loading…

Get Script​

Get a single script by ID. | key: getScript

InputNotesExample
Connection

The Jamf Pro connection to use.

Script

The unique identifier of the script.

1
Example Payload for Get Script⤓
Loading…

Get Webhook​

Get a single webhook subscription by ID. | key: getWebhook

InputNotesExample
Connection

The Jamf Pro connection to use.

Webhook

The unique identifier of the webhook.

1
Example Payload for Get Webhook⤓
Loading…

List Categories​

List all categories with optional filtering and pagination. | key: listCategories

InputNotesExample
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*"
Pagination

Page and page-size controls.

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⤓
Loading…

List Computers​

List computer inventory records with optional filtering and pagination. | key: listComputers

InputNotesExample
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*"
Pagination

Page and page-size controls.

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⤓
Loading…

List Departments​

List all departments with optional filtering and pagination. | key: listDepartments

InputNotesExample
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*"
Pagination

Page and page-size controls.

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⤓
Loading…

List Mobile Devices​

List mobile device inventory records with optional filtering and pagination. | key: listMobileDevices

InputNotesExample
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*"
Pagination

Page and page-size controls.

Section

Section of mobile device 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 Mobile Devices⤓
Loading…

List Packages​

List all packages with optional filtering and pagination. | key: listPackages

InputNotesExample
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*"
Pagination

Page and page-size controls.

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⤓
Loading…

List Scripts​

List all scripts with optional filtering and pagination. | key: listScripts

InputNotesExample
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*"
Pagination

Page and page-size controls.

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⤓
Loading…

List Users​

List Jamf Pro user accounts with optional filtering and pagination. | key: listUsers

InputNotesExample
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*"
Pagination

Page and page-size controls.

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⤓
Loading…

List Webhooks​

List all webhook subscriptions configured in Jamf Pro. | key: listWebhooks

InputNotesExample
Connection

The Jamf Pro connection to use.

Example Payload for List Webhooks⤓
Loading…

Raw Request​

Send a raw HTTP request to the Jamf Pro API or the Classic API. | key: rawRequest

InputNotesExample
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

InputNotesExample
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⤓
Loading…

Update Computer​

Update specific fields of a computer inventory record. Only the provided fields are modified. | key: updateComputer

InputNotesExample
Update Data

JSON object with the computer inventory fields to update. Only the provided fields will be modified (PATCH semantics).

{
  "udid": "45436edf-864e-4364-982a-330b01d39e65",
  "general": {
    "name": "Boalime",
    "lastIpAddress": "247.185.82.186",
    "barcode1": "5 12345 678900",
    "barcode2": "5 12345 678900",
    "assetTag": "304822",
    "managed": true,
    "siteId": "1"
  },
  "userAndLocation": {
    "username": "Madison Anderson",
    "realname": "13-inch MacBook",
    "email": "email@com.pl",
    "position": "IT Team Lead",
    "phone": "123-456-789",
    "departmentId": "1",
    "buildingId": "1",
    "room": "5",
    "extensionAttributes": [
      {
        "definitionId": "23",
        "values": [
          "foo",
          "bar"
        ]
      }
    ]
  },
  "hardware": {
    "networkAdapterType": "Foo",
    "macAddress": "6A:2C:4B:B7:65:B5",
    "altNetworkAdapterType": "Bar",
    "altMacAddress": "82:45:58:44:dc:01",
    "extensionAttributes": [
      {
        "definitionId": "23",
        "values": [
          "foo",
          "bar"
        ]
      }
    ]
  }
}
Connection

The Jamf Pro connection to use.

Computer

The unique identifier of the computer.

1
Example Payload for Update Computer⤓
Loading…

Update Department​

Update an existing department. | key: updateDepartment

InputNotesExample
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⤓
Loading…

Update Package​

Update an existing package record. | key: updatePackage

InputNotesExample
Additional Fields

Additional optional fields: includes Package Name, File Name, Priority, Info, Notes, Reboot Required, OS Install, Fill User Template, Suppress Updates, Suppress EULA, Suppress From Dock, and Suppress Registration.

Connection

The Jamf Pro connection to use.

Category ID

The unique identifier of the category to assign to this package.

3
Package

The unique identifier of the package.

1
Example Payload for Update Package⤓
Loading…

Update Script​

Update an existing script. | key: updateScript

InputNotesExample
Additional Fields

Additional optional fields: includes Name, Script Contents, Priority, Info, and Notes.

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
Example Payload for Update Script⤓
Loading…

Update Webhook​

Update an existing webhook subscription. | key: updateWebhook

InputNotesExample
Additional Fields

Additional optional fields: includes Name, Event, URL, Content Type, and Enabled.

Connection

The Jamf Pro connection to use.

Webhook

The unique identifier of the webhook.

1
Example Payload for Update Webhook⤓
Loading…

Changelog​

2026-10-19​

  • Added opt-in batching to the New Computers trigger, dispatching each changed record individually or in configured batches so large backlogs drain in one recurrence; enabling it changes the shape a downstream step receives
  • Added an optional Look-back Date input to the New Computers trigger for performing an initial sync of computers. The initial sync begins on the first recurrence and backfills every computer enrolled on or after the specified date, seeding each once; recurrences after the sync completes are unaffected. Leave it empty to start from the first recurrence with no backfill
  • Fixed the New Computers trigger delivering some computers twice or skipping a computer enrolled while a recurrence was running

2026-07-21​

Restructured action inputs into structured objects for an improved user experience:

  • List actions (List Categories, List Departments, List Packages, List Scripts, List Users, List Computers, and List Mobile Devices) group their pagination inputs into Pagination; Fetch All stays a top-level toggle
  • Create Package, Update Package, Create Script, Update Script, Create Webhook, and Update Webhook group their optional inputs into Additional Fields

2026-06-16​

Enhanced List Mobile Devices with full inventory detail

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