Skip to main content
Solved

Automate recalculating Jamf App Catalog titles?

  • May 1, 2026
  • 6 replies
  • 172 views

ThomM
Forum|alt.badge.img+22

I know this has been a “feature, not a bug” for a while with Jamf App Catalog titles but it’s becoming enough of a problem that I would REALLY like a better solution.  The problem:

  • Macs fall into a Smart Group being used for scoping of Jamf App Catalog titles
  • Jamf App Catalog scoping does not reliably update with those recently added Macs unless you toggle the deployment off and back on again to force it to recalculate. (Count is differing by 100 or more Macs for some titles in our instance today.)
  • Jamf Pro lacks any way to alert us that an App Catalog title needs refreshing, so we have to monitor every title’s deployment count manually to see if any of them needs a reset.

I started a support “ticket” (i.e. JamfBot conversation) about this just in case there was a new checkbox or something somewhere I wasn’t aware of, and it informs me that everything is functioning as intended as far as documented solutions.  I’m in line for a human support agent to see if they have any pointers or undocumented solutions but thought I’d see if anyone here had something as well.

I’m most likely going to end up trying to write something with a bunch of API calls to:

  • Grab the device count from said Smart Group
  • Grab the list of our App Catalog titles and their deployment counts
  • Compare those counts and tell me which ones don’t match

Maybe even also make it toggle the deployment(s) off and back on again for those titles, if there’s an API endpoint for that.  Dunno, I haven’t actually started digging into it yet.  It’s nearing the end of my Friday, so this is a project for Monday Thom if nobody else has built something similar for me to appropriate.

Thanks in advance. :)

Best answer by ThomM

Wrote a script to scan your server’s App Installers, compare the number of Macs it thinks should get an app against the number of Macs in the Smart Group that the app is scoped to, and output a report if the numbers don’t match so you can go toggle it off and on (and check your scoping memberships).

Have a Tech Thoughts article in the works, but here’s the script itself: https://github.com/3panman/scripts/blob/main/JamfAppsCheck-Sanitized.zsh

6 replies

ThomM
Forum|alt.badge.img+22
  • Author
  • Jamf Heroes
  • May 1, 2026

Just submitted this as well: https://ideas.jamf.com/ideas/JPRO-I-2081


ThomM
Forum|alt.badge.img+22
  • Author
  • Jamf Heroes
  • May 4, 2026

Turns out part of this is on us - things happened causing some Macs to fall into scope of multiple instances of the same JAC title(s), which triggers the deployment recalculation break.  I’m getting that cleaned up, but it doesn’t change the need for some sort of alert when this sort of scoping error happens.


ThomM
Forum|alt.badge.img+22
  • Author
  • Jamf Heroes
  • Answer
  • May 13, 2026

Wrote a script to scan your server’s App Installers, compare the number of Macs it thinks should get an app against the number of Macs in the Smart Group that the app is scoped to, and output a report if the numbers don’t match so you can go toggle it off and on (and check your scoping memberships).

Have a Tech Thoughts article in the works, but here’s the script itself: https://github.com/3panman/scripts/blob/main/JamfAppsCheck-Sanitized.zsh


Jordy-Thery
Forum|alt.badge.img+16
  • Valued Contributor
  • May 14, 2026

Wrote a script to scan your server’s App Installers, compare the number of Macs it thinks should get an app against the number of Macs in the Smart Group that the app is scoped to, and output a report if the numbers don’t match so you can go toggle it off and on (and check your scoping memberships).

Have a Tech Thoughts article in the works, but here’s the script itself: https://github.com/3panman/scripts/blob/main/JamfAppsCheck-Sanitized.zsh

Nice one! 👌🏻


ThomM
Forum|alt.badge.img+22
  • Author
  • Jamf Heroes
  • May 14, 2026

Thanks ​@Jordy-Thery !


ThomM
Forum|alt.badge.img+22
  • Author
  • Jamf Heroes
  • May 19, 2026

Heh…. I did a dumb.  Apparently while testing the logic flow for checking if jq was installed, I forgot to change it back before publishing.  It’s fixed on github now but if you’ve downloaded it, line 12 should be:
 

if [[ ! -f /usr/bin/jq ]]; then