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:
- Log in to Zoho API Console (https://api-console.zoho.com) (Ensure you're signed in as an admin).
- Click GET STARTED or ADD CLIENT if you've previously added an application.
- Select Client Type:
- Hover over "Server-based Applications"
- Click CREATE NOW
- Configure OAuth Client Details:
- Client Name: Enter a descriptive name for your application
- Homepage URL: Enter the full URL to your application's home page
- Authorized Redirect URIs: This will be filled later from Leena AI (must begin with https:// or http://)
- Click CREATE to generate credentials.
- Save and Note Credentials:
- Copy the Client ID displayed
- Copy the Client Secret displayed
- These credentials are required for Leena AI configuration
Add connection
Here is how to add a connection on Leena AI:
- Log in to your Leena AI workspace
- Navigate to Settings > Integrations
- Search for "Zoho Desk" and select it from the list to add its new connector
- Start configuring the connector
- Client ID: OAuth application client ID from Zoho API Console
- Client Secret: OAuth application client secret from Zoho API Console
- 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')
- Redirect URL: The callback URL for OAuth flow (Auto-generated by Leena AI)
- Complete OAuth Flow and Save Configurations
- Click Connect in Leena AI for Zoho Desk connector setup
- You'll be redirected to Zoho authorization page
- Sign in to your Zoho account if prompted
- Select the Zoho Desk organization you want to connect
- Click Allow to grant permissions for Zoho Desk access
- You'll be redirected back to Leena AI with a successful connection
- The connector will be saved
- Copy Callback URL and Update Zoho API Console OAuth Client
- Once the connector is saved in Leena AI, you can reopen the connector to view the Callback URL
- Copy the Callback URL from Leena AI
- Go back to Zoho API Console
- Edit your OAuth client and add the Callback URL to Authorized Redirect URIs
- 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
| Name | Description |
|---|---|
| Organization | The organization in Zoho Desk where the ticket will be created |
| Subject | The title/subject of the ticket |
| Department | ID of the department to which the ticket belongs |
| Contact | The 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 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:
|
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
| Name | Description |
|---|---|
| Organization | The 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:
|
Sort Order | Sort order for results:
|
Received In Days | Fetches recent tickets, based on customer response time. Options: 15, 30, 90 |
Include | Secondary information to include:
|
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
| Name | Description |
|---|---|
| Organization | The organization in Zoho Desk containing the ticket |
| Ticket | The ticket to retrieve (selected by subject) |
Optional
| Name | Description |
|---|---|
| Include | Secondary 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
| Name | Description |
|---|---|
| Organization | The organization in Zoho Desk containing the ticket |
| Ticket | The ticket to be updated (selected by subject) |
Optional
| Name | Description |
|---|---|
| Disable Closure Notification | Key that enables or disables sending notifications to the corresponding contact when a ticket is closed |
| Subject | Subject of the ticket |
| Department | ID of the department to which the ticket belongs |
| Contact | The contact associated with the ticket (existing or new) |
| Contact's Email | Email address for creating a new contact |
| Product | Product associated with the ticket |
| Uploads | File attachments in the ticket |
| Email ID in the ticket | |
| Phone | Phone number in the ticket |
| Description | Description in the ticket |
| Status | Status of the ticket |
| 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 (Problem, Request, Question, Others) |
| Web URL | URL to access the resource |
| Team | ID of the team assigned to resolve the ticket |
| Secondary Contacts | Secondary contacts associated with the ticket |
| Entity Skills | Skill 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
| Name | Description |
|---|---|
| Organization | The organization in Zoho Desk containing the tickets |
| Tickets | The 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
| Name | Description |
|---|---|
| Organization | The organization in Zoho Desk containing the ticket |
| Ticket | The ticket to attach the file to |
| File Name | Name of the file to be attached |
| File Data | File data as URL or Base64 encoded string |
Optional
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| Organization | The organization in Zoho Desk containing the ticket |
| Ticket | The ticket to list attachments from |
Optional
Name | Description |
|---|---|
Sort By | Sort attachments by:
|
Sort Order | Sort order for results:
|
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:
|
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
| Name | Description |
|---|---|
| Organization | The organization in Zoho Desk to add the agent to |
| Email ID | Email ID of the agent |
| Last Name | Last name of the agent |
| Departments | Departments with which the agent is associated |
| Role Permission Type | The 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:
|
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
| Name | Description |
|---|---|
| Organization | The 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:
|
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:
|
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:
|
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
| Name | Description |
|---|---|
| Organization | The organization in Zoho Desk containing the agent |
| Agent | The 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
Updated 1 day ago
