Zendesk Port
This is the Harbor reference integration for the Zendesk Ticketing API.
Zendesk Port
Purpose
This is the Harbor reference integration for the Zendesk Ticketing API.
Use it when:
- building Zendesk actions in Harbor
- extending the Dock / Hub Zendesk entry
- teaching Codex or OpenClaw how to map support ticket reads and bounded ticket creation into Harbor Ports and Harbor Actions without turning Harbor into a generic helpdesk admin proxy
Harbor Port worksheet
Product
- Product: Zendesk Ticketing API
- Publisher slug:
zendesk - Publisher name:
Zendesk - Category:
CRM - Tags:
zendesk,support,tickets,customer-ops,helpdesk
Safe Harbor Port metadata
- Kind:
http_api - Label:
Zendesk API - Description:
Zendesk API connection managed locally through Harbor. - Base URL: tenant-specific Zendesk subdomain root, for example
https://acme.zendesk.com/ - Auth mode:
header_token - Auth header name:
Authorization - Auth token prefix:
Bearer
Hidden local config
authToken
Harbor stores the token locally only. Dock / Hub manifests must never contain it.
For Harbor Dock distribution, prefer OAuth bearer tokens over Zendesk basic auth with API tokens.
Harbor action design notes
Zendesk is a good Harbor fit when we keep tenant targeting explicit, ticket reads bounded, and ticket creation reviewable.
Good Harbor Zendesk starter actions:
- fixed
GETreads for ticket inventory with typed pagination and sorting filters - a bounded
GETroute for one explicit ticket ID - one reviewable
POSTroute for ticket creation requestBodyMode: "none"for readsrequestBodyMode: "json"for create-ticketresultMode: "json_summary"for all starter actions
Avoid for now:
- bulk update, merge, delete, or spam workflows
- generic search passthroughs across the full ticketing surface
- admin configuration, user management, or macro/rule mutation flows
- agent-impersonation or credential-sharing patterns
Starter Zendesk actions
Automatic read actions
list-tickets->GET /api/v2/ticketsget-ticket->GET /api/v2/tickets/{ticketId}
Approval-friendly write actions
create-ticket->POST /api/v2/tickets
Why these actions
These routes fit Harbor's current safe model because they:
- stay on stable REST endpoints under one explicit tenant base URL
- keep ticket targeting explicit through bounded path templates
- use typed query parameters for reviewable list behavior instead of generic query forwarding
- expose ticket creation as a named capability instead of generic authenticated HTTP access
Action Model notes
At execution time, callers supply values by location:
input.queryforlist-ticketsinput.path.ticketIdand optionalinput.query.includeforget-ticketinput.bodyforcreate-ticket
Example ticket listing request:
{
"query": {
"per_page": 25,
"sort_by": "updated_at",
"sort_order": "desc"
}
}
Example single-ticket request:
{
"path": {
"ticketId": 12345
}
}
Example create request:
{
"body": {
"ticket": {
"subject": "Customer cannot access billing portal",
"comment": {
"body": "Customer reports repeated login failures after password reset."
},
"priority": "high"
}
}
}
For create-ticket, keep the body bounded to fields you actually intend to support, such as:
subjectcommentpriorityrequesterrequester_idtypetags
Safety note for ticket creation
create-ticket stays on require_approval because ticket creation can trigger agent workflows, outbound notifications, routing rules, and customer-facing support activity. Harbor should treat that as an explicit, reviewable capability.
Suggested operator workflow
- Import the Zendesk Dock entry from Dock / Hub.
- Configure the local Zendesk tenant base URL in Harbor Node.
- Configure the local OAuth bearer token in Harbor Node.
- Use
list-ticketsto inspect current ticket volume and filters. - Use
get-ticketto inspect the exact record shape you need. - Keep
create-ticketonrequire_approvalunless there is a very clear local policy reason not to.
Suggested agent workflow
- Inspect the existing Zendesk Harbor Port.
- Inspect live actions and drafts.
- Propose additional fixed Zendesk routes only when they remain bounded and reviewable.
- Validate and test drafts.
- Request publish instead of self-publishing unless Harbor explicitly allows it.
Agents should never:
- ask Harbor for the stored Zendesk token
- widen Zendesk into a generic support administration proxy
- add bulk mutation or destructive ticket flows without review
- hide tenant or ticket targeting behind arbitrary route input
Current update strategy
For now, Zendesk updates are manual:
- update the Dock / Hub Zendesk integration document in
apps/hub/catalog/integrations/zendesk/zendesk-api.json - bump the manifest version when the action set changes materially
- re-import into Harbor or create new drafts from the updated Dock entry
Official reference starting points
- Zendesk security and authentication:
https://developer.zendesk.com/api-reference/introduction/security-and-auth/ - Zendesk tickets API overview:
https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/ - List tickets:
https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#list-tickets - Show ticket:
https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#show-ticket - Create ticket:
https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#create-ticket