Adobe Creative Cloud is a suite of design, photography, video, and web development applications. ZombieLicenseHunter connects via Server-to-Server OAuth to sync user accounts, product entitlements, and activity data — enabling detection of inactive or over-provisioned Creative Cloud licenses.
Prerequisites
- Adobe Admin Console access with System Administrator role
- Access to the Adobe Developer Console to create projects and credentials
Setup Instructions
Step 1: Create an Adobe Developer Console Project
- Go to developer.adobe.com/console and sign in with your Adobe admin account.
- Click Create new project.
- Give the project a name (e.g., "ZombieLicenseHunter") and click Save.
Step 2: Add the User Management API
- In your project, click Add API.
- Select User Management API from the list and click Next.
- Choose OAuth Server-to-Server as the credential type and click Next.
- Select a product profile (or accept the default) and click Save configured API.
Step 3: Copy Your Credentials
On the OAuth Server-to-Server credential page, copy the following values — you will need them in Step 4:
| Field | Where to Find It |
|---|---|
| Client ID | Shown on the credential overview page |
| Client Secret | Click Retrieve client secret (shown once — store securely) |
| Organization ID | Shown at the top of the Developer Console, or under Organization in the credential details. Format: XXXXXXXXXXXXXXXX@AdobeOrg |
Step 4: Connect in ZombieLicenseHunter
- In ZombieLicenseHunter, go to Integrations → Add Integration and select Adobe Creative Cloud. Leave Category as Application.
- Enter the credentials copied in Step 3:
- Domain — your Organization ID, the full string ending in
@AdobeOrg. The field is labelled Domain on the form; the hint beneath it names the Organization ID. - Client ID
- Client Secret
- Domain — your Organization ID, the full string ending in
- Click Save Integration. ZombieLicenseHunter validates the credentials by requesting an access token from Adobe, then encrypts and stores them.
- An initial background sync begins immediately.
What Gets Synced
| Field | Description |
|---|---|
| User identity | Adobe user ID (UUID), email address |
| Product entitlements | Group memberships representing assigned product licenses (e.g., "All Apps", "Photoshop", "Acrobat Pro") |
| Last login | Most recent sign-in timestamp |
| Account creation date | When the user was provisioned in the Admin Console |
Tokens are short-lived (24 hours) and re-exchanged automatically on each sync cycle via client credentials grant. There is no refresh token.
Troubleshooting
"Invalid credentials" on save
Verify that the Organization ID, Client ID, and Client Secret were copied exactly. The Organization ID must include the @AdobeOrg suffix. Trailing whitespace is a common cause of failure.
"domain (OrgID) is required" error The Domain field is empty. Paste your full Organization ID from the Adobe Developer Console into it.
Token exchange fails with 401 Confirm the OAuth Server-to-Server credential is active in the Developer Console. If you recently created it, wait a few minutes for propagation. Also verify that the User Management API was added to the project.
Users not appearing after sync
Ensure the User Management API is added to your project (Step 2). Without it, the credential won't have the user_management_sdk scope needed to list users.
Rate limiting (429 errors) ZombieLicenseHunter already rate-limits Adobe API calls to 25 requests per minute. If you see 429 errors, another application may be consuming your organization's UMAPI quota. Contact Adobe support to check your rate limits.
Partial data — missing product entitlements Product entitlements appear as group memberships in Adobe UMAPI. Users must be assigned to product profiles in the Adobe Admin Console for their entitlements to appear. Users with direct "All Apps" entitlements but no product profile assignment may show with an empty license list.