zoho-desk
Create and update support tickets, contacts, and departments in Zoho Desk.
API: Zoho Desk REST API v1 — https://desk.zoho.com/api/v1
Auth: Zoho OAuth 2.0 access token (short-lived, 1 hour)
Operations
| operation | Description |
|---|---|
create-ticket |
Create a new support ticket |
update-ticket |
Update an existing ticket (status, priority, etc.) |
list-tickets |
List tickets in your organization |
create-contact |
Create a new contact |
list-departments |
List departments in your organization |
Authentication Setup
Zoho Desk uses OAuth 2.0. To get an access token:
- Go to Zoho API Console and create a Self Client.
- Add scopes:
Desk.tickets.ALL,Desk.contacts.ALL,Desk.basic.READ - Generate a grant code (valid for a few minutes) and exchange it for tokens via the Zoho OAuth endpoint.
- The access token (format:
1000.xxx.yyy) is what you pass asapiKey. - Access tokens expire after 1 hour. Use the refresh token to regenerate.
Your Organization ID is found in Zoho Desk under Admin Panel > Developer Space > API.
Input Parameters
| Parameter | Required | Description |
|---|---|---|
apiKey |
Yes | Zoho OAuth access token |
orgId |
Yes | Zoho Desk organization ID |
operation |
Yes | One of the operations above |
ticketId |
For update-ticket | ID of the ticket to update |
subject |
For create-ticket | Ticket subject line |
description |
Optional | Ticket or contact description |
contactId |
For create-ticket* | ID of the contact raising the ticket |
contactEmail |
For create-ticket* | Inline contact email (if no contactId) |
contactLastName |
For create-ticket* | Inline contact last name (if no contactId) |
departmentId |
Optional | Department ID for the ticket |
priority |
Optional | Low, Medium, High, or Urgent |
status |
Optional | Open, On Hold, Escalated, Closed |
firstName |
For create-contact | Contact first name |
lastName |
For create-contact | Contact last name (required) |
email |
For create-contact | Contact email |
phone |
For create-contact | Contact phone |
limit |
Optional | Records to return for list ops (max 50, default 10) |
*For create-ticket: supply either contactId OR both contactEmail + contactLastName.
Published Outputs
| Output | Description |
|---|---|
result |
JSON string with the API response payload |
status |
success or error-<httpCode> |
Examples
Create a ticket:
operation: create-ticket
subject: Login page returns 500 error
contactEmail: [email protected]
contactLastName: Smith
priority: High
status: Open
description: Users cannot log in since the last deployment.
Update a ticket:
operation: update-ticket
ticketId: 12345678901234
status: Closed
List tickets:
operation: list-tickets
limit: 20
Create a contact:
operation: create-contact
firstName: Alice
lastName: Smith
email: [email protected]
phone: +1-555-0100
List departments:
operation: list-departments
limit: 50