npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@enthu/n8n-nodes-zoho-desk

v0.3.11

Published

n8n community node for Zoho Desk API integration

Downloads

136

Readme

n8n-nodes-zoho-desk

Production-ready n8n community node for integrating with Zoho Desk API. Create and manage support tickets with comprehensive field support, dynamic resource loading, and automatic contact creation.

Features

  • Dynamic Department & Team Selection: Dropdown lists automatically fetched from your Zoho Desk account
  • Automatic Contact Creation: Provide email/name and contacts are auto-created or matched
  • Comprehensive Field Support: All ticket fields including custom fields, priority, due dates, and more
  • OAuth2 Authentication: Secure authentication with support for all Zoho data centers
  • Type-Safe & Validated: Full TypeScript implementation with input validation
  • Production-Ready: Comprehensive error handling and user-friendly messages

Installation

Community Node (Recommended)

  1. Go to Settings > Community Nodes in n8n
  2. Search for @enthu/n8n-nodes-zoho-desk
  3. Click Install

Manual Installation

npm install @enthu/n8n-nodes-zoho-desk

Setup

1. Create Zoho Desk OAuth2 Client

  1. Go to Zoho API Console
  2. Click on "Add Client"
  3. Choose "Server-based Applications"
  4. Enter the following details:
    • Client Name: n8n Integration
    • Homepage URL: Your n8n instance URL
    • Authorized Redirect URIs: https://your-n8n-instance.com/rest/oauth2-credential/callback
  5. Click "Create"
  6. Note down your Client ID and Client Secret

2. Get Organization ID

  1. Login to your Zoho Desk account
  2. Go to Setup > Developer Space > API
  3. Copy your Organization ID

3. Configure Credentials in n8n

  1. In n8n, go to Credentials > New
  2. Select Zoho Desk OAuth2 API
  3. Enter:
    • Client ID: From step 1
    • Client Secret: From step 1
    • Organization ID: From step 2
    • Data Center: Select your Zoho data center
  4. Click Connect and authorize the application

Operations

Create Ticket

Creates a new support ticket with automatic contact creation/matching.

Required Fields:

  • Department: Select from dropdown (auto-populated)
  • Subject: Ticket subject line

Contact (optional but recommended):

  • Email OR Last Name (at least one required if providing contact)
  • First Name, Phone, Mobile (optional)
  • If email exists, existing contact is used; otherwise new contact is created

Optional Fields:

  • Description: Detailed ticket description
  • Due Date: Resolution deadline
  • Priority: Low, Medium, or High
  • Team: Select from department's teams (dropdown)
  • Secondary Contacts: Comma-separated contact IDs (e.g., 123456, 789012)
  • Custom Fields: JSON object (e.g., {"cf_modelname": "F3 2017", "cf_phone": "123456"})
  • Account ID, Assignee ID, Category, Channel, Classification, Email, Language, Phone, Product ID, Resolution, Status, Sub Category, Tags

Update Ticket

Updates an existing support ticket.

Required Fields:

  • Ticket ID: Numeric ticket ID to update

Update Fields (all optional): All fields from create operation can be updated

Usage Examples

Create Ticket with Contact Auto-Creation

{
  "departmentId": "1892000000006907",
  "subject": "Order processing delay",
  "contact": {
    "email": "[email protected]",
    "lastName": "Carol",
    "firstName": "Lucas",
    "phone": "1 888 900 9646"
  },
  "description": "Customer experiencing delays in order processing",
  "dueDate": "2025-12-01T10:00:00.000Z",
  "priority": "High",
  "secondaryContacts": "1892000000042038, 1892000000042042",
  "teamId": "8920000000069071",
  "cf": {
    "cf_modelname": "F3 2017",
    "cf_severitypercentage": "85.0"
  }
}

Update Ticket Status

{
  "ticketId": "1892000000042034",
  "priority": "High",
  "status": "In Progress",
  "description": "Updated with resolution details",
  "assigneeId": "456789123"
}

Field Details

Contact Object

The contact object allows automatic contact creation or matching:

  • If email exists in Zoho Desk → Uses existing contact
  • If email doesn't exist → Creates new contact with provided details
  • Validation: Either email OR lastName must be provided

Custom Fields (cf)

Pass custom fields as a JSON object:

{
  "cf": {
    "cf_fieldname": "value",
    "cf_priority_level": "urgent",
    "cf_product_version": "2.0.1"
  }
}

Secondary Contacts

Provide multiple contact IDs as comma-separated values:

"secondaryContacts": "1892000000042038, 1892000000042042, 1892000000042056"

Empty values are automatically filtered.

Tags

Comma-separated list of tags:

"tags": "urgent, customer-service, billing, escalated"

Validation & Error Handling

The node includes comprehensive validation:

  • Contact Validation: Ensures either email or lastName is provided
  • Ticket ID Validation: Validates ticket IDs are numeric
  • JSON Validation: Safe parsing of custom fields with detailed error messages
  • Empty String Filtering: Automatically filters empty values from arrays
  • Clear Error Messages: User-friendly error messages with actionable guidance

API Rate Limits

Zoho Desk API has the following rate limits:

  • 10 requests per second per organization
  • 5000 API calls per day

Rate Limit Handling: When rate limits are exceeded (HTTP 429), the node provides clear error messages with actionable guidance:

  • Suggests reducing the number of items being processed in a single workflow execution
  • Recommends adding delays between workflow runs
  • Works with "Continue On Fail" setting for graceful degradation

Note: The node detects rate limiting but does not automatically retry requests. You should implement retry logic in your workflow if needed.

Supported Zoho Data Centers

  • zoho.com (US)
  • zoho.eu (EU)
  • zoho.in (India)
  • zoho.com.cn (China)
  • zoho.com.au (Australia)
  • zoho.jp (Japan)

Technical Details

TypeScript Type Safety

The node is fully type-safe with TypeScript interfaces:

  • ZohoDeskDepartment - Department structure
  • ZohoDeskTeam - Team structure
  • ZohoDeskListResponse<T> - API response wrapper

Caching

n8n automatically caches dropdown options (departments, teams) after initial load. Data is refreshed when:

  • The node is reopened
  • User manually refreshes the dropdown
  • Parent parameter changes (e.g., changing department reloads teams)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Setup

# Clone the repository
git clone https://github.com/EnthuZiastic/n8n-nodes-zoho-desk.git

# Install dependencies
npm install

# Build the node
npm run build

# Run in development mode
npm run dev

Publishing to npm

# Login to npm (one-time setup)
npm login

# Publish with version bump
npm run publish:minor  # For new features (0.2.0 → 0.3.0)
npm run publish:patch  # For bug fixes (0.2.0 → 0.2.1)
npm run publish:major  # For breaking changes (0.2.0 → 1.0.0)

License

MIT

Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue if your problem isn't already listed
  3. Contact the maintainer

Changelog

0.2.0 - Production Release

  • Dynamic department and team dropdowns
  • Automatic contact creation/matching
  • Comprehensive field support (description, dueDate, priority, secondaryContacts, custom fields)
  • Full TypeScript type safety
  • Input validation and error handling
  • JSDoc documentation throughout
  • Optimized performance

Resources