Zendesk Connector
CleanAccess Zendesk customer support with managed OAuth to create, search, update, and manage tickets, users, and organizations using the Zendesk REST API v2.
SKILL.md
---
name: zendesk-connector
description: "Access Zendesk customer support with managed OAuth. Create, search, update, and manage tickets, users, and organizations. Use when the user wants to create a support ticket, search Zendesk tickets, update ticket status, list users, or manage Zendesk customer data."
metadata:
polly:
polly_managed_connector: true
auth:
- env: ZENDESK_ACCESS_TOKEN
type: oauth2
integration_id: zendesk
description: Zendesk OAuth access
scopes:
- read
- write
primaryEnv: ZENDESK_ACCESS_TOKEN
---
# Zendesk Connector
Access Zendesk customer support through the Zendesk REST API v2 using managed OAuth.
## First-Time Setup
If Zendesk is not connected yet, run:
`manage_auth(action="connect", integration_id="zendesk", auth_env="ZENDESK_ACCESS_TOKEN")`
## Auth & Security
- Authentication is managed by Polly + Nango from `metadata.polly.auth`
- Never ask users to paste tokens in chat
- Never print or log token values
- If auth fails, reconnect with:
`manage_auth(action="connect", integration_id="zendesk", auth_env="ZENDESK_ACCESS_TOKEN")`
## Base URL
`https://{subdomain}.zendesk.com/api/v2`
The subdomain is organization-specific. All requests include:
`Authorization: Bearer $ZENDESK_ACCESS_TOKEN`
## Quick Usage
List tickets:
```bash
curl -sS \
-H "Authorization: Bearer $ZENDESK_ACCESS_TOKEN" \
"https://<subdomain>.zendesk.com/api/v2/tickets?page[size]=10"
```
Get a ticket:
```bash
curl -sS \
-H "Authorization: Bearer $ZENDESK_ACCESS_TOKEN" \
"https://<subdomain>.zendesk.com/api/v2/tickets/<ticketId>"
```
Create a ticket:
```bash
curl -sS -X POST \
-H "Authorization: Bearer $ZENDESK_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ticket":{"subject":"New support request","description":"Details of the issue","priority":"normal"}}' \
"https://<subdomain>.zendesk.com/api/v2/tickets"
```
Update a ticket:
```bash
curl -sS -X PUT \
-H "Authorization: Bearer $ZENDESK_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ticket":{"status":"solved","comment":{"body":"Issue resolved.","public":true}}}' \
"https://<subdomain>.zendesk.com/api/v2/tickets/<ticketId>"
```
Search tickets:
```bash
curl -sS \
-H "Authorization: Bearer $ZENDESK_ACCESS_TOKEN" \
"https://<subdomain>.zendesk.com/api/v2/search.json?query=type:ticket+status:open"
```
List users:
```bash
curl -sS \
-H "Authorization: Bearer $ZENDESK_ACCESS_TOKEN" \
"https://<subdomain>.zendesk.com/api/v2/users?page[size]=10"
```
## Rules
- The subdomain is organization-specific — ask the user or derive it from their Zendesk URL
- Search uses Zendesk search syntax (e.g., `type:ticket status:open assignee:me`)
- For pagination, use cursor-based pagination with `page[size]` and `page[after]` parameters
- On API errors, surface status + response body clearly
- On 401/403, reconnect with `manage_auth(action="connect", integration_id="zendesk", auth_env="ZENDESK_ACCESS_TOKEN")`
- Never log, echo, or expose credential values in any output
Authorstella
Downloads10
Versions2
Published1d ago
Auth Requirements
ZENDESK_ACCESS_TOKENoauth2integration: zendesk
Version History
SHA-256 (latest)
a75c5419c5d2e520dd4edffed31d84932e78d139355c589f114b92a8d4f2a8bf