productivity
Zoho Desk CLI for AI Agents
Use the Zoho Desk CLI from KosmoKrator to call Zoho Desk tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Zoho Desk CLI Setup
Zoho Desk can be configured headlessly with `kosmokrator integrations:configure zoho-desk`.
# Install KosmoKrator first if it is not available on PATH.
curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash
# Configure and verify this integration.
kosmokrator integrations:configure zoho-desk --set access_token="$ZOHO_DESK_ACCESS_TOKEN" --set org_id="$ZOHO_DESK_ORG_ID" --enable --read allow --write ask --json
kosmokrator integrations:doctor zoho-desk --json
kosmokrator integrations:status --json Credentials
Authentication type: Manual OAuth token oauth2_manual_token. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
access_token | ZOHO_DESK_ACCESS_TOKEN | Secret secret | yes | Access Token |
url | ZOHO_DESK_URL | URL url | no | API Base URL |
org_id | ZOHO_DESK_ORG_ID | Text string | yes | Organization ID |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call zoho-desk.zohodesk_list_tickets '{"departmentId":"example_departmentId","status":"example_status","priority":"example_priority","from":1,"limit":1,"sortBy":"example_sortBy","sortOrder":"example_sortOrder","search":"example_search"}' --json kosmo integrations:zoho-desk zohodesk_list_tickets '{"departmentId":"example_departmentId","status":"example_status","priority":"example_priority","from":1,"limit":1,"sortBy":"example_sortBy","sortOrder":"example_sortOrder","search":"example_search"}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities before choosing a function.
kosmo integrations:docs zoho-desk --json
kosmo integrations:docs zoho-desk.zohodesk_list_tickets --json
kosmo integrations:schema zoho-desk.zohodesk_list_tickets --json
kosmo integrations:search "Zoho Desk" --json
kosmo integrations:list --json Automation Contexts
The same configured command surface works in these environments. The command does not change unless the host wrapper, credentials, or permissions change.
CLI Functions
Every function below can be called headlessly. Commands are highlighted, copyable, and scroll horizontally when payloads are long.
zoho-desk.zohodesk_list_tickets
List support tickets from Zoho Desk. Supports filtering by department, status, priority, and other criteria. Returns ticket IDs, subjects, statuses, and basic details.
read - Parameters
- departmentId, status, priority, from, limit, sortBy, sortOrder, search
kosmo integrations:call zoho-desk.zohodesk_list_tickets '{"departmentId":"example_departmentId","status":"example_status","priority":"example_priority","from":1,"limit":1,"sortBy":"example_sortBy","sortOrder":"example_sortOrder","search":"example_search"}' --json kosmo integrations:zoho-desk zohodesk_list_tickets '{"departmentId":"example_departmentId","status":"example_status","priority":"example_priority","from":1,"limit":1,"sortBy":"example_sortBy","sortOrder":"example_sortOrder","search":"example_search"}' --json zoho-desk.zohodesk_get_ticket
Get full details of a specific support ticket by its ID, including subject, description, status, priority, assignee, contact info, and custom fields.
read - Parameters
- ticketId
kosmo integrations:call zoho-desk.zohodesk_get_ticket '{"ticketId":"example_ticketId"}' --json kosmo integrations:zoho-desk zohodesk_get_ticket '{"ticketId":"example_ticketId"}' --json zoho-desk.zohodesk_create_ticket
Create a new support ticket in Zoho Desk. Requires at least a subject and department ID. Optionally include a contact ID, description, priority, and other ticket fields.
write - Parameters
- subject, departmentId, description, contactId, email, priority, status, channel, assigneeId, teamId
kosmo integrations:call zoho-desk.zohodesk_create_ticket '{"subject":"example_subject","departmentId":"example_departmentId","description":"example_description","contactId":"example_contactId","email":"example_email","priority":"example_priority","status":"example_status","channel":"example_channel"}' --json kosmo integrations:zoho-desk zohodesk_create_ticket '{"subject":"example_subject","departmentId":"example_departmentId","description":"example_description","contactId":"example_contactId","email":"example_email","priority":"example_priority","status":"example_status","channel":"example_channel"}' --json zoho-desk.zohodesk_update_ticket
Update an existing support ticket in Zoho Desk. Provide the ticket ID and the fields to update (e.g., status, priority, assignee, subject, description).
write - Parameters
- ticketId, subject, description, status, priority, assigneeId, teamId, departmentId, channel
kosmo integrations:call zoho-desk.zohodesk_update_ticket '{"ticketId":"example_ticketId","subject":"example_subject","description":"example_description","status":"example_status","priority":"example_priority","assigneeId":"example_assigneeId","teamId":"example_teamId","departmentId":"example_departmentId"}' --json kosmo integrations:zoho-desk zohodesk_update_ticket '{"ticketId":"example_ticketId","subject":"example_subject","description":"example_description","status":"example_status","priority":"example_priority","assigneeId":"example_assigneeId","teamId":"example_teamId","departmentId":"example_departmentId"}' --json zoho-desk.zohodesk_list_contacts
List contacts from Zoho Desk. Supports filtering by name, email, and search terms. Returns contact IDs, names, emails, and phone numbers.
read - Parameters
- from, limit, search, sortBy, sortOrder
kosmo integrations:call zoho-desk.zohodesk_list_contacts '{"from":1,"limit":1,"search":"example_search","sortBy":"example_sortBy","sortOrder":"example_sortOrder"}' --json kosmo integrations:zoho-desk zohodesk_list_contacts '{"from":1,"limit":1,"search":"example_search","sortBy":"example_sortBy","sortOrder":"example_sortOrder"}' --json zoho-desk.zohodesk_list_articles
List knowledge base articles from Zoho Desk. Supports filtering by department, category, and search terms. Returns article IDs, titles, summaries, and categories.
read - Parameters
- departmentId, categoryId, from, limit, search, sortBy, sortOrder
kosmo integrations:call zoho-desk.zohodesk_list_articles '{"departmentId":"example_departmentId","categoryId":"example_categoryId","from":1,"limit":1,"search":"example_search","sortBy":"example_sortBy","sortOrder":"example_sortOrder"}' --json kosmo integrations:zoho-desk zohodesk_list_articles '{"departmentId":"example_departmentId","categoryId":"example_categoryId","from":1,"limit":1,"search":"example_search","sortBy":"example_sortBy","sortOrder":"example_sortOrder"}' --json zoho-desk.zohodesk_list_departments
List all departments configured in Zoho Desk. Returns department IDs, names, descriptions, and visibility settings. Department IDs are needed when creating tickets.
read - Parameters
- from, limit
kosmo integrations:call zoho-desk.zohodesk_list_departments '{"from":1,"limit":1}' --json kosmo integrations:zoho-desk zohodesk_list_departments '{"from":1,"limit":1}' --json zoho-desk.zohodesk_get_current_user
Get the profile of the currently authenticated Zoho Desk user. Returns user ID, name, email, role, and other profile information.
read - Parameters
- none
kosmo integrations:call zoho-desk.zohodesk_get_current_user '{}' --json kosmo integrations:zoho-desk zohodesk_get_current_user '{}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
zoho-desk.zohodesk_list_tickets 8 parameters
kosmo integrations:schema zoho-desk.zohodesk_list_tickets --json | Parameter | Type | Required | Description |
|---|---|---|---|
departmentId | string | no | Filter by department ID. |
status | string | no | Filter by status (e.g., "Open", "On Hold", "Closed", "Escalated"). |
priority | string | no | Filter by priority (e.g., "High", "Medium", "Low"). |
from | integer | no | Starting index for pagination (default: 1). |
limit | integer | no | Maximum number of tickets to return (default: 25, max: 200). |
sortBy | string | no | Sort field (e.g., "createdTime", "subject", "priority"). |
sortOrder | string | no | Sort direction: "asc" or "desc". |
search | string | no | Search term to filter tickets by subject or description. |
zoho-desk.zohodesk_get_ticket 1 parameters
kosmo integrations:schema zoho-desk.zohodesk_get_ticket --json | Parameter | Type | Required | Description |
|---|---|---|---|
ticketId | string | yes | The ticket ID to retrieve. |
zoho-desk.zohodesk_create_ticket 10 parameters
kosmo integrations:schema zoho-desk.zohodesk_create_ticket --json | Parameter | Type | Required | Description |
|---|---|---|---|
subject | string | yes | The ticket subject line. |
departmentId | string | yes | The department ID to assign the ticket to. Use zohodesk_list_departments to find available departments. |
description | string | no | Detailed description of the issue or request. |
contactId | string | no | Contact ID to associate with the ticket. |
email | string | no | Email address of the contact (alternative to contactId). |
priority | string | no | Ticket priority: "High", "Medium", "Low", or "Lowest". |
status | string | no | Initial status (default depends on department settings). |
channel | string | no | Ticket channel (e.g., "Email", "Phone", "Web", "Chat"). |
assigneeId | string | no | Agent ID to assign the ticket to. |
teamId | string | no | Team ID to assign the ticket to. |
zoho-desk.zohodesk_update_ticket 9 parameters
kosmo integrations:schema zoho-desk.zohodesk_update_ticket --json | Parameter | Type | Required | Description |
|---|---|---|---|
ticketId | string | yes | The ticket ID to update. |
subject | string | no | Updated ticket subject. |
description | string | no | Updated ticket description. |
status | string | no | New status (e.g., "Open", "On Hold", "Closed", "Escalated"). |
priority | string | no | New priority (e.g., "High", "Medium", "Low"). |
assigneeId | string | no | Agent ID to reassign the ticket to. |
teamId | string | no | Team ID to reassign the ticket to. |
departmentId | string | no | Move ticket to a different department. |
channel | string | no | Updated channel (e.g., "Email", "Phone", "Web"). |
zoho-desk.zohodesk_list_contacts 5 parameters
kosmo integrations:schema zoho-desk.zohodesk_list_contacts --json | Parameter | Type | Required | Description |
|---|---|---|---|
from | integer | no | Starting index for pagination (default: 1). |
limit | integer | no | Maximum number of contacts to return (default: 25, max: 200). |
search | string | no | Search term to filter contacts by name, email, or phone. |
sortBy | string | no | Sort field (e.g., "firstName", "createdTime"). |
sortOrder | string | no | Sort direction: "asc" or "desc". |
zoho-desk.zohodesk_list_articles 7 parameters
kosmo integrations:schema zoho-desk.zohodesk_list_articles --json | Parameter | Type | Required | Description |
|---|---|---|---|
departmentId | string | no | Filter by department ID. |
categoryId | string | no | Filter by article category ID. |
from | integer | no | Starting index for pagination (default: 1). |
limit | integer | no | Maximum number of articles to return (default: 25, max: 200). |
search | string | no | Search term to filter articles by title or content. |
sortBy | string | no | Sort field (e.g., "title", "modifiedTime"). |
sortOrder | string | no | Sort direction: "asc" or "desc". |
zoho-desk.zohodesk_list_departments 2 parameters
kosmo integrations:schema zoho-desk.zohodesk_list_departments --json | Parameter | Type | Required | Description |
|---|---|---|---|
from | integer | no | Starting index for pagination (default: 1). |
limit | integer | no | Maximum number of departments to return (default: 25). |
zoho-desk.zohodesk_get_current_user 0 parameters
kosmo integrations:schema zoho-desk.zohodesk_get_current_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults with
integrations:configure. Add --force only for trusted automation that should bypass that policy.