Zendesk

Overview

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

Zendesk is a leading cloud-based customer service and support platform that allows organizations to manage support tickets, track customer interactions, and streamline help desk operations. The Zendesk connector allows Leena AI to automate ITSM workflows, manage tickets and users, and interact with your Zendesk instance seamlessly.

API Details

Leena AI integrates with Zendesk via REST APIs.

Documentation link: https://developer.zendesk.com/api-reference/ticketing/introduction/

Setup

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

Prerequisites

Before setting up the Zendesk connector, ensure you have:

  • Administrator access to your Zendesk Support instance
  • Access to Zendesk Admin Center (Apps and integrations section)
  • Ability to create OAuth applications in Zendesk
  • Access to your Leena AI workspace with connector management permissions

Get credentials

Here is how to create an OAuth client in Zendesk Admin Center:

  1. Log in to Zendesk Admin Center (Ensure you're signed in as an admin).
  2. Navigate to OAuth Clients:
    1. Click on Apps and integrations in the sidebar
    2. Select APIs then OAuth clients
  3. Create OAuth Client:
    1. Click Add OAuth client
    2. Fill in the required details
  4. Configure OAuth Client Details:
    1. Client Name: Enter a descriptive name for your application (e.g., Leena AI Integration)
    2. Description: Provide a brief description of the client purpose
    3. Company: Enter your company name
    4. Redirect URLs: This will be filled later from Leena AI
    5. Client Type: Select Confidential for secure server-side integrations
  5. Save and Note Credentials:
    1. Click Save to create the OAuth client
    2. Note the Client ID (Unique Identifier) displayed
    3. Note the Client Secret (displayed only once during creation - save it securely)

Add connection

Here is how to add a connection on Leena AI:

  1. Log in to your Leena AI workspace
  2. Navigate to Settings then Integrations
  3. Search for Zendesk and select it from the list to add its new connector
  4. Start configuring the connector:
    1. Client ID: OAuth application client ID (Unique Identifier from Zendesk)
    2. Client Secret: OAuth application client secret
    3. Scopes: List of permissions required to perform actions through Leena AI (Pre-filled with read, write, tickets:read, tickets:write, users:read, users:write)
    4. Grant Type: Authorization grant type for OAuth 2.0 (Pre-filled as authorization_code)
    5. ID Mapping Fields: The profile field in Leena AI which corresponds to unique identifier in Zendesk (Pre-filled with email)
    6. Redirect URI: 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 Zendesk connector setup
    2. You will be redirected to Zendesk authorization page
    3. Sign in to your Zendesk account if prompted
    4. Click Allow to grant permissions for Zendesk access
    5. You will be redirected back to Leena AI with a successful connection
    6. The connector will be saved
  6. Copy Callback URL and Update Zendesk 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 Zendesk Admin Center then Apps and integrations then APIs then OAuth clients
    4. Edit your OAuth client and add the Callback URL to Redirect URLs
    5. Save the changes

Actions

The following actions are supported for the Zendesk connector:

Create Ticket

Creates a new support ticket in Zendesk. The Agent can leverage the skill (workflow), which has been designed to create a new ticket in Zendesk, once the user raises a query to do so. Here are some common use cases:

  • IT Support: Create tickets for technical issues reported by employees
  • Customer Service: Log customer inquiries and complaints
  • Internal Requests: Submit internal service requests
  • Incident Reporting: Report and track incidents

Input Parameters

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

Mandatory

NameDescription
SubjectThe title or subject of the ticket
DescriptionThe detailed description or body of the ticket

Optional

NameDescription
PriorityThe priority level of the ticket: low (Low priority), normal (Normal priority), high (High priority), urgent (Urgent priority)
StatusThe current status of the ticket: new (Newly created), open (Being worked on), pending (Awaiting response), solved (Resolved)
TypeThe type of ticket: problem (A problem to be solved), incident (An incident that occurred), question (A question from user), task (Task to complete)
TagsList of tags to categorize the ticket
AssigneeThe agent or user assigned to handle the ticket (selected from dropdown populated with assignable users)
GroupThe group responsible for the ticket (selected from dropdown populated with available groups)

Here is a sample JSON input:

{
  "ticket": {
    "subject": "Printer not working in Building A",
    "comment": {
      "body": "The printer on the 3rd floor of Building A is showing an error message and not responding to print requests. Multiple users are affected."
    },
    "priority": "high",
    "status": "new",
    "type": "incident",
    "tags": ["printer", "hardware", "building-a"],
    "assignee_id": 12345678,
    "group_id": 98765432
  }
}

Response

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

  • Ticket ID
  • Ticket URL
  • Created timestamp
  • Assignee information
  • Status confirmation

Create Ticket with Form

Creates a new support ticket in Zendesk using a specific ticket form that includes custom fields. The Agent can leverage this action when tickets need to be created with form-specific custom fields. Here are some common use cases:

  • Specialized Requests: Create tickets with department-specific fields
  • Structured Data Collection: Gather specific information through custom fields
  • Compliance Requirements: Ensure all required fields are captured
  • Workflow Automation: Trigger specific workflows based on form type

Input Parameters

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

Mandatory

NameDescription
SubjectThe title or subject of the ticket
DescriptionThe detailed description or body of the ticket
Ticket FormThe specific ticket form to use (selected from dropdown populated with available ticket forms)

Optional

NameDescription
PriorityThe priority level of the ticket: low, normal, high, urgent
StatusThe current status of the ticket: new, open, pending, solved
TypeThe type of ticket: problem, incident, question, task
TagsList of tags to categorize the ticket
RequesterThe user who requested the ticket (selected from dropdown populated with all users)
AssigneeThe agent or user assigned to handle the ticket (selected from dropdown populated with assignable users)
GroupThe group responsible for the ticket (selected from dropdown populated with available groups)
Custom Fields (JSON)Custom fields array in JSON format. Must be a valid JSON array containing id and value pairs.
Available Custom Fields (For Reference)Dropdown showing available custom field IDs to use in the Custom Fields JSON (for reference only)

Here is a sample JSON input:

{
  "ticket": {
    "subject": "New Employee Onboarding Request",
    "comment": {
      "body": "Please set up accounts and equipment for new employee starting next Monday."
    },
    "priority": "normal",
    "status": "new",
    "type": "task",
    "tags": ["onboarding", "new-hire"],
    "requester_id": 11223344,
    "assignee_id": 12345678,
    "group_id": 98765432,
    "ticket_form_id": 360000123456,
    "custom_fields": [
      {"id": 360001234567, "value": "IT Department"},
      {"id": 360001234568, "value": "2025-01-15"},
      {"id": 360001234569, "value": "laptop_macbook"}
    ]
  }
}

Response

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

  • Ticket ID
  • Ticket URL
  • Form ID used
  • Custom field values
  • Created timestamp

Get Ticket

Retrieves the details of a specific ticket from Zendesk. The Agent can leverage this action to fetch complete ticket information including comments, status, and metadata. Here are some common use cases:

  • Ticket Lookup: Retrieve ticket details by ID
  • Status Check: Check the current status of a ticket
  • Information Retrieval: Get ticket history and comments
  • Reporting: Gather ticket data for analysis

Input Parameters

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

Mandatory

NameDescription
Select TicketThe ticket to retrieve (selected from dropdown populated with all tickets)

Here is a sample JSON input:

{
  "ticket_id": "12345"
}

Response

The action returns the complete ticket details including:

  • Ticket ID
  • Subject
  • Description
  • Status
  • Priority
  • Type
  • Assignee information
  • Requester information
  • Group information
  • Tags
  • Custom fields
  • Created and updated timestamps
  • Comments history

Get All Tickets

Retrieves a list of all tickets from Zendesk with optional filtering and sorting. The Agent can leverage this action to fetch multiple tickets based on status, with customizable sorting options. Here are some common use cases:

  • Dashboard Views: Get all open tickets for a dashboard
  • Status Reports: Retrieve tickets filtered by status
  • Queue Management: List tickets for agent assignment
  • Bulk Operations: Get tickets for batch processing

Input Parameters

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

Optional

NameDescription
StatusFilter tickets by status: Any, New, Open, Pending, Solved
Sort ByField to sort results by: Created At, Updated At, Priority, Status
Sort OrderOrder of sorting: Ascending, Descending

Here is a sample JSON input:

{
  "status": "open",
  "sort_by": "updated_at",
  "sort_order": "desc"
}

Response

The action returns a list of tickets, each containing:

  • Ticket ID
  • Subject
  • Description
  • Status
  • Priority
  • Type
  • Assignee information
  • Requester information
  • Created and updated timestamps
  • Pagination information

Update Ticket

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

  • Status Updates: Change ticket status as work progresses
  • Reassignment: Assign ticket to different agent or group
  • Priority Changes: Escalate or de-escalate ticket priority
  • Add Information: Update description or add comments
  • Tag Management: Add or modify ticket tags

Input Parameters

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

Mandatory

NameDescription
Select TicketThe ticket to update (selected from dropdown populated with all tickets)

Optional

NameDescription
SubjectThe updated title or subject of the ticket
DescriptionAdditional comment or updated description
PriorityThe updated priority level (low, normal, high, urgent)
StatusThe updated status (new, open, pending, solved)
TypeThe updated type (problem, incident, question, task)
TagsUpdated list of tags for the ticket
AssigneeThe updated agent assigned to the ticket
GroupThe updated group responsible for the ticket

Here is a sample JSON input for updating ticket status:

{
  "ticket_id": "12345",
  "ticket": {
    "status": "pending",
    "comment": {
      "body": "Waiting for additional information from the requester."
    }
  }
}

Here is a sample JSON input for complete ticket update:

{
  "ticket_id": "12345",
  "ticket": {
    "subject": "Updated: Printer Issue - Building A 3rd Floor",
    "status": "open",
    "priority": "high",
    "type": "incident",
    "tags": ["printer", "hardware", "building-a", "escalated"],
    "assignee_id": 12345678,
    "group_id": 98765432,
    "comment": {
      "body": "Technician has been dispatched. ETA 30 minutes."
    }
  }
}

Response

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

  • Updated ticket properties
  • Ticket URL
  • Modification timestamp
  • Audit trail of changes

Delete Ticket

Deletes an existing ticket from Zendesk. The Agent can leverage the skill (workflow), which has been designed to remove a ticket from Zendesk, once the user specifies the ticket to be deleted. Here are some common use cases:

  • Duplicate Removal: Delete duplicate tickets
  • Test Cleanup: Remove test tickets from the system
  • Data Management: Delete obsolete or irrelevant tickets
  • Compliance: Remove tickets as per data retention policies

Input Parameters

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

Mandatory

NameDescription
Select TicketThe ticket to delete (selected from dropdown populated with all tickets)

Here is a sample JSON input:

{
  "ticket_id": "12345"
}

Response

Upon successful deletion, the action returns:

  • Confirmation of successful deletion
  • Deletion timestamp

Create User

Creates a new user in Zendesk. The Agent can leverage the skill (workflow), which has been designed to create a new user (agent or end-user) in Zendesk. Here are some common use cases:

  • Customer Onboarding: Create new customer accounts
  • Agent Setup: Add new support agents to the system
  • User Provisioning: Automatically provision users from HR systems
  • Contact Management: Add new contacts to the support system

Input Parameters

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

Mandatory

NameDescription
NameThe full name of the user

Optional

NameDescription
EmailThe email address of the user
External IDAn external identifier for the user (from another system)
AliasAn alias or nickname for the user
PhoneThe phone number of the user
VerifiedWhether the user identity has been verified (checkbox)
RoleThe user role (e.g., admin, agent, end-user)
DetailsAdditional details about the user
NotesInternal notes about the user

Here is a sample JSON input:

{
  "user": {
    "name": "John Smith",
    "email": "[email protected]",
    "external_id": "EMP-12345",
    "alias": "Johnny",
    "phone": "+1-555-123-4567",
    "verified": true,
    "role": "end-user",
    "details": "VIP Customer - Enterprise Account",
    "notes": "Preferred contact method: Email"
  }
}

Response

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

  • User ID
  • User URL
  • Name and email
  • Role assignment
  • Created timestamp

Get User

Retrieves the details of a specific user from Zendesk. The Agent can leverage this action to fetch complete user profile information. Here are some common use cases:

  • User Lookup: Retrieve user details by ID
  • Profile Verification: Verify user information
  • Contact Information: Get user contact details
  • Role Check: Verify user permissions and role

Input Parameters

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

Mandatory

NameDescription
Select UserThe user to retrieve (selected from dropdown populated with all users)

Here is a sample JSON input:

{
  "user_id": "12345678"
}

Response

The action returns the complete user details including:

  • User ID
  • Name
  • Email
  • External ID
  • Phone
  • Role
  • Organization membership
  • Tags
  • Custom fields
  • Created and updated timestamps

Get All Users

Retrieves a list of all users from Zendesk with optional filtering and pagination. The Agent can leverage this action to fetch multiple users based on role, with customizable pagination options. Here are some common use cases:

  • User Directory: Get all users for a directory listing
  • Role-Based Lists: Retrieve users filtered by role (agents, admins, end-users)
  • User Management: List users for administrative purposes
  • Reporting: Get user data for reports and analytics

Input Parameters

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

Optional

NameDescription
RoleFilter users by role (e.g., admin, agent, end-user)
Role TypeFilter users by role type
Permission SetFilter users by permission set
PagePage number for pagination
Per PageNumber of results per page (default: 100, max: 100)

Here is a sample JSON input:

{
  "role": "agent",
  "page": "1",
  "per_page": "50"
}

Response

The action returns a list of users, each containing:

  • User ID
  • Name
  • Email
  • Role
  • Organization membership
  • Created and updated timestamps
  • Pagination information (next page, previous page)

Update User

Updates an existing user in Zendesk. The Agent can leverage the skill (workflow), which has been designed to modify an existing user information in Zendesk. Here are some common use cases:

  • Profile Updates: Update user contact information
  • Role Changes: Modify user roles and permissions
  • Organization Assignment: Assign user to different organization
  • Status Changes: Suspend or activate user accounts

Input Parameters

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

Mandatory

NameDescription
Select UserThe user to update (selected from dropdown populated with all users)

Optional

NameDescription
NameThe updated full name of the user
EmailThe updated email address of the user
External IDThe updated external identifier for the user
AliasThe updated alias or nickname for the user
PhoneThe updated phone number of the user
VerifiedWhether the user identity has been verified (checkbox)
RoleThe updated user role (e.g., admin, agent, end-user)
DetailsUpdated additional details about the user
NotesUpdated internal notes about the user

Here is a sample JSON input for updating contact information:

{
  "user_id": "12345678",
  "user": {
    "email": "[email protected]",
    "phone": "+1-555-987-6543"
  }
}

Here is a sample JSON input for complete user update:

{
  "user_id": "12345678",
  "user": {
    "name": "John A. Smith",
    "email": "[email protected]",
    "alias": "John",
    "phone": "+1-555-987-6543",
    "verified": true,
    "role": "agent",
    "details": "Senior Support Agent - Enterprise Team",
    "notes": "Handles VIP customer accounts"
  }
}

Response

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

  • Updated user properties
  • User URL
  • Modification timestamp

Delete User

Deletes an existing user from Zendesk. The Agent can leverage the skill (workflow), which has been designed to remove a user from Zendesk. Here are some common use cases:

  • Offboarding: Remove departed employees from the system
  • Account Cleanup: Delete inactive or duplicate accounts
  • Data Management: Remove user accounts as per retention policies
  • Privacy Compliance: Delete user data upon request

Input Parameters

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

Mandatory

NameDescription
Select UserThe user to delete (selected from dropdown populated with all users)

Here is a sample JSON input:

{
  "user_id": "12345678"
}

Response

Upon successful deletion, the action returns:

  • Confirmation of successful deletion
  • Deletion timestamp