# Onedesk

OneDesk is an all-in-one platform combining help desk and project management functionalities, enabling teams to manage customer support and project tasks seamlessly.

- **Category:** customer support
- **Auth:** API_KEY
- **Tools:** 28
- **Triggers:** 0
- **Slug:** `ONEDESK`
- **Version:** 20260211_00

## Tools

### Create Worklog Entry

**Slug:** `ONEDESK_CREATE_WORKLOG`

Create a worklog entry to track time spent on a work item (task, ticket, project, etc.). Records the start and finish time, work hours, completion percentage, and billability. Use this after obtaining a valid item_id from actions like GET_TASK_DETAILS.

### Delete Attachment

**Slug:** `ONEDESK_DELETE_ATTACHMENT`

Delete a specific attachment from OneDesk by its ID. To use this tool, provide the attachment_id. Note that the OneDesk Public API has limited attachment management capabilities. Attachments are typically associated with items (tickets/tasks) and can be viewed via GET_ATTACHMENTS when fetching item details. Returns deleted=True if the attachment was successfully deleted (200/202/204). Returns deleted=False if the attachment was not found (404).

### Delete Comment

**Slug:** `ONEDESK_DELETE_COMMENT`

Deletes a comment from OneDesk by its ID. Use this tool to permanently remove a comment when it's no longer needed. Note: OneDesk's Public API has limited DELETE support for comments. This action tries multiple possible endpoints to maximize compatibility. Comments may be referred to as "conversations" in the API. Example: {'comment_id': 12345} Returns: Deletion status with context about success/failure (e.g., comment not found, permission denied)

### Delete Customer

**Slug:** `ONEDESK_DELETE_CUSTOMER`

Deletes a customer from OneDesk using the DELETE /customers/{id} endpoint. This action permanently removes the customer record from the OneDesk account. Returns: - success=true: Customer was successfully deleted (HTTP 200/202/204) - success=false: Customer not found or already deleted (HTTP 404) Example usage: {'customer_id': '12345'}

### Delete Message

**Slug:** `ONEDESK_DELETE_MESSAGE`

Deletes a message from OneDesk by its unique message ID. Returns success if the message is deleted or doesn't exist (idempotent operation). Use this when you need to permanently remove a message from the system.

### Delete Project

**Slug:** `ONEDESK_DELETE_PROJECT`

Delete a project in OneDesk by its ID. **API LIMITATION**: The OneDesk Public API does not support DELETE operations. DELETE requests return 405 Method Not Allowed on /rest/public/items endpoints. The public API only supports: - POST /items/ (create) - GET /items/id/{id} (retrieve by ID) - GET /items/externalId/{externalId} (retrieve by external ID) - GET /organization/profileAndPolicy (organization info) **Alternatives**: - Use OneDesk web application to delete projects manually - Contact OneDesk support for private API access - Use ONEDESK_GET_ISSUE_DETAILS if you need to check item status This action will fail with a clear error explaining the limitation.

### Delete Requirement

**Slug:** `ONEDESK_DELETE_REQUIREMENT`

Delete a requirement from OneDesk. Requirements in OneDesk are work items used for product development, feature requests, and specifications. They are one of the core work item types (tickets, tasks, requirements, issues). IMPORTANT: This operation may not be supported by all OneDesk Public API versions. If deletion fails, the API may only support soft-delete or archiving through status updates. Use when you need to permanently remove a requirement by its internal numeric ID. Example: {'requirement_id': 12345}

### Delete Task

**Slug:** `ONEDESK_DELETE_TASK`

Tool to delete a specific task. Use when you need to remove an existing task by its ID after confirming its details.

### Delete Ticket

**Slug:** `ONEDESK_DELETE_TICKET`

Deletes a ticket from OneDesk by its internal ID. Use this tool to permanently remove a ticket when it's no longer needed. The ticket will be moved to the 'Deleted Items' project and scheduled for permanent deletion after 7 days. Note: OneDesk's Public API has limited DELETE support. This action tries multiple possible endpoints to maximize compatibility. Example: {'ticket_id': 123} Returns: Deletion status with context about success/failure (e.g., ticket not found, rate limited, permission denied)

### Delete Timesheet

**Slug:** `ONEDESK_DELETE_TIMESHEET`

Tool to delete a timesheet by its ID. Use when you need to remove a specific timesheet after confirming it's no longer needed. Example: {'timesheet_id': 123}

### Delete User

**Slug:** `ONEDESK_DELETE_USER`

Deletes a user from OneDesk by their unique user ID. This action permanently removes the specified user from the OneDesk account. Use this only after confirming the user should be removed from the system. **Important Notes:** - The OneDesk Public API has limited user management capabilities - There is no public API endpoint to list or create users - User IDs must be obtained through other means (e.g., OneDesk web application, internal systems) **Returns:** - success=True with status_code 200/204 if user was successfully deleted - success=False with status_code 404 if user was not found - success=False with appropriate status_code for other errors (403 for permission denied, 429 for rate limited, etc.) Example: {'user_id': '12345'}

### Delete Worklog

**Slug:** `ONEDESK_DELETE_WORKLOG`

Tool to delete a worklog entry by its unique ID. Use this action when you need to remove a time tracking worklog entry from OneDesk. **Parameters:** - worklog_id (str, required): The unique identifier of the worklog to delete **Returns:** - worklog_id (str): The ID of the worklog that was targeted for deletion - deleted (bool): True if the worklog was successfully deleted, False otherwise - message (str, optional): Additional information about the deletion attempt, including error details if deletion failed **Note:** The OneDesk Public API has limited worklog endpoint support. This action attempts multiple API endpoint patterns to accommodate different OneDesk API versions and configurations. If the worklog doesn't exist or the API doesn't support deletion, deleted will be False and message will contain details about why the deletion failed. **Example usage:** ```python {'worklog_id': '12345'} ```

### Get Attachments

**Slug:** `ONEDESK_GET_ATTACHMENTS`

Retrieve attachments for a specific item by its external ID. IMPORTANT: The OneDesk Public API (/rest/public) has limited functionality and does NOT provide: - A dedicated attachments list endpoint - Ability to list all attachments across items - Endpoints to retrieve items by internal ID This action retrieves attachments by fetching an item via its external ID and extracting attachment data from the item response. You must know the external ID of the item in advance. Supported endpoints: 1. GET /rest/public/items/externalId/{externalId} - Fetch item by external ID 2. POST /rest/public/items/ - Create new items (not used here) 3. GET /rest/public/organization/profileAndPolicy - Get organization info (not used here)

### Get Comment Details

**Slug:** `ONEDESK_GET_COMMENT_DETAILS`

Retrieve detailed information for a specific comment by its ID. This action attempts to fetch comment details from OneDesk using the comment ID. It tries multiple endpoint patterns to maximize compatibility with different API versions. Note: The OneDesk Public REST API has limited support for retrieving comments. If the comment ID doesn't exist or the endpoint is not available, this action will fail.

### Get Comments

**Slug:** `ONEDESK_GET_COMMENTS`

Attempts to retrieve comments (discussion posts) from OneDesk. **IMPORTANT LIMITATION**: The OneDesk Public REST API does not provide an endpoint to list or retrieve comments. According to OneDesk's API documentation, the public API only supports: - Creating items: POST /rest/public/items/ - Retrieving items by external ID: GET /rest/public/items/externalId/{externalId} - Getting organization info: GET /rest/public/organization/profileAndPolicy Comments can be created via the API but cannot be retrieved or listed through the public API. This action documents this limitation clearly. **Alternative approaches**: 1. Use the OneDesk web application directly to view comments 2. Request access to OneDesk's private/internal API from OneDesk support 3. Use OneDesk's webhook system to receive comment events in real-time 4. If you have a comment ID, try ONEDESK_GET_COMMENT_DETAILS For more information, visit: https://onedesk.com/dev/

### Get Feedback Items

**Slug:** `ONEDESK_GET_FEEDBACK`

Retrieve all feedback items from OneDesk. **IMPORTANT LIMITATION**: The OneDesk Public API does not provide a GET endpoint to list feedback items. The public API only supports: - Creating items via POST /rest/public/items/ - Retrieving specific items by external ID via GET /rest/public/items/externalId/{externalId} - Getting organization info This action will always fail with an informative error message explaining this API limitation. **Alternative approaches:** - Use the OneDesk web application for viewing feedback - Retrieve feedback by external ID if you have it - Use OneDesk webhooks to receive feedback data as events - Contact OneDesk for private/internal API access

### Get Feedback Details

**Slug:** `ONEDESK_GET_FEEDBACK_DETAILS`

Retrieve detailed information about a specific item in OneDesk by its internal ID. This endpoint retrieves ANY type of item (Tickets, Tasks, Feedback, etc.), not just feedback items. Use this action when you have an item's internal ID and need comprehensive details including: - Basic info (title, description, status, priority) - Creator and assignee information - Project association - Timestamps and lifecycle state - Direct web URL to view the item The internal ID is the numeric ID shown in the OneDesk application.

### Get Issue Details

**Slug:** `ONEDESK_GET_ISSUE_DETAILS`

Retrieve comprehensive details of a specific issue by its ID. This action fetches full information about an issue including its title, description, status, priority, creation/update timestamps, and other metadata. Use this when you need detailed information about a specific issue that you have the ID for. Returns essential issue information that can be used for reporting, tracking, or further processing. The response includes both basic fields (title, description) and advanced tracking information (status, priority, timestamps).

### Get Issues

**Slug:** `ONEDESK_GET_ISSUES`

Retrieve a list of issues from OneDesk. **API LIMITATION**: The OneDesk Public API does not provide an endpoint to list or retrieve issues. The public API only supports: 1. Creating items via POST /rest/public/items/ 2. Retrieving specific items by external ID via GET /rest/public/items/externalId/{externalId} 3. Getting organization info via GET /rest/public/organization/profileAndPolicy **Alternatives**: - Use the OneDesk web application directly to view and manage issues - Request access to OneDesk's private API (contact OneDesk support) - Use OneDesk's webhook system for issue event notifications - Use ONEDESK_GET_ISSUE_DETAILS action if you have a specific issue's external ID This action will raise an ExecutionFailed error to document this limitation.

### Get Messages

**Slug:** `ONEDESK_GET_MESSAGES`

Tool to retrieve a list of messages from OneDesk. **IMPORTANT LIMITATION**: The OneDesk Public API does not provide an endpoint to list or retrieve messages. The public API only supports: 1. Creating items via POST /rest/public/items/ 2. Retrieving specific items by ID via GET /rest/public/items/id/{id} 3. Retrieving specific items by external ID via GET /rest/public/items/externalId/{externalId} 4. Getting organization info via GET /rest/public/organization/profileAndPolicy **Alternatives**: - Use the OneDesk web application directly to view messages - Request access to OneDesk's private API (contact OneDesk support) - Use OneDesk's webhook system for message event notifications - Retrieve specific messages by ID if you have the message ID This action will raise an ExecutionFailed error to document this API limitation.

### Get Requirement Details

**Slug:** `ONEDESK_GET_REQUIREMENT_DETAILS`

Retrieve full details of a specific requirement by its external ID. The OneDesk Public API supports limited endpoints. This action uses the /items/externalId/{externalId} endpoint to retrieve requirement details. The requirement_id should be the external ID assigned to the requirement in OneDesk. This action handles the nested OneDesk API response format properly.

### Get Requirements

**Slug:** `ONEDESK_GET_REQUIREMENTS`

Retrieve a list of requirements from OneDesk. **IMPORTANT LIMITATION**: This action cannot function as intended because the OneDesk Public API does not provide an endpoint to list or retrieve requirements. The OneDesk Public API (/rest/public) only supports: - Creating items: POST /rest/public/items/ - Get by external ID: GET /rest/public/items/externalId/{externalId} - Organization info: GET /rest/public/organization/profileAndPolicy There is no endpoint to: - List all requirements - Search for requirements - Query requirements by criteria - Get requirements by any identifier other than external ID Alternative approaches: 1. Use OneDesk web application for requirement management 2. Contact OneDesk support for private API access 3. Use webhooks to receive requirement data as events occur 4. Use ONEDESK_GET_REQUIREMENT_DETAILS if you have a specific requirement's external ID This action will always fail with a clear error message explaining the limitation.

### Get Task Details

**Slug:** `ONEDESK_GET_TASK_DETAILS`

Retrieves comprehensive details of a specific task/item in OneDesk by its ID. Use this tool when you need complete information about a task including its title, description, status, assignee, priority, due date, and project association. OneDesk uses 'items' to represent various work units including tasks, tickets, issues, and requirements. Returns detailed task information if found, or raises an error if the task doesn't exist or you don't have permission to access it.

### Get Tickets

**Slug:** `ONEDESK_GET_TICKETS`

Retrieve tickets from OneDesk by querying a range of item IDs. **API LIMITATION WORKAROUND**: The OneDesk Public API does not provide a direct endpoint to list all tickets. This action works around this by: 1. Querying individual items by ID within the specified range (start_id to end_id) 2. Filtering results to return only items with type='Ticket' 3. Limiting results to the max_tickets parameter **How it works**: - The action queries items sequentially from start_id to end_id - Only items with type='Ticket' are included in the results - Stops after collecting max_tickets tickets or reaching end_id - Non-existent IDs and non-ticket items (tasks, folders, etc.) are skipped **Best practices**: - Use smaller ranges (e.g., 1-50) for faster responses - Adjust start_id based on your known ticket ID ranges - Use max_tickets to limit the number of results The OneDesk Public API endpoint used: GET /rest/public/items/id/{id}

### Get Timesheet Details

**Slug:** `ONEDESK_GET_TIMESHEET_DETAILS`

Tool to retrieve details of a specific timesheet entry. Use when you have the `timesheet_id` and need full metadata (user, project, hours, dates). Tries multiple endpoint/header variants and gracefully falls back in restricted environments.

### Get Timesheets

**Slug:** `ONEDESK_GET_TIMESHEETS`

**⚠️ API LIMITATION**: OneDesk's Public REST API does NOT provide endpoints to list worklogs/timesheets. This action will always fail because the OneDesk Public API only supports: 1. Creating items (POST /rest/public/items/) 2. Retrieving items by external ID (GET /rest/public/items/externalId/{externalId}) 3. Getting organization info (GET /rest/public/organization/profileAndPolicy) **Workarounds to access timesheet/worklog data:** - View worklogs through the OneDesk web application - Contact OneDesk support for private API access - Set up webhooks to capture worklog creation events in real-time - Export timesheet data manually from OneDesk dashboard - Use the legacy REST 2.0 API (requires different authentication) Reference: https://onedesk.com/dev/

### Get Worklog Details

**Slug:** `ONEDESK_GET_WORKLOG_DETAILS`

Retrieve details of a specific worklog entry by ID. IMPORTANT: The OneDesk Public API has limited worklog support. This action will attempt multiple endpoint patterns to maximize compatibility across different OneDesk deployments and API versions. If no endpoints are available, the action returns a minimal response with the requested ID. Use this action when you have a worklog ID and need to retrieve its details (duration, notes, billable status, timestamps, etc.).

### Get Worklogs

**Slug:** `ONEDESK_GET_WORKLOGS`

Retrieve a list of worklogs from OneDesk with optional filtering and pagination. This action attempts to list worklogs by trying multiple candidate endpoints and parameter formats. Note: The OneDesk Public API has limited endpoint support. If no worklogs endpoint is available, this action will return an empty list. Consider using the OneDesk web interface or private API endpoints for full worklog access. Use this action to: - List all worklogs in your OneDesk organization - Filter worklogs by object (ticket/task/project), user, or date range - Paginate through large worklog lists using limit and offset parameters
