About Adobe
Adobe provides creative, document, and marketing software — Creative Cloud, Document Cloud, and Experience Cloud — licensed to users through the Adobe Admin Console. Connecting Adobe to Serval lets you automate license (product profile) assignment, user management, and access workflows via Adobe’s User Management API.The Adobe integration is in beta. The surface is currently focused on the Adobe User Management API (
usermanagement.adobe.io). Other Adobe APIs (Creative Cloud Libraries, Photoshop API, etc.) are not exposed.What the Adobe integration enables
| Capability | Description |
|---|---|
| Access Management | Provision and deprovision Adobe product profiles (licenses) through pre-built, installable workflows |
| Workflow Automation | Call any endpoint in the Adobe User Management API via the Adobe API request action |
Key Features
- List and look up users in your Adobe organization
- Create users and assign / remove product profiles (licenses)
- Manage user groups and group membership
- Remove users from the organization
Common Use Cases
- Self-service Creative Cloud license requests with approval
- Offboarding: reclaim Adobe licenses automatically
- License-tier changes (e.g. Single App → All Apps)
- Periodic audits of who holds which product profile
Adobe configuration (in the Adobe Developer Console)
Serval authenticates to Adobe with an OAuth Server-to-Server credential that you create in the Adobe Developer Console. This credential acts on behalf of your organization — no user login or browser-based OAuth flow is involved.Prerequisites
- A System Administrator role in your Adobe organization — required to add the User Management API to a Developer Console project
- Access to the Adobe Developer Console
Step 1: Create a project with the User Management API
Create a project
- Sign in to the Adobe Developer Console
- Make sure the correct organization is selected in the top-right org picker
- Click Create new project (or open an existing project you want to reuse)
Add the User Management API
- In the project, click Add API
- Select User Management API (listed under Adobe Services) and click Next
- Choose the OAuth Server-to-Server credential type
- Click Save configured API
Adding the User Management API automatically attaches the scopes the credential needs (
openid, AdobeID, user_management_sdk). You don’t need to configure scopes manually — Serval requests exactly these during the token exchange.Step 2: Collect the credentials
Open the credential details
In your project, open the OAuth Server-to-Server credential. The Credential details page shows everything Serval needs.
Serval configuration
Enter the credentials
| Field | Description |
|---|---|
| Organization ID | Your Adobe organization ID. It always ends with @AdobeOrg. |
| Client ID (API Key) | The Client ID of your OAuth Server-to-Server credential. |
| Client Secret | The Client Secret of your OAuth Server-to-Server credential. |
Save and verify
Click Save. Serval exchanges the credentials for an access token with Adobe IMS and runs a read-only health check that lists the first page of users in your organization. This exercises the full auth path — the token exchange, the API key header, and org access — so a green check means the integration is ready to use.
Adobe access tokens are short-lived; Serval refreshes them automatically using the stored credential. You never need to rotate tokens by hand — only the client secret, if your security policy requires it.
Installable workflow bundles
The integration ships with an Access Management bundle you can install from Apps → Adobe → Workflows:- Provision User to Adobe — assigns the requested Adobe product profile (license) to a user. If the user doesn’t exist in your Adobe organization yet, the workflow first creates a Federated ID for them, then adds the product profile. Install it, then select it as an app entitlement’s custom provisioning workflow.
- Deprovision User from Adobe — removes the revoked product profile from a user. Select it as the entitlement’s custom deprovisioning workflow. The user stays in the organization; only the license is reclaimed.
Default All Apps configuration).
Two scoping assumptions to check before installing:
- Identity type: user creation assumes your organization uses Federated IDs (SSO-backed). If you use Enterprise IDs or Business IDs, or rely on SSO just-in-time provisioning, adjust the user-creation step after installing.
- SSO access is separate: these workflows manage only the Adobe license. If sign-in to Adobe is gated by an IdP / directory group, grant or revoke that group in your IdP (or as its own Serval step) — assigning a product profile does not by itself let the user log in.
Using Adobe in workflows
Once connected, use the Adobe API request action to call any User Management API endpoint. The action is schema-less — pass the path, method, and body directly, and resolve request shapes from the UMAPI documentation. Serval injects authentication automatically on every call:- The Bearer token from the OAuth Server-to-Server exchange
- The
X-Api-Keyheader (your client ID), which Adobe requires on every request
Common endpoints
| Path | Method | Notes |
|---|---|---|
/v2/usermanagement/users/{orgId}/{page} | GET | List users, paginated by page number. The response’s lastPage flag tells you when to stop. |
/v2/usermanagement/organizations/{orgId}/users/{userString} | GET | Look up a single user by email. |
/v2/usermanagement/groups/{orgId}/{page} | GET | List user groups and product profiles. |
/v2/usermanagement/action/{orgId} | POST | The batch action API — create users, add/remove product profiles and user groups, remove users from the org. Each entry’s do array runs steps in order. |
result, completed, notCompleted, errors) rather than failing the HTTP request — always check notCompleted and errors in your workflow. The pre-built provisioning workflows above already do this and fail loudly on partial completion.
Troubleshooting
Health check fails after connecting
- Confirm the Organization ID ends with
@AdobeOrgand matches the org selected in the Developer Console when you created the project. - Confirm the credential is OAuth Server-to-Server (not JWT — Adobe’s deprecated Service Account credential type — and not an OAuth Web App credential).
- Confirm the User Management API is added to the same project as the credential. The client ID is only authorized for APIs attached to its project.
401 Unauthorized on API calls
- The client secret may have been rotated in the Adobe Developer Console. Update the secret in Serval (Apps → Adobe → Configure).
Action API reports notCompleted entries
- The product profile name in the request must match the Adobe Admin Console name exactly, including case and spacing. For the installable workflows, that means the Serval entitlement name must be an exact match.
- Check the
errorsarray in the response — Adobe returns a per-entryerrorCodeandmessageidentifying the failing step.
External Resources
- Adobe Developer Console
- User Management API documentation
- OAuth Server-to-Server credentials guide
- Adobe Admin Console

