Zoho

Overview

The Zoho Desk connector enables your AI Colleagues to integrate with your organization's Zoho Desk platform, facilitating automated ticket management, agent administration, and customer support workflows.

Zoho Desk is a cloud-based help desk software that enables businesses to manage customer support operations efficiently. It provides tools for ticket management, multi-channel support, automation, and reporting. The Zoho Desk connector allows Leena AI to automate support workflows, manage tickets, agents, and attachments seamlessly.

API Details

Leena AI integrates with Zoho Desk via REST APIs.

Documentation link: https://desk.zoho.com/DeskAPIDocument

Setup

The Zoho Desk connector uses OAuth 2.0 authentication with the authorization code grant type.


Prerequisites

Before setting up the Zoho Desk connector, ensure you have:

  • Administrator access to your Zoho API Console
  • Access to Zoho Developer Console (https://api-console.zoho.com)
  • Ability to create OAuth applications in Zoho
  • Access to your Leena AI workspace with connector management permissions
  • A Zoho Desk organization with appropriate permissions

Get credentials

Here is how to create an OAuth client in Zoho API Console:

  1. Log in to Zoho API Console (https://api-console.zoho.com) (Ensure you're signed in as an admin).
  2. Click GET STARTED or ADD CLIENT if you've previously added an application.
  3. Select Client Type:
    1. Hover over "Server-based Applications"
    2. Click CREATE NOW
  4. Configure OAuth Client Details:
    1. Client Name: Enter a descriptive name for your application
    2. Homepage URL: Enter the full URL to your application's home page
    3. Authorized Redirect URIs: This will be filled later from Leena AI (must begin with https:// or http://)
  5. Click CREATE to generate credentials.
  6. Save and Note Credentials:
    1. Copy the Client ID displayed
    2. Copy the Client Secret displayed
    3. These credentials are required for Leena AI configuration

Add connection

Here is how to add a connection on Leena AI:

  1. Log in to your Leena AI workspace
  2. Navigate to Settings > Integrations
  3. Search for "Zoho Desk" and select it from the list to add its new connector
  4. Start configuring the connector
    1. Client ID: OAuth application client ID from Zoho API Console
    2. Client Secret: OAuth application client secret from Zoho API Console
    3. Scope: List of permissions required to perform actions through Leena AI (Pre-filled with 'Desk.tickets.ALL,Desk.settings.READ,Desk.basic.READ,Desk.contacts.READ,Desk.settings.CREATE,Desk.basic.CREATE,Desk.settings.UPDATE,Desk.basic.UPDATE')
    4. Redirect URL: The callback URL for OAuth flow (Auto-generated by Leena AI)
  5. Complete OAuth Flow and Save Configurations
    1. Click Connect in Leena AI for Zoho Desk connector setup
    2. You'll be redirected to Zoho authorization page
    3. Sign in to your Zoho account if prompted
    4. Select the Zoho Desk organization you want to connect
    5. Click Allow to grant permissions for Zoho Desk access
    6. You'll be redirected back to Leena AI with a successful connection
    7. The connector will be saved
  6. Copy Callback URL and Update Zoho API Console OAuth Client
    1. Once the connector is saved in Leena AI, you can reopen the connector to view the Callback URL
    2. Copy the Callback URL from Leena AI
    3. Go back to Zoho API Console
    4. Edit your OAuth client and add the Callback URL to Authorized Redirect URIs
    5. Save the changes

Actions

The following actions are supported for the Zoho Desk connector:

Tickets: Create Ticket

Creates a new support ticket in Zoho Desk. The Agent can leverage the skill (workflow), which has been designed to create a new support ticket in Zoho Desk, once the user raises a query to do so.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk where the ticket will be created
SubjectThe title/subject of the ticket
DepartmentID of the department to which the ticket belongs
ContactThe contact associated with the ticket (existing or new)

Optional

Name

Description

Contact's Email

Email address for creating a new contact

Product

Product associated with the ticket

Uploads

File attachments in the ticket

Email

Email ID in the ticket

Phone

Phone number in the ticket

Description

Description in the ticket

Status

Status of the ticket. Includes the custom statuses configured in your help desk portal

Assignee ID

ID of agent to whom the ticket is assigned

Category

Category of the ticket

Sub Category

Sub Category of the ticket

Resolution

Resolution notes recorded in the ticket

Due Date

Due date for resolving the ticket

Priority

Priority of the ticket

Language

Language preference to set for the ticket

Channel

Channel through which the ticket originated

Classification

Type of ticket, options:

  • Problem: Issue that needs resolution
  • Request: Service request
  • Question: General inquiry
  • Others: Other ticket types

Web URL

URL to access the resource

Team

ID of the team assigned to resolve the ticket

Secondary Contacts

Secondary contacts, such as CC'ed users, associated with the ticket

Entity Skills

Comma-separated array of skill IDs to be mapped with a ticket. The order of IDs (with the first ID given the highest priority) will determine how assignments are calculated

Here is a sample JSON input:

{
  "orgId": "2389290",
  "payload": {
    "subject": "Unable to access account",
    "departmentId": "1892000000006907",
    "contactId": "1892000000042032",
    "description": "Customer is unable to login to their account after password reset",
    "status": "Open",
    "priority": "High",
    "classification": "Problem",
    "channel": "Email"
  }
}

Response

Upon successful creation, the action returns the created ticket details including:

  • Ticket ID
  • Ticket Number
  • Ticket URL
  • Created timestamp
  • Assigned agent details (if assigned)

Tickets: List All Tickets

Retrieves a list of tickets from Zoho Desk. This action can be leveraged by Leena AI Orchestrator/Agent to list down all the tickets in a specific organization or tickets within specific filters. Here are some common use cases:

  • Daily Queue: Get all open tickets for today
  • Team Workload: Find tickets by department or assignee
  • Priority Review: List high-priority tickets
  • Status Check: Get tickets filtered by status

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk to retrieve tickets from

Optional

Name

Description

From

Index number, starting from which the tickets must be fetched

Limit

Maximum number of tickets to return

Department

Filter by department ID

Teams

Filter by team IDs or select 'Unassigned' for unassigned tickets

Assignee

Filter by assignee IDs. Multiple assigneeIds can be passed as comma-separated values. Select 'Unassigned' for unassigned tickets

Channel

Filter by channel through which the tickets originated. You can include multiple values by separating them with a comma

Status

Filter by resolution status of the ticket. You can include multiple values by separating them with a comma

Sort By

The order of the tickets returned in the result, options:

  • responseDueDate: Order by response due date
  • customerResponseTime: Order by customer response time
  • createdTime: Order by created time

Sort Order

Sort order for results:

  • Ascending: Sort in ascending order
  • Descending: Sort in descending order

Received In Days

Fetches recent tickets, based on customer response time. Options: 15, 30, 90

Include

Secondary information to include:

  • contacts: Include contact information
  • products: Include product information
  • assignee: Include assignee information
  • departments: Include department information
  • isRead: Include read status
  • team: Include team information

Fields

Key that returns the values of mentioned fields (both pre-defined and custom) in your portal. Maximum of 30 fields is supported as comma separated values

Priority

Key that filters tickets by priority. Multiple priority levels can be passed as comma-separated values

Here is a sample JSON input:

{
  "orgId": "2389290",
  "params": {
    "from": 0,
    "limit": 50,
    "status": "Open",
    "sortBy": "createdTime",
    "include": ["contacts", "assignee"]
  },
  "sortOrder": "-"
}

Response

The action returns a list of tickets, each containing:

  • Ticket ID
  • Ticket Number
  • Subject
  • Description
  • Status
  • Priority
  • Created Time
  • Contact Information
  • Assignee Information
  • Department Details

Tickets: Get Ticket

Retrieves details of a specific ticket from Zoho Desk. The Agent can leverage this action to fetch complete information about a particular ticket using its ID.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk containing the ticket
TicketThe ticket to retrieve (selected by subject)

Optional

NameDescription
IncludeSecondary information to include: contacts, products, assignee, departments, contract, isRead, team, skills

Here is a sample JSON input:

{
  "orgId": "2389290",
  "ticketId": "1892000000042032",
  "params": {
    "include": ["contacts", "products", "assignee", "departments"]
  }
}

Response

The action returns detailed ticket information including:

  • Ticket ID and Number
  • Subject and Description
  • Status and Priority
  • Contact and Assignee Details
  • Department and Product Information
  • Created and Modified Timestamps
  • Resolution Details

Tickets: Update Ticket

Updates an existing ticket in Zoho Desk. The Agent can leverage the skill (workflow), which has been designed to modify an existing ticket in Zoho Desk, once the user provides the ticket details to be updated. Here are some common use cases:

  • Status Update: Change ticket status to reflect progress
  • Reassignment: Assign ticket to a different agent or team
  • Priority Change: Update ticket priority based on urgency
  • Add Resolution: Record resolution notes for the ticket
  • Update Details: Modify subject, description, or category

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk containing the ticket
TicketThe ticket to be updated (selected by subject)

Optional

NameDescription
Disable Closure NotificationKey that enables or disables sending notifications to the corresponding contact when a ticket is closed
SubjectSubject of the ticket
DepartmentID of the department to which the ticket belongs
ContactThe contact associated with the ticket (existing or new)
Contact's EmailEmail address for creating a new contact
ProductProduct associated with the ticket
UploadsFile attachments in the ticket
EmailEmail ID in the ticket
PhonePhone number in the ticket
DescriptionDescription in the ticket
StatusStatus of the ticket
Assignee IDID of agent to whom the ticket is assigned
CategoryCategory of the ticket
Sub CategorySub Category of the ticket
ResolutionResolution notes recorded in the ticket
Due DateDue date for resolving the ticket
PriorityPriority of the ticket
LanguageLanguage preference to set for the ticket
ChannelChannel through which the ticket originated
ClassificationType of ticket (Problem, Request, Question, Others)
Web URLURL to access the resource
TeamID of the team assigned to resolve the ticket
Secondary ContactsSecondary contacts associated with the ticket
Entity SkillsSkill IDs to be mapped with the ticket

Here is a sample JSON input:

//Update Ticket Status

{
  "orgId": "2389290",
  "ticketId": "1892000000042032",
  "payload": {
    "status": "In Progress"
  },
  "params": {
    "disableClosureNotification": false
  }
}

//Update Ticket Assignment

{
  "orgId": "2389290",
  "ticketId": "1892000000042032",
  "payload": {
    "assigneeId": "1892000000006907",
    "priority": "High"
  }
}

//Add Resolution

{
  "orgId": "2389290",
  "ticketId": "1892000000042032",
  "payload": {
    "status": "Closed",
    "resolution": "Issue resolved by resetting the user's password and clearing browser cache"
  },
  "params": {
    "disableClosureNotification": false
  }
}

Response

Upon successful update, the action returns the updated ticket details including:

  • Updated ticket properties
  • Ticket URL
  • Modification timestamp
  • Notification status

Tickets: Move Tickets to Trash

Moves one or more tickets to trash in Zoho Desk. The Agent can leverage this action to remove tickets that are no longer needed. Here are some common use cases:

  • Cleanup Spam: Remove spam or duplicate tickets
  • Archive Old Tickets: Move resolved old tickets to trash
  • Bulk Cleanup: Remove multiple tickets at once

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk containing the tickets
TicketsThe tickets to be moved to trash (multiple selection)

Here is a sample JSON input:

{
  "orgId": "2389290",
  "payload": {
    "ticketIds": ["1892000000042032", "1892000000042033", "1892000000042034"]
  }
}

Response

Upon successful deletion, the action returns:

  • Confirmation of successful move to trash
  • List of ticket IDs moved
  • Operation timestamp

Tickets: Create Ticket's Attachment

Creates an attachment for a specific ticket in Zoho Desk. The Agent can leverage this action to attach files to tickets for additional context or documentation.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk containing the ticket
TicketThe ticket to attach the file to
File NameName of the file to be attached
File DataFile data as URL or Base64 encoded string

Optional

NameDescription
Is Public?Field that determines whether the attachment is public or private

Here is a sample JSON input:

//Attach File from URL

{
  "orgId": "2389290",
  "ticketId": "1892000000042032",
  "fileName": "error_screenshot.png",
  "fileData": "https://example.com/files/error_screenshot.png",
  "params": {
    "isPublic": true
  }
}

//Attach Base64 Encoded File

{
  "orgId": "2389290",
  "ticketId": "1892000000042032",
  "fileName": "document.pdf",
  "fileData": "JVBERi0xLjQKJeLjz9MKMyAwIG9...",
  "params": {
    "isPublic": false
  }
}

Response

Upon successful attachment, the action returns:

  • Attachment ID
  • File name
  • File size
  • Upload timestamp
  • Public/Private status

Tickets: List Ticket's Attachments

Retrieves all attachments associated with a specific ticket in Zoho Desk. This action helps users view and access all files attached to a ticket.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk containing the ticket
TicketThe ticket to list attachments from

Optional

Name

Description

Sort By

Sort attachments by:

  • createdTime: Order by creation time

Sort Order

Sort order for results:

  • Ascending: Sort in ascending order
  • Descending: Sort in descending order

From

Index number, starting from which the attachments must be fetched

Limit

Maximum number of attachments to return

Is Public?

Key that returns if the attachment is public or not

Include

Secondary information to include:

  • creator: Include creator information

Here is a sample JSON input:

{
  "orgId": "2389290",
  "ticketId": "1892000000042032",
  "params": {
    "sortBy": "createdTime",
    "from": 0,
    "limit": 20,
    "include": ["creator"]
  },
  "sortOrder": "-"
}

Response

The action returns a list of attachments, each containing:

  • Attachment ID
  • File name
  • File size
  • Created timestamp
  • Creator information (if requested)
  • Public/Private status

Agents: Add an Agent

Adds a new support agent to your Zoho Desk organization. The Agent can leverage this action to onboard new support team members with appropriate roles and department assignments.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk to add the agent to
Email IDEmail ID of the agent
Last NameLast name of the agent
DepartmentsDepartments with which the agent is associated
Role Permission TypeThe role permission type of the agent

Optional

Name

Description

First Name

First name of the agent

Phone

Phone number of the agent

Mobile

Mobile number of the agent

Extension Number

Extension number of the agent

Associated Chat Departments

Chat departments with which the agent is associated

Role Permission Type

The Role Permission type of Agent, options:

  • Admin: Full administrative access
  • AgentPublic: Public agent access
  • AgentPersonal: Personal agent access
  • Light: Limited access
  • AgentTeamPersonal: Team personal access
  • Custom: Custom role with specific permissions

Role

Role for the agent (required when Role Permission Type is Custom)

Profile

Profile for the agent (required when Role Permission Type is Custom)

About Info

Agent's about info

Channel Expert

The channels handled for the Agent

Country Code

Country code of the agent

Time Zone

The timeZone of the agent (e.g., Asia/Calcutta, Europe/Moscow)

Language Code

Language code of the agent

Here is a sample JSON input:

{
  "orgId": "2389290",
  "payload": {
    "emailId": "[email protected]",
    "firstName": "John",
    "lastName": "Smith",
    "phone": "+1-555-123-4567",
    "mobile": "+1-555-987-6543",
    "associatedDepartmentIds": ["1892000000006907", "1892000000006908"],
    "rolePermissionType": "AgentPublic",
    "timeZone": "America/New_York",
    "langCode": "en",
    "aboutInfo": "Senior Support Agent with 5 years of experience"
  }
}

Response

Upon successful creation, the action returns the created agent details including:

  • Agent ID
  • Email ID
  • Name
  • Department assignments
  • Role and permissions
  • Status

Agents: List All Agents

Retrieves a list of agents from Zoho Desk. This action can be leveraged by Leena AI Orchestrator/Agent to list down all agents in an organization with various filter options. Here are some common use cases:

  • Team Overview: Get all active agents in the organization
  • Department View: List agents by specific departments
  • Role Management: Filter agents by roles or profiles
  • Status Check: Get agents filtered by activation status

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk to retrieve agents from

Optional

Name

Description

From

Index number, starting from which the agents must be fetched

Limit

Maximum number of agents to return

Status

Key that filters agents based on their activation status:

  • ACTIVE: Active agents
  • DISABLED: Disabled agents
  • DELETED: Deleted agents
  • IMPORTED: Imported agents

Departments

Comma-separated array of department IDs. Maximum number of IDs allowed is 50

Profiles

Comma-separated array of profile IDs. Maximum number of IDs allowed is 50

Roles

Comma-separated array of role IDs. Maximum number of IDs allowed is 50

Role Permission Type

Types of roles and permissions of the agents to list

Is Confirmed?

Key that denotes if the agents must be confirmed or unconfirmed

Is Light Agent?

Key that denotes if the agents must be light or non light

Include

Secondary information related to agents:

  • profile: Include profile information
  • role: Include role information

Search String

String to search for agents by first name, last name, or email ID

Field Name

Name of the field that must be used for searching and listing agents:

  • firstName: Search by first name
  • lastName: Search by last name
  • name: Search by full name
  • emailId: Search by email ID

Sort Order

To sort the available list of agents in either ascending or descending order

Here is a sample JSON input:

{
  "orgId": "2389290",
  "params": {
    "from": 0,
    "limit": 50,
    "status": "ACTIVE",
    "departmentIds": ["1892000000006907"],
    "include": ["profile", "role"],
    "sortOrder": "asc"
  }
}

Response

The action returns a list of agents, each containing:

  • Agent ID
  • Email ID
  • First and Last Name
  • Phone and Mobile
  • Department assignments
  • Role and Profile details
  • Status

Agents: Deactivate an Agent

Deactivates an existing agent in Zoho Desk. The Agent can leverage this action to offboard support team members when they leave the organization or change roles. Here are some common use cases:

  • Employee Offboarding: Deactivate agents who have left the company
  • Role Change: Deactivate agents who have moved to different roles
  • Security Compliance: Remove access for inactive team members

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
OrganizationThe organization in Zoho Desk containing the agent
AgentThe agent to be deactivated (selected by email)

Here is a sample JSON input:

{
  "orgId": "2389290",
  "agentId": "1892000000006907"
}

Response

Upon successful deactivation, the action returns:

  • Confirmation of successful deactivation
  • Agent ID
  • Deactivation timestamp
  • Updated status