Skip to content

Latest commit

 

History

History
97 lines (79 loc) · 2.89 KB

Webhooks.md

File metadata and controls

97 lines (79 loc) · 2.89 KB

Webhooks

webhooks

(Dict, optional)

Setup Manager can send webhooks to inform other services of its status. The configuration for the webhooks in all stored under the top-level webhooks key.

The webhooks dict can contain two keys, both of which are again dicts. started defines the webhook or webhooks that are called when Setup Manager starts its workflow, and the other finished defines the webhook or webhooks when it finishes the workflow.

When the either the started or finished key is missing, no webhook will be sent for that event.

Example:

<key>webhooks</key>
<dict>
  <key>finished</key>
  <string>https://example.com/webhook-finish</string>
  <key>started</key>
  <string>https://example.com/webhook-start</string>
</dict>

Multiple webhooks

You can send multiple services per event:

<key>webhooks</key>
<dict>
  <key>finished</key>
  <array>
    <string>https://example.com/webhook-finish</string>
    <string>https://otherservice.com/abc123456</string>
  </array>
  <key>started</key>
  <array>
    <string>https://example.com/webhook-start</string>
    <string>https://otherservice.com/abc123456</string>
  </array>
</dict>

WebHook Data

For the started webhook, Setup Manager attaches this data:

{
  "name": "SetupManagerStarted",         // string
  "timestamp": "2025-01-14T15:11:28Z",   // time setup manager started, date as string, iso8601
  "started": "2025-01-14T15:11:27Z",     // time webhook was sent, date as string, iso8601 
  "modelName": "MacBook Air",            // string
  "modelIdentifier": "Mac14,2",          // string
  "macOSBuild": "24C101",                // string
  "macOSVersion": "15.2.0",              // string
  "serialNumber": "ABCD1234DE",          // string
  "setupManagerVersion": "1.2"           // string
  "jamfProVersion": "11.13.0"            // optional, only for Jamf Pro, string
  "jssID": 1234                          // optional, only when `jssID` is set in profile, string
}

The data for the finished webhook includes the same as above, with some additional fields:

{
  "name": "SetupManagerStarted",         // string
  "duration": 53,                        // integer
  "finished": "2025-01-14T15:12:20Z",    // time Setup Manager finished, date as string, iso8601
  "computerName": "Mac-123456"           // computer name, only when set through Setup Manager
  "userEntry": {                         // data entered by the user
    "department": "IT",
    "computerName": "IT-M7WGMK",
    "userID": "a.b@example.,com",
    "assetTag": "abc54321"
  },
  "enrollmentActions": [                 // array of enrollmentActions with status
    {
      "label": "Microsoft 365",
      "status": "finished"               // status: "finished" or "failed"
    },
    {
      "label": "Google Chrome",
      "status": "finished"
    },
    {
      "label": "Jamf Connect",
      "status": "finished"
    },
  ],
}