ZombieLicenseHunter connects to Zendesk through OAuth 2.0, using an OAuth client that you create in your own Zendesk account, to sync your agents and admins — the people who hold Zendesk seats — so you can identify inactive licenses.
Prerequisites
- A Zendesk account where you are an administrator (e.g.,
yourcompany.zendesk.com) - The public URL of your ZombieLicenseHunter instance, for the redirect URL
Setup Instructions
Step 1: Create an OAuth client in Zendesk
- In Zendesk Admin Center, go to Apps and integrations → APIs → OAuth clients.
- Click Add OAuth client and fill in:
- Client name:
ZombieLicenseHunter - Description: optional
- Redirect URLs:
https://<your-zombielicensehunter-host>/integrations/zendesk/callback - Type: Confidential
- Client name:
- Save. Copy the Secret immediately — it is shown only once. The Identifier is your Client ID and stays visible on the client's page.
Step 2: Connect in ZombieLicenseHunter
- Go to Integrations → Add Integration and select Zendesk. Leave Category as Application.
- Enter:
- Client ID — the OAuth client's Identifier
- Client Secret — the Secret copied in Step 1
- Zendesk Subdomain — just the subdomain (e.g.,
acmeforacme.zendesk.com)
- Click Save Integration. You are redirected to your Zendesk instance to authorize the
users:readscope, which is the only scope ZombieLicenseHunter requests. - Approve the request. Zendesk redirects you back, the authorization code is exchanged for a token, the integration becomes active, and the first sync is queued.
What Gets Synced
Only users with the agent or admin role are fetched; end-users are excluded. For each of them:
| Field | Notes |
|---|---|
| Email and name | From the Zendesk user record |
| License type | The Zendesk role, agent or admin |
| Active status | Active or suspended |
| Created and last login dates | From the Zendesk user record |
Troubleshooting
Zendesk reports an invalid redirect URL
The redirect URL on the OAuth client must match https://<your-zombielicensehunter-host>/integrations/zendesk/callback exactly: scheme, host, port and path, with no trailing slash.
"subdomain is required" or an invalid-subdomain error
Enter only the subdomain (e.g., acme), not the full host name. Letters, digits and internal hyphens are allowed.
401 errors during sync The token was revoked, for example because the OAuth client was deleted in Zendesk. Use Reconnect on the integration to authorize again.
A seat holder is missing Only agents and admins are synced. Check the person's role under People → Team members in Zendesk; end-users and suspended users without a seat are not included.