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:
- Log in to Zendesk Admin Center (Ensure you're signed in as an admin).
- Navigate to OAuth Clients:
- Click on Apps and integrations in the sidebar
- Select APIs then OAuth clients
- Create OAuth Client:
- Click Add OAuth client
- Fill in the required details
- Configure OAuth Client Details:
- Client Name: Enter a descriptive name for your application (e.g., Leena AI Integration)
- Description: Provide a brief description of the client purpose
- Company: Enter your company name
- Redirect URLs: This will be filled later from Leena AI
- Client Type: Select Confidential for secure server-side integrations
- Save and Note Credentials:
- Click Save to create the OAuth client
- Note the Client ID (Unique Identifier) displayed
- Note the Client Secret (displayed only once during creation - save it securely)
Add connection
Here is how to add a connection on Leena AI:
- Log in to your Leena AI workspace
- Navigate to Settings then Integrations
- Search for Zendesk and select it from the list to add its new connector
- Start configuring the connector:
- Client ID: OAuth application client ID (Unique Identifier from Zendesk)
- Client Secret: OAuth application client secret
- Scopes: List of permissions required to perform actions through Leena AI (Pre-filled with read, write, tickets:read, tickets:write, users:read, users:write)
- Grant Type: Authorization grant type for OAuth 2.0 (Pre-filled as authorization_code)
- ID Mapping Fields: The profile field in Leena AI which corresponds to unique identifier in Zendesk (Pre-filled with email)
- Redirect URI: The callback URL for OAuth flow (Auto-generated by Leena AI)
- Complete OAuth Flow and Save Configurations:
- Click Connect in Leena AI for Zendesk connector setup
- You will be redirected to Zendesk authorization page
- Sign in to your Zendesk account if prompted
- Click Allow to grant permissions for Zendesk access
- You will be redirected back to Leena AI with a successful connection
- The connector will be saved
- Copy Callback URL and Update Zendesk 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 Zendesk Admin Center then Apps and integrations then APIs then OAuth clients
- Edit your OAuth client and add the Callback URL to Redirect URLs
- 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
| Name | Description |
|---|---|
| Subject | The title or subject of the ticket |
| Description | The detailed description or body of the ticket |
Optional
| Name | Description |
|---|---|
| Priority | The priority level of the ticket: low (Low priority), normal (Normal priority), high (High priority), urgent (Urgent priority) |
| Status | The current status of the ticket: new (Newly created), open (Being worked on), pending (Awaiting response), solved (Resolved) |
| Type | The type of ticket: problem (A problem to be solved), incident (An incident that occurred), question (A question from user), task (Task to complete) |
| Tags | List of tags to categorize the ticket |
| Assignee | The agent or user assigned to handle the ticket (selected from dropdown populated with assignable users) |
| Group | The 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
| Name | Description |
|---|---|
| Subject | The title or subject of the ticket |
| Description | The detailed description or body of the ticket |
| Ticket Form | The specific ticket form to use (selected from dropdown populated with available ticket forms) |
Optional
| Name | Description |
|---|---|
| Priority | The priority level of the ticket: low, normal, high, urgent |
| Status | The current status of the ticket: new, open, pending, solved |
| Type | The type of ticket: problem, incident, question, task |
| Tags | List of tags to categorize the ticket |
| Requester | The user who requested the ticket (selected from dropdown populated with all users) |
| Assignee | The agent or user assigned to handle the ticket (selected from dropdown populated with assignable users) |
| Group | The 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
| Name | Description |
|---|---|
| Select Ticket | The 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
| Name | Description |
|---|---|
| Status | Filter tickets by status: Any, New, Open, Pending, Solved |
| Sort By | Field to sort results by: Created At, Updated At, Priority, Status |
| Sort Order | Order 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
| Name | Description |
|---|---|
| Select Ticket | The ticket to update (selected from dropdown populated with all tickets) |
Optional
| Name | Description |
|---|---|
| Subject | The updated title or subject of the ticket |
| Description | Additional comment or updated description |
| Priority | The updated priority level (low, normal, high, urgent) |
| Status | The updated status (new, open, pending, solved) |
| Type | The updated type (problem, incident, question, task) |
| Tags | Updated list of tags for the ticket |
| Assignee | The updated agent assigned to the ticket |
| Group | The 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
| Name | Description |
|---|---|
| Select Ticket | The 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
| Name | Description |
|---|---|
| Name | The full name of the user |
Optional
| Name | Description |
|---|---|
| The email address of the user | |
| External ID | An external identifier for the user (from another system) |
| Alias | An alias or nickname for the user |
| Phone | The phone number of the user |
| Verified | Whether the user identity has been verified (checkbox) |
| Role | The user role (e.g., admin, agent, end-user) |
| Details | Additional details about the user |
| Notes | Internal 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
| Name | Description |
|---|---|
| Select User | The 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
- 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
| Name | Description |
|---|---|
| Role | Filter users by role (e.g., admin, agent, end-user) |
| Role Type | Filter users by role type |
| Permission Set | Filter users by permission set |
| Page | Page number for pagination |
| Per Page | Number 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
- 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
| Name | Description |
|---|---|
| Select User | The user to update (selected from dropdown populated with all users) |
Optional
| Name | Description |
|---|---|
| Name | The updated full name of the user |
| The updated email address of the user | |
| External ID | The updated external identifier for the user |
| Alias | The updated alias or nickname for the user |
| Phone | The updated phone number of the user |
| Verified | Whether the user identity has been verified (checkbox) |
| Role | The updated user role (e.g., admin, agent, end-user) |
| Details | Updated additional details about the user |
| Notes | Updated 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
| Name | Description |
|---|---|
| Select User | The 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
Updated 1 day ago
