Mobile Devices
Fetches mobile device records from Jamf Pro, including hardware details, OS version, enrollment status, and management information.
Sync Type: Full Synchronization
Prerequisites
Before connecting Monad to Jamf Pro, you need:
- An active Jamf Pro instance (cloud-hosted at
*.jamfcloud.comor self-hosted). - Your Jamf Pro tenant base URL — for example,
https://acme.jamfcloud.com. - An API Client (Client ID and Client Secret) with sufficient privileges to read mobile device records. See the Authentication section below for steps to create one.
Creating an API Client in Jamf Pro
- Log in to your Jamf Pro instance.
- Navigate to Settings > System > API Roles and Clients.
- First, create an API Role:
- Click New under the API Roles tab.
- Give the role a descriptive display name (e.g.,
Monad Mobile Devices Reader). - Grant the role the Read Mobile Devices privilege.
- Save the role.
- Then, create an API Client:
- Click New under the API Clients tab.
- Give the client a descriptive display name (e.g.,
monad-mobile-devices). - Assign the API Role you created above.
- Set an appropriate Access Token Lifetime (Jamf default is 30 minutes; Monad refreshes automatically).
- Enable the client and click Save.
- Click Generate Client Secret and copy both the Client ID and the Client Secret — the secret is shown only once, so store it securely.
Configuration
The following configuration defines the input parameters.
Settings
| Setting | Type | Required | Description |
|---|---|---|---|
| Base URL | string | Yes | The base URL for your Jamf Pro tenant (e.g. https://acme.jamfcloud.com). Do not include a trailing slash. |
| Cron | string | Yes | Cron expression that controls how often the connector polls for updated mobile device records (5-field, standard syntax). Example: 0 0 * * * for daily at midnight. Jamf recommends no more than one full sync per day. |
| Use Synthetic Data | boolean | No | Generate synthetic data for testing instead of connecting to the real Jamf Pro API. Defaults to false. |
Secrets
| Secret | Type | Required | Description |
|---|---|---|---|
| Client ID | secret | Yes | OAuth2 Client ID from your Jamf Pro API client. Used to obtain access tokens via the client credentials grant. |
| Client Secret | secret | Yes | OAuth2 Client Secret paired with the Client ID. Used to obtain access tokens. |
Setup Walk-through
-
Create an API Role and Client — follow the Authentication section above to create a Jamf Pro API role with mobile device read access, then generate an API client and copy the Client ID and Client Secret.
-
Create the input in Monad:
- Open your Monad workspace and navigate to Inputs.
- Click Add Input and select Jamf — Mobile Devices.
-
Fill in the configuration:
- Enter your Base URL (e.g.,
https://acme.jamfcloud.com). - Paste the Client ID and Client Secret from your Jamf Pro API client.
- Set the Cron schedule to control how often the connector polls for new or updated records (e.g.,
0 0 * * *for once daily).
- Enter your Base URL (e.g.,
-
Save and test — click Test Connection. Monad will authenticate with Jamf Pro and make a sample request to the mobile devices endpoint to confirm the credentials and base URL are valid.
-
Activate — once the connection test passes, enable the input. Monad will incrementally sync mobile device records on each scheduled run, fetching only records updated since the last successful sync.
Troubleshooting
Common Issues
-
Authentication Errors (401 / 403)
- Confirm the Client ID and Client Secret are correct and match the API client in Jamf Pro (Settings > API Roles and Clients).
- Ensure the API client is enabled and has not expired or been revoked.
- Verify the API client has the Read Mobile Devices privilege through its assigned API role.
- Ensure no extra whitespace was included when copying the credentials.
-
Connection Refused or Timeout
- Confirm the Base URL is correct and includes the
https://scheme (e.g.,https://acme.jamfcloud.com). - If your Jamf Pro instance is self-hosted, ensure Monad's egress IPs are permitted through your firewall.
- Confirm the Base URL is correct and includes the
-
Empty Results
- Confirm that mobile devices are enrolled in your Jamf Pro instance.
- Check that the API role grants Read Mobile Devices access — other privileges do not grant access to this endpoint.
- Review the pipeline logs for any error responses returned from the Jamf Pro API.
-
Invalid Cron Expression
- Ensure the cron expression uses standard 5-field syntax. Refer to Cron Expression Syntax for guidance.