n8n-nodes-service-desk-plus
v1.1.0
Published
n8n node for ServiceDesk Plus integration with enhanced attachment management, resolution tracking, CC functionality, dual-body email support, and knowledge base features
Maintainers
Readme
n8n ServiceDesk Plus Node - Enhanced Integration
A comprehensive n8n node for ManageEngine ServiceDesk Plus integration with advanced conversation management, reply functionality, and AI automation capabilities.
🚀 Features
Core Operations
- ✅ Create Ticket - Create new service desk tickets
- ✅ Update Ticket - Modify existing ticket properties
- ✅ Get Ticket - Retrieve detailed ticket information
- ✅ List Tickets - Browse tickets with filtering capabilities
- ✅ Add Reply - Reply to ticket conversations with advanced targeting
- ✅ Get Conversations - Retrieve complete conversation history
📎 Attachment Management (NEW!)
- ✅ Upload Attachment - Upload files to tickets with descriptions
- ✅ Download Attachment - Download attachments with configurable paths
- ✅ List Attachments - Retrieve all attachments for a ticket
- ✅ Delete Attachment - Remove attachments from tickets
- 🔒 Secure File Handling - Proper error handling and validation
Advanced Reply Features
- 🎯 Reply to First Message - Target initial web-created messages
- 🎯 Reply to Latest Message - Respond to most recent conversation
- 🎯 Reply to Specific Message - Target any message by ID
- 🔒 Public/Private Replies - Control reply visibility
AI Integration
- 🤖 10 AI-Accessible Tools for intelligent automation
- 🤖 Smart Ticket Triage - AI can categorize and assign tickets
- 🤖 Automated Status Updates - AI-driven progress monitoring
- 🤖 Intelligent Reply Generation - Context-aware responses
- 🤖 Attachment Intelligence - AI-powered file management
📦 Installation
Prerequisites
- n8n instance (self-hosted or cloud)
- ManageEngine ServiceDesk Plus with API access
- Valid API credentials (Base URL + Auth Token)
Install via npm
npm install n8n-nodes-service-desk-plusManual Installation
- Clone this repository
- Install dependencies:
npm install - Build the node:
npm run build - Link to your n8n installation
⚙️ Configuration
1. Create ServiceDesk Plus API Credentials
- Navigate to n8n → Credentials
- Create new "ServiceDesk Plus API" credential
- Configure the following:
{
"baseUrl": "https://your-domain.servicedeskplus.com/api/v3",
"authToken": "your-api-token-here"
}2. Add Node to Workflow
- Search for "ServiceDesk Plus" in the node palette
- Drag and drop into your workflow
- Select your configured credentials
- Choose your desired operation
🎯 Usage Examples
Create a New Ticket
{
"operation": "create",
"subject": "Laptop not starting",
"description": "User reports laptop won't boot after Windows update",
"email_id": "[email protected]",
"service_category": "01. PC/Laptop"
}Reply to First Message (Web-Created Ticket)
{
"operation": "addReply",
"ticketId": "12345",
"replyContent": "Thank you for reporting this issue. We are investigating and will provide an update within 2 hours.",
"replyToMessage": "first",
"isPublic": true
}Get Ticket Conversations
{
"operation": "getConversations",
"ticketId": "12345"
}List Open Tickets
{
"operation": "listTickets",
"limit": 20,
"statusFilter": "Open"
}🤖 AI Automation Examples
Intelligent Ticket Triage
// AI automatically categorizes and responds to new tickets
const ticket = await createServiceDeskTicket({
subject: "Email not working",
description: "Cannot send or receive emails since this morning",
email_id: "[email protected]",
service_category: "16. IT System and Mail" // AI determines category
});
// AI provides immediate acknowledgment
const reply = await addReplyToTicket({
ticketId: ticket.ticketId,
replyContent: "Thank you for reporting the email issue. Our team is investigating and will provide an update within 2 hours.",
replyToMessage: "first",
isPublic: true
});Automated Status Monitoring
// AI monitors and updates ticket progress
const tickets = await listServiceDeskTickets({
statusFilter: "In Progress",
limit: 50
});
for (const ticket of tickets.tickets) {
const conversations = await getTicketConversations({
ticketId: ticket.id
});
// AI determines if update is needed
if (shouldProvideUpdate(conversations)) {
await addReplyToTicket({
ticketId: ticket.id,
replyContent: "Status update: We are still working on your request and expect resolution by end of day.",
replyToMessage: "latest",
isPublic: true
});
}
}📋 Supported Service Categories
The node supports 21 predefined service categories:
- PC/Laptop
- Office Application
- Printer&Scanner
- IT Peripheral
- LED Monitor
- Television
- Merdeka System Apps
- File Server
- Network
- Radio HT
- Deskphone
- Access Card
- CCTV
- IT Service Request Form
- Other
- IT System and Mail
- IT Project Related to System
- IT Project Related to Network
- Preventive Maintenance Support
- Preventive Maintenance Network
- Document Control
🔧 API Operations
| Operation | Method | Endpoint | Purpose |
|-----------|--------|----------|----------|
| Create Ticket | POST | /requests | Create new ticket |
| Update Ticket | PUT | /requests/{id} | Update ticket properties |
| Get Ticket | GET | /requests/{id} | Retrieve ticket details |
| List Tickets | GET | /requests | List tickets with filters |
| Add Reply | POST | /requests/{id}/conversations | Add conversation reply |
| Get Conversations | GET | /requests/{id}/conversations | Get ticket conversations |
| Add Resolution | POST | /requests/{id}/resolutions | Add ticket resolution |
🛠️ Development
Prerequisites
- Node.js 16+
- TypeScript
- n8n development environment
Setup
# Clone the repository
git clone https://github.com/your-username/n8n-nodes-service-desk-plus.git
cd n8n-nodes-service-desk-plus
# Install dependencies
npm install
# Build the node
npm run build
# Run type checking
npm run type-checkProject Structure
n8n-nodes-service-desk-plus/
├── src/
│ ├── ServiceDeskPlus.node.ts # Main node implementation
│ ├── ServiceDeskPlus.node.json # Node metadata
│ ├── credentials/
│ │ └── ServiceDeskPlusApi.credentials.ts # Credential definition
│ ├── typings/
│ │ └── n8n-extensions.d.ts # Type definitions
│ └── serviceDeskPlus.svg # Node icon
├── docs/
│ └── journal.md # Development journal
├── package.json
├── tsconfig.json
└── README.md🔍 Troubleshooting
Common Issues
Connection Problems
- ✅ Verify base URL format:
https://your-domain.servicedeskplus.com/api/v3 - ✅ Check API token validity and permissions
- ✅ Ensure network connectivity to ServiceDesk Plus instance
Reply Issues
- ✅ Verify ticket exists and is accessible
- ✅ Check conversation history before replying
- ✅ Use "first" or "latest" for automatic message targeting
Service Category Errors
- ✅ Use exact category names from the predefined list
- ✅ Check for typos or extra spaces
- ✅ Refer to the supported categories section above
Error Response Format
All operations return consistent error responses:
{
"success": false,
"error": "Detailed error message",
"operation": "operationName"
}📚 Documentation
- Development Journal - Detailed development progress and technical notes
- ManageEngine ServiceDesk Plus API Documentation
- n8n Node Development Guide
🤝 Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Development Guidelines
- Follow TypeScript best practices
- Maintain backward compatibility
- Add comprehensive error handling
- Update documentation for new features
- Run
npm run type-checkbefore submitting
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- n8n - Workflow automation platform
- ManageEngine ServiceDesk Plus - IT service management solution
- Community contributors and testers
📞 Support
- 🐛 Bug Reports: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: [email protected]
Made with ❤️ for the n8n community
Last Updated: August 8, 2025 | Version: 2.0.0 (Enhanced)
