---
title: Jira Service Management
description: Interact with Jira Service Management
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="jira_service_management"
  color="#FFFFFF"
/>

{/* MANUAL-CONTENT-START:intro */}
[Jira Service Management](https://www.atlassian.com/software/jira/service-management) is Atlassian’s modern IT service management (ITSM) solution designed to help teams efficiently manage service requests, incidents, problems, assets, and changes across your organization. Built on the Jira platform, Jira Service Management empowers IT, DevOps, HR, facilities, and other business teams to deliver exceptional, collaborative service.

Jira Service Management (JSM) goes beyond traditional issue tracking by providing features purpose-built for service teams, such as integrated SLAs, customizable request types, automation, robust queues, and seamless customer portals. Through the JSM API and Sim integration, you can automate, monitor, and interact with all aspects of your service management workflows.

Key features of Jira Service Management include:

- **Service Request Management**: Streamline intake, triage, and resolution of IT or business requests via customizable forms, queues, and automated routing.
- **Incident and Problem Management**: Log, track, escalate, and resolve incidents with tools for root cause analysis, post-incident reviews, and real-time collaboration.
- **SLA Tracking and Reporting**: Define, monitor, and report on service level agreements to ensure timely service delivery and accountability.
- **Asset and Configuration Management**: Maintain an up-to-date inventory of assets, configuration items, and their relationships to improve visibility and impact analysis.
- **Queue Management**: Manage workload and priorities using powerful queues for service agents, including filtering, sorting, and bulk actions.
- **Customer and Organization Management**: Group customers into organizations, manage user permissions, and improve communication through tailored customer portals.

With Sim’s Jira Service Management integration, you can create, monitor, and update service requests, fetch and manage customer organizations, track active queues, and automate ITSM operations programmatically. Build intelligent service desk agents, automate workflows triggered by service events, and ensure both end-users and service teams benefit from proactive, AI-powered support.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate with Jira Service Management for IT service management. Create and manage service requests, handle customers and organizations, track SLAs, and manage queues.



## Actions

### `jsm_get_service_desks`

Get all service desks from Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `expand` | string | No | Comma-separated fields to expand in the response |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `serviceDesks` | array | List of service desks |
|   ↳ `id` | string | Service desk ID |
|   ↳ `projectId` | string | Associated Jira project ID |
|   ↳ `projectName` | string | Associated project name |
|   ↳ `projectKey` | string | Associated project key |
|   ↳ `name` | string | Service desk name |
|   ↳ `description` | string | Service desk description |
|   ↳ `leadDisplayName` | string | Project lead display name |
| `total` | number | Total number of service desks |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_get_request_types`

Get request types for a service desk in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `searchQuery` | string | No | Filter request types by name |
| `groupId` | string | No | Filter by request type group ID |
| `expand` | string | No | Comma-separated fields to expand in the response |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `requestTypes` | array | List of request types |
|   ↳ `id` | string | Request type ID |
|   ↳ `name` | string | Request type name |
|   ↳ `description` | string | Request type description |
|   ↳ `helpText` | string | Help text for customers |
|   ↳ `issueTypeId` | string | Associated Jira issue type ID |
|   ↳ `serviceDeskId` | string | Parent service desk ID |
|   ↳ `groupIds` | json | Groups this request type belongs to |
|   ↳ `icon` | json | Request type icon with id and links |
|   ↳ `restrictionStatus` | string | OPEN or RESTRICTED |
| `total` | number | Total number of request types |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_create_request`

Create a new service request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `requestTypeId` | string | Yes | Request Type ID \(e.g., "10", "15"\) |
| `summary` | string | No | Summary/title for the service request \(required unless using Form Answers\) |
| `description` | string | No | Description for the service request |
| `raiseOnBehalfOf` | string | No | Account ID of customer to raise request on behalf of |
| `requestFieldValues` | json | No | Request field values as key-value pairs \(overrides summary/description if provided\) |
| `formAnswers` | json | No | Form answers using numeric form question IDs as keys \(e.g., \{"1": \{"text": "Title"\}, "4": \{"choices": \["5"\]\}\}\). Keys are question IDs from the Jira Form, not Jira field names. |
| `requestParticipants` | string | No | Comma-separated account IDs to add as request participants |
| `channel` | string | No | Channel the request originates from \(e.g., portal, email\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueId` | string | Created request issue ID |
| `issueKey` | string | Created request issue key \(e.g., SD-123\) |
| `requestTypeId` | string | Request type ID |
| `serviceDeskId` | string | Service desk ID |
| `createdDate` | json | Creation date with iso8601, friendly, epochMillis |
| `currentStatus` | json | Current status with status name and category |
| `reporter` | json | Reporter user with accountId, displayName, emailAddress |
| `success` | boolean | Whether the request was created successfully |
| `url` | string | URL to the created request |

### `jsm_get_request`

Get a single service request from Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `expand` | string | No | Comma-separated fields to expand: participant, status, sla, requestType, serviceDesk, attachment, comment, action |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueId` | string | Jira issue ID |
| `issueKey` | string | Issue key \(e.g., SD-123\) |
| `requestTypeId` | string | Request type ID |
| `serviceDeskId` | string | Service desk ID |
| `createdDate` | json | Creation date with iso8601, friendly, epochMillis |
| `currentStatus` | object | Current request status |
|   ↳ `status` | string | Status name |
|   ↳ `statusCategory` | string | Status category \(NEW, INDETERMINATE, DONE\) |
|   ↳ `statusDate` | json | Status change date with iso8601, friendly, epochMillis |
| `reporter` | object | Reporter user details |
|   ↳ `accountId` | string | Atlassian account ID |
|   ↳ `displayName` | string | User display name |
|   ↳ `emailAddress` | string | User email address |
|   ↳ `active` | boolean | Whether the account is active |
| `requestFieldValues` | array | Request field values |
|   ↳ `fieldId` | string | Field identifier |
|   ↳ `label` | string | Human-readable field label |
|   ↳ `value` | json | Field value |
|   ↳ `renderedValue` | json | HTML-rendered field value |
| `url` | string | URL to the request |
| `request` | json | The service request object |

### `jsm_get_requests`

Get multiple service requests from Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | No | Filter by service desk ID \(e.g., "1", "2"\) |
| `requestOwnership` | string | No | Filter by ownership: OWNED_REQUESTS, PARTICIPATED_REQUESTS, APPROVER, ALL_REQUESTS |
| `requestStatus` | string | No | Filter by status: OPEN_REQUESTS, CLOSED_REQUESTS, ALL_REQUESTS |
| `requestTypeId` | string | No | Filter by request type ID |
| `searchTerm` | string | No | Search term to filter requests \(e.g., "password reset", "laptop"\) |
| `expand` | string | No | Comma-separated fields to expand: participant, status, sla, requestType, serviceDesk, attachment, comment, action |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `requests` | array | List of service requests |
|   ↳ `issueId` | string | Jira issue ID |
|   ↳ `issueKey` | string | Issue key \(e.g., SD-123\) |
|   ↳ `requestTypeId` | string | Request type ID |
|   ↳ `serviceDeskId` | string | Service desk ID |
|   ↳ `createdDate` | json | Creation date with iso8601, friendly, epochMillis |
|   ↳ `currentStatus` | object | Current request status |
|     ↳ `status` | string | Status name |
|     ↳ `statusCategory` | string | Status category \(NEW, INDETERMINATE, DONE\) |
|     ↳ `statusDate` | json | Status change date with iso8601, friendly, epochMillis |
|   ↳ `reporter` | object | Reporter user details |
|     ↳ `accountId` | string | Atlassian account ID |
|     ↳ `displayName` | string | User display name |
|     ↳ `emailAddress` | string | User email address |
|     ↳ `active` | boolean | Whether the account is active |
|   ↳ `requestFieldValues` | array | Request field values |
|     ↳ `fieldId` | string | Field identifier |
|     ↳ `label` | string | Human-readable field label |
|     ↳ `value` | json | Field value |
|     ↳ `renderedValue` | json | HTML-rendered field value |
| `total` | number | Total number of requests in current page |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_add_comment`

Add a comment (public or internal) to a service request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `body` | string | Yes | Comment body text |
| `isPublic` | boolean | Yes | Whether the comment is public \(visible to customer\) or internal \(true/false\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `commentId` | string | Created comment ID |
| `body` | string | Comment body text |
| `isPublic` | boolean | Whether the comment is public |
| `author` | object | Comment author |
|   ↳ `accountId` | string | Atlassian account ID |
|   ↳ `displayName` | string | User display name |
|   ↳ `emailAddress` | string | User email address |
|   ↳ `active` | boolean | Whether the account is active |
| `createdDate` | json | Comment creation date with iso8601, friendly, epochMillis |
| `success` | boolean | Whether the comment was added successfully |

### `jsm_get_comments`

Get comments for a service request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `isPublic` | boolean | No | Filter to only public comments \(true/false\) |
| `internal` | boolean | No | Filter to only internal comments \(true/false\) |
| `expand` | string | No | Comma-separated fields to expand: renderedBody, attachment |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `comments` | array | List of comments |
|   ↳ `id` | string | Comment ID |
|   ↳ `body` | string | Comment body text |
|   ↳ `public` | boolean | Whether the comment is public |
|   ↳ `author` | object | Comment author |
|     ↳ `accountId` | string | Atlassian account ID |
|     ↳ `displayName` | string | User display name |
|     ↳ `emailAddress` | string | User email address |
|     ↳ `active` | boolean | Whether the account is active |
|   ↳ `created` | json | Creation date with iso8601, friendly, epochMillis |
|   ↳ `renderedBody` | json | HTML-rendered comment body \(when expand=renderedBody\) |
| `total` | number | Total number of comments |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_get_customers`

Get customers for a service desk in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `query` | string | No | Search query to filter customers \(e.g., "john", "acme"\) |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `customers` | array | List of customers |
|   ↳ `accountId` | string | Atlassian account ID |
|   ↳ `displayName` | string | Display name |
|   ↳ `emailAddress` | string | Email address |
|   ↳ `active` | boolean | Whether the account is active |
|   ↳ `timeZone` | string | User timezone |
| `total` | number | Total number of customers |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_add_customer`

Add customers to a service desk in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `accountIds` | string | Yes | Comma-separated Atlassian account IDs to add as customers |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `serviceDeskId` | string | Service desk ID |
| `success` | boolean | Whether customers were added successfully |

### `jsm_get_organizations`

Get organizations for a service desk in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `organizations` | array | List of organizations |
|   ↳ `id` | string | Organization ID |
|   ↳ `name` | string | Organization name |
| `total` | number | Total number of organizations |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_create_organization`

Create a new organization in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `name` | string | Yes | Name of the organization to create |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `organizationId` | string | ID of the created organization |
| `name` | string | Name of the created organization |
| `success` | boolean | Whether the operation succeeded |

### `jsm_add_organization`

Add an organization to a service desk in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `organizationId` | string | Yes | Organization ID to add to the service desk |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `serviceDeskId` | string | Service Desk ID |
| `organizationId` | string | Organization ID added |
| `success` | boolean | Whether the operation succeeded |

### `jsm_get_queues`

Get queues for a service desk in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `includeCount` | boolean | No | Include issue count for each queue \(true/false\) |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `queues` | array | List of queues |
|   ↳ `id` | string | Queue ID |
|   ↳ `name` | string | Queue name |
|   ↳ `jql` | string | JQL filter for the queue |
|   ↳ `fields` | json | Fields displayed in the queue |
|   ↳ `issueCount` | number | Number of issues in the queue |
| `total` | number | Total number of queues |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_get_sla`

Get SLA information for a service request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `slas` | array | List of SLA metrics |
|   ↳ `id` | string | SLA metric ID |
|   ↳ `name` | string | SLA metric name |
|   ↳ `completedCycles` | json | Completed SLA cycles with startTime, stopTime, breachTime, breached, goalDuration, elapsedTime, remainingTime \(each time as DateDTO, durations as DurationDTO\) |
|   ↳ `ongoingCycle` | json | Ongoing SLA cycle with startTime, breachTime, breached, paused, withinCalendarHours, goalDuration, elapsedTime, remainingTime |
| `total` | number | Total number of SLAs |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_get_transitions`

Get available transitions for a service request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `transitions` | array | List of available transitions |
|   ↳ `id` | string | Transition ID |
|   ↳ `name` | string | Transition name |
| `total` | number | Total number of transitions |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_transition_request`

Transition a service request to a new status in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `transitionId` | string | Yes | Transition ID to apply |
| `comment` | string | No | Optional comment to add during transition |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `transitionId` | string | Applied transition ID |
| `success` | boolean | Whether the transition was successful |

### `jsm_get_participants`

Get participants for a request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `participants` | array | List of participants |
|   ↳ `accountId` | string | Atlassian account ID |
|   ↳ `displayName` | string | Display name |
|   ↳ `emailAddress` | string | Email address |
|   ↳ `active` | boolean | Whether the account is active |
| `total` | number | Total number of participants |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_add_participants`

Add participants to a request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `accountIds` | string | Yes | Comma-separated account IDs to add as participants |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `participants` | array | List of added participants |
|   ↳ `accountId` | string | Atlassian account ID |
|   ↳ `displayName` | string | Display name |
|   ↳ `emailAddress` | string | Email address |
|   ↳ `active` | boolean | Whether the account is active |
| `success` | boolean | Whether the operation succeeded |

### `jsm_get_approvals`

Get approvals for a request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `start` | number | No | Start index for pagination \(e.g., 0, 50, 100\) |
| `limit` | number | No | Maximum results to return \(e.g., 10, 25, 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `approvals` | array | List of approvals |
|   ↳ `id` | string | Approval ID |
|   ↳ `name` | string | Approval description |
|   ↳ `finalDecision` | string | Final decision: pending, approved, or declined |
|   ↳ `canAnswerApproval` | boolean | Whether current user can respond |
|   ↳ `approvers` | array | List of approvers with their decisions |
|     ↳ `approver` | object | Approver user details |
|       ↳ `accountId` | string | Atlassian account ID |
|       ↳ `displayName` | string | User display name |
|       ↳ `emailAddress` | string | User email address |
|       ↳ `active` | boolean | Whether the account is active |
|     ↳ `approverDecision` | string | Decision: pending, approved, or declined |
|   ↳ `createdDate` | json | Creation date |
|   ↳ `completedDate` | json | Completion date |
| `total` | number | Total number of approvals |
| `isLastPage` | boolean | Whether this is the last page |

### `jsm_answer_approval`

Approve or decline an approval request in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., SD-123\) |
| `approvalId` | string | Yes | Approval ID to answer |
| `decision` | string | Yes | Decision: "approve" or "decline" |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `approvalId` | string | Approval ID |
| `decision` | string | Decision made \(approve/decline\) |
| `id` | string | Approval ID from response |
| `name` | string | Approval description |
| `finalDecision` | string | Final approval decision: pending, approved, or declined |
| `canAnswerApproval` | boolean | Whether the current user can still respond |
| `approvers` | array | Updated list of approvers with decisions |
|   ↳ `approver` | object | Approver user details |
|     ↳ `accountId` | string | Approver account ID |
|     ↳ `displayName` | string | Approver display name |
|     ↳ `emailAddress` | string | Approver email |
|     ↳ `active` | boolean | Whether the account is active |
|   ↳ `approverDecision` | string | Individual approver decision |
| `createdDate` | json | Approval creation date |
| `completedDate` | json | Approval completion date |
| `approval` | json | The approval object |
| `success` | boolean | Whether the operation succeeded |

### `jsm_get_request_type_fields`

Get the fields required to create a request of a specific type in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `serviceDeskId` | string | Yes | Service Desk ID \(e.g., "1", "2"\) |
| `requestTypeId` | string | Yes | Request Type ID \(e.g., "10", "15"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `serviceDeskId` | string | Service desk ID |
| `requestTypeId` | string | Request type ID |
| `canAddRequestParticipants` | boolean | Whether participants can be added to requests of this type |
| `canRaiseOnBehalfOf` | boolean | Whether requests can be raised on behalf of another user |
| `requestTypeFields` | array | List of fields for this request type |
|   ↳ `fieldId` | string | Field identifier \(e.g., summary, description, customfield_10010\) |
|   ↳ `name` | string | Human-readable field name |
|   ↳ `description` | string | Help text for the field |
|   ↳ `required` | boolean | Whether the field is required |
|   ↳ `visible` | boolean | Whether the field is visible |
|   ↳ `validValues` | json | Allowed values for select fields |
|   ↳ `presetValues` | json | Pre-populated values |
|   ↳ `defaultValues` | json | Default values for the field |
|   ↳ `jiraSchema` | json | Jira field schema with type, system, custom, customId |

### `jsm_get_form_templates`

List forms (ProForma/JSM Forms) in a Jira project to discover form IDs for request types

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `projectIdOrKey` | string | Yes | Jira project ID or key \(e.g., "10001" or "SD"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `projectIdOrKey` | string | Project ID or key |
| `templates` | array | List of forms in the project |
|   ↳ `id` | string | Form template ID \(UUID\) |
|   ↳ `name` | string | Form template name |
|   ↳ `updated` | string | Last updated timestamp \(ISO 8601\) |
|   ↳ `issueCreateIssueTypeIds` | json | Issue type IDs that auto-attach this form on issue create |
|   ↳ `issueCreateRequestTypeIds` | json | Request type IDs that auto-attach this form on issue create |
|   ↳ `portalRequestTypeIds` | json | Request type IDs that show this form on the customer portal |
|   ↳ `recommendedIssueRequestTypeIds` | json | Request type IDs that recommend this form |
| `total` | number | Total number of forms |

### `jsm_get_form_structure`

Get the full structure of a ProForma/JSM form including all questions, field types, choices, layout, and conditions

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `projectIdOrKey` | string | Yes | Jira project ID or key \(e.g., "10001" or "SD"\) |
| `formId` | string | Yes | Form ID \(UUID from Get Form Templates\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `projectIdOrKey` | string | Project ID or key |
| `formId` | string | Form ID |
| `design` | json | Full form design with questions \(field types, labels, choices, validation\), layout \(field ordering\), and conditions |
| `updated` | string | Last updated timestamp |
| `publish` | json | Publishing and request type configuration |

### `jsm_get_issue_forms`

List forms (ProForma/JSM Forms) attached to a Jira issue with metadata (name, submitted status, lock)

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123", "10001"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `forms` | array | List of forms attached to the issue |
|   ↳ `id` | string | Form instance ID \(UUID\) |
|   ↳ `name` | string | Form name |
|   ↳ `updated` | string | Last updated timestamp \(ISO 8601\) |
|   ↳ `submitted` | boolean | Whether the form has been submitted |
|   ↳ `lock` | boolean | Whether the form is locked |
|   ↳ `internal` | boolean | Whether the form is internal-only |
|   ↳ `formTemplateId` | string | Source form template ID \(UUID\) |
| `total` | number | Total number of forms |

### `jsm_attach_form`

Attach a form template to an existing Jira issue or JSM request

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key to attach the form to \(e.g., "SD-123"\) |
| `formTemplateId` | string | Yes | Form template UUID \(from Get Form Templates\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `id` | string | Attached form instance ID \(UUID\) |
| `name` | string | Form name |
| `updated` | string | Last updated timestamp |
| `submitted` | boolean | Whether the form has been submitted |
| `lock` | boolean | Whether the form is locked |
| `internal` | boolean | Whether the form is internal only |
| `formTemplateId` | string | Form template ID |

### `jsm_save_form_answers`

Save answers to a form attached to a Jira issue or JSM request

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123"\) |
| `formId` | string | Yes | Form instance UUID \(from Attach Form or Get Issue Forms\) |
| `answers` | json | Yes | Form answers using numeric question IDs as keys \(e.g., \{"1": \{"text": "Title"\}, "4": \{"choices": \["5"\]\}\}\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `formId` | string | Form instance UUID |
| `state` | json | Form state with status \(open, submitted, locked\) |
| `updated` | string | Last updated timestamp |

### `jsm_submit_form`

Submit a form on a Jira issue or JSM request, locking it from further edits

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123"\) |
| `formId` | string | Yes | Form instance UUID \(from Attach Form or Get Issue Forms\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `formId` | string | Form instance UUID |
| `status` | string | Form status after submission \(open, submitted, locked\) |

### `jsm_get_form`

Get a single form with full design, state, and answers from a Jira issue

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123"\) |
| `formId` | string | Yes | Form instance UUID \(from Attach Form or Get Issue Forms\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `formId` | string | Form instance UUID |
| `design` | json | Full form design with questions, layout, conditions, sections, settings |
| `state` | json | Form state with answers map, status \(o=open, s=submitted, l=locked\), visibility \(i=internal, e=external\) |
| `updated` | string | Last updated timestamp |

### `jsm_get_form_answers`

Get simplified answers from a form attached to a Jira issue or JSM request

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123"\) |
| `formId` | string | Yes | Form instance UUID \(from Attach Form or Get Issue Forms\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `formId` | string | Form instance UUID |
| `answers` | json | Simplified form answers as key-value pairs \(question label to answer text/choices\) |

### `jsm_reopen_form`

Reopen a submitted form on a Jira issue or JSM request, allowing further edits

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123"\) |
| `formId` | string | Yes | Form instance UUID \(from Get Issue Forms\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `formId` | string | Form instance UUID |
| `status` | string | Form status after reopening \(open, submitted, locked\) |

### `jsm_delete_form`

Remove a form from a Jira issue or JSM request

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123"\) |
| `formId` | string | Yes | Form instance UUID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `formId` | string | Deleted form instance UUID |
| `deleted` | boolean | Whether the form was successfully deleted |

### `jsm_externalise_form`

Make a form visible to customers on a Jira issue or JSM request

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123"\) |
| `formId` | string | Yes | Form instance UUID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `formId` | string | Form instance UUID |
| `visibility` | string | Form visibility after change \(internal or external\) |

### `jsm_internalise_form`

Make a form internal only (not visible to customers) on a Jira issue or JSM request

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `issueIdOrKey` | string | Yes | Issue ID or key \(e.g., "SD-123"\) |
| `formId` | string | Yes | Form instance UUID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `issueIdOrKey` | string | Issue ID or key |
| `formId` | string | Form instance UUID |
| `visibility` | string | Form visibility after change \(internal or external\) |

### `jsm_copy_forms`

Copy forms from one Jira issue to another

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `sourceIssueIdOrKey` | string | Yes | Source issue ID or key to copy forms from \(e.g., "SD-123"\) |
| `targetIssueIdOrKey` | string | Yes | Target issue ID or key to copy forms to \(e.g., "SD-456"\) |
| `formIds` | json | No | Optional JSON array of form UUIDs to copy \(e.g., \["uuid1", "uuid2"\]\). If omitted, copies all forms. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `sourceIssueIdOrKey` | string | Source issue ID or key |
| `targetIssueIdOrKey` | string | Target issue ID or key |
| `copiedForms` | json | Array of successfully copied forms |
| `errors` | json | Array of errors encountered during copy |

### `jsm_list_object_schemas`

List Assets (Insight/CMDB) object schemas in Jira Service Management

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `startAt` | number | No | Pagination start index \(e.g., 0, 50\) |
| `maxResults` | number | No | Maximum schemas to return \(e.g., 25, 50\) |
| `includeCounts` | boolean | No | Include object and object-type counts per schema |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `schemas` | array | List of Assets object schemas |
|   ↳ `id` | string | Schema ID |
|   ↳ `name` | string | Schema name |
|   ↳ `objectSchemaKey` | string | Schema key |
|   ↳ `status` | string | Schema status |
|   ↳ `description` | string | Schema description |
|   ↳ `objectCount` | number | Number of objects |
|   ↳ `objectTypeCount` | number | Number of object types |
| `total` | number | Total number of schemas |
| `isLast` | boolean | Whether this is the last page |

### `jsm_get_object_schema`

Get a single Assets (Insight/CMDB) object schema by ID

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `schemaId` | string | Yes | The Assets object schema ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `schema` | json | The Assets object schema |
|   ↳ `id` | string | Schema ID |
|   ↳ `name` | string | Schema name |
|   ↳ `objectSchemaKey` | string | Schema key |
|   ↳ `status` | string | Schema status |
|   ↳ `description` | string | Schema description |
|   ↳ `objectCount` | number | Number of objects |
|   ↳ `objectTypeCount` | number | Number of object types |

### `jsm_list_object_types`

List object types within an Assets (Insight/CMDB) object schema

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `schemaId` | string | Yes | The Assets object schema ID to list object types for |
| `excludeAbstract` | boolean | No | Exclude abstract object types from the result |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `objectTypes` | array | List of object types in the schema |
|   ↳ `id` | string | Object type ID |
|   ↳ `name` | string | Object type name |
|   ↳ `description` | string | Object type description |
|   ↳ `objectSchemaId` | string | Parent schema ID |
|   ↳ `objectCount` | number | Number of objects |
|   ↳ `abstractObjectType` | boolean | Whether the type is abstract |
|   ↳ `inherited` | boolean | Whether the type inherits attributes |
| `total` | number | Total number of object types |

### `jsm_get_object_type_attributes`

Get the attribute definitions for an Assets (Insight/CMDB) object type. Use the returned attribute IDs to build create/update payloads or map columns.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `objectTypeId` | string | Yes | The Assets object type ID |
| `onlyValueEditable` | boolean | No | Return only attributes whose values can be edited |
| `query` | string | No | Filter attributes by a search query |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `attributes` | array | Attribute definitions for the object type |
|   ↳ `id` | string | Attribute definition ID — use as objectTypeAttributeId in create/update |
|   ↳ `name` | string | Attribute name |
|   ↳ `label` | boolean | Whether this attribute is the object label |
|   ↳ `type` | number | Data type discriminator \(integer enum\) |
|   ↳ `defaultType` | json | Default data type \{ id, name \} |
|   ↳ `editable` | boolean | Whether the value is editable |
|   ↳ `minimumCardinality` | number | Minimum number of values \(&gt;= 1 means required\) |
|   ↳ `maximumCardinality` | number | Maximum number of values |
|   ↳ `uniqueAttribute` | boolean | Whether values must be unique |
| `total` | number | Total number of attributes |

### `jsm_search_objects_aql`

Search Assets (Insight/CMDB) objects using AQL (Assets Query Language), e.g. objectType = "Host" AND Status = "Running". Supports pagination.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `qlQuery` | string | Yes | AQL query string \(e.g., objectType = "Host" AND "Operating System" = "Ubuntu"\) |
| `page` | number | No | Page number \(1-based, defaults to 1\) |
| `resultsPerPage` | number | No | Results per page \(e.g., 25, 50\) |
| `includeAttributes` | boolean | No | Include resolved attribute values on each object \(defaults to true\) |
| `objectTypeId` | string | No | Optionally scope the search to a single object type ID |
| `objectSchemaId` | string | No | Optionally scope the search to a single object schema ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `objects` | array | Matching Assets objects |
|   ↳ `id` | string | Object ID |
|   ↳ `label` | string | Object label |
|   ↳ `objectKey` | string | Object key \(e.g., HOST-123\) |
|   ↳ `objectType` | json | Object type metadata |
|   ↳ `attributes` | json | Resolved attribute values |
| `total` | number | Total number of matching objects \(totalFilterCount\) |
| `pageNumber` | number | Current page number |
| `pageSize` | number | Number of objects on this page |

### `jsm_get_object`

Get a single Assets (Insight/CMDB) object by ID, including its attribute values

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `objectId` | string | Yes | The Assets object ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `object` | json | The Assets object |
|   ↳ `id` | string | Object ID |
|   ↳ `label` | string | Human-readable object label |
|   ↳ `objectKey` | string | Object key \(e.g., HOST-123\) |
|   ↳ `globalId` | string | Global object ID |
|   ↳ `objectType` | json | Object type metadata |
|   ↳ `attributes` | json | Resolved attribute values for the object |
|   ↳ `hasAvatar` | boolean | Whether the object has an avatar |
|   ↳ `created` | string | Creation timestamp |
|   ↳ `updated` | string | Last update timestamp |
|   ↳ `link` | string | Self link to the object |

### `jsm_create_object`

Create an Assets (Insight/CMDB) object of a given object type. Attributes use objectTypeAttributeId values from the object type definition.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `objectTypeId` | string | Yes | The object type ID to create the object under |
| `attributes` | json | Yes | Array of attributes: \[\{ objectTypeAttributeId, objectAttributeValues: \[\{ value \}\] \}\] |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `object` | json | The created Assets object |
|   ↳ `id` | string | Object ID |
|   ↳ `label` | string | Human-readable object label |
|   ↳ `objectKey` | string | Object key \(e.g., HOST-123\) |
|   ↳ `globalId` | string | Global object ID |
|   ↳ `objectType` | json | Object type metadata |
|   ↳ `attributes` | json | Resolved attribute values for the object |
|   ↳ `hasAvatar` | boolean | Whether the object has an avatar |
|   ↳ `created` | string | Creation timestamp |
|   ↳ `updated` | string | Last update timestamp |
|   ↳ `link` | string | Self link to the object |

### `jsm_update_object`

Update an existing Assets (Insight/CMDB) object. Provide the attributes to change using their objectTypeAttributeId values.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `objectId` | string | Yes | The Assets object ID to update |
| `attributes` | json | Yes | Array of attributes to set: \[\{ objectTypeAttributeId, objectAttributeValues: \[\{ value \}\] \}\] |
| `objectTypeId` | string | No | Optional object type ID \(only if changing the type\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `object` | json | The updated Assets object |
|   ↳ `id` | string | Object ID |
|   ↳ `label` | string | Human-readable object label |
|   ↳ `objectKey` | string | Object key \(e.g., HOST-123\) |
|   ↳ `globalId` | string | Global object ID |
|   ↳ `objectType` | json | Object type metadata |
|   ↳ `attributes` | json | Resolved attribute values for the object |
|   ↳ `hasAvatar` | boolean | Whether the object has an avatar |
|   ↳ `created` | string | Creation timestamp |
|   ↳ `updated` | string | Last update timestamp |
|   ↳ `link` | string | Self link to the object |

### `jsm_delete_object`

Delete an Assets (Insight/CMDB) object by ID

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Yes | Your Jira domain \(e.g., yourcompany.atlassian.net\) |
| `cloudId` | string | No | Jira Cloud ID for the instance |
| `workspaceId` | string | No | Assets workspace ID \(resolved automatically when omitted\) |
| `objectId` | string | Yes | The Assets object ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `ts` | string | Timestamp of the operation |
| `objectId` | string | The deleted object ID |
| `deleted` | boolean | Whether the object was deleted |



## Triggers

A **Trigger** is a block that starts a workflow when an event happens in this service.

### JSM Request Commented

Trigger workflow when a comment is added to a Jira Service Management request

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature |
| `jqlFilter` | string | No | Filter which service desk requests trigger this workflow using JQL \(Jira Query Language\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, jira:issue_updated, comment_created\) |
| `timestamp` | number | Timestamp of the webhook event |
| `user` | object | user output from the tool |
|   ↳ `displayName` | string | Display name of the user who triggered the event |
|   ↳ `accountId` | string | Account ID of the user who triggered the event |
| `issue` | object | issue output from the tool |
|   ↳ `id` | string | Jira issue ID |
|   ↳ `key` | string | Issue key \(e.g., SD-123\) |
|   ↳ `self` | string | REST API URL for this issue |
|   ↳ `fields` | object | fields output from the tool |
|     ↳ `summary` | string | Request summary/title |
|     ↳ `status` | object | status output from the tool |
|       ↳ `name` | string | Current status name |
|       ↳ `id` | string | Status ID |
|       ↳ `statusCategory` | json | Status category information |
|     ↳ `priority` | object | priority output from the tool |
|       ↳ `name` | string | Priority name |
|       ↳ `id` | string | Priority ID |
|     ↳ `issuetype` | object | issuetype output from the tool |
|       ↳ `name` | string | Issue type name \(e.g., Service Request, Incident\) |
|       ↳ `id` | string | Issue type ID |
|     ↳ `project` | object | project output from the tool |
|       ↳ `key` | string | Project key |
|       ↳ `name` | string | Project name |
|       ↳ `id` | string | Project ID |
|     ↳ `reporter` | object | reporter output from the tool |
|       ↳ `displayName` | string | Reporter display name |
|       ↳ `accountId` | string | Reporter account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `assignee` | object | assignee output from the tool |
|       ↳ `displayName` | string | Assignee display name |
|       ↳ `accountId` | string | Assignee account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `creator` | object | creator output from the tool |
|       ↳ `displayName` | string | Creator display name |
|       ↳ `accountId` | string | Creator account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `created` | string | Request creation date \(ISO format\) |
|     ↳ `updated` | string | Last updated date \(ISO format\) |
|     ↳ `duedate` | string | Due date for the request |
|     ↳ `labels` | array | Array of labels applied to this request |
|     ↳ `resolution` | object | resolution output from the tool |
|       ↳ `name` | string | Resolution name \(e.g., Done, Fixed\) |
|       ↳ `id` | string | Resolution ID |
| `comment` | object | comment output from the tool |
|   ↳ `id` | string | Comment ID |
|   ↳ `body` | json | Comment body in Atlassian Document Format \(ADF\). On Jira Server this may be a plain string. |
|   ↳ `author` | object | author output from the tool |
|     ↳ `displayName` | string | Comment author display name |
|     ↳ `accountId` | string | Comment author account ID |
|     ↳ `emailAddress` | string | Comment author email address |
|   ↳ `updateAuthor` | object | updateAuthor output from the tool |
|     ↳ `displayName` | string | Display name of the user who last updated the comment |
|     ↳ `accountId` | string | Account ID of the user who last updated the comment |
|   ↳ `created` | string | Comment creation date \(ISO format\) |
|   ↳ `updated` | string | Comment last updated date \(ISO format\) |


---

### JSM Request Created

Trigger workflow when a new service request is created in Jira Service Management

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature |
| `jqlFilter` | string | No | Filter which service desk requests trigger this workflow using JQL \(Jira Query Language\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, jira:issue_updated, comment_created\) |
| `timestamp` | number | Timestamp of the webhook event |
| `user` | object | user output from the tool |
|   ↳ `displayName` | string | Display name of the user who triggered the event |
|   ↳ `accountId` | string | Account ID of the user who triggered the event |
| `issue` | object | issue output from the tool |
|   ↳ `id` | string | Jira issue ID |
|   ↳ `key` | string | Issue key \(e.g., SD-123\) |
|   ↳ `self` | string | REST API URL for this issue |
|   ↳ `fields` | object | fields output from the tool |
|     ↳ `summary` | string | Request summary/title |
|     ↳ `status` | object | status output from the tool |
|       ↳ `name` | string | Current status name |
|       ↳ `id` | string | Status ID |
|       ↳ `statusCategory` | json | Status category information |
|     ↳ `priority` | object | priority output from the tool |
|       ↳ `name` | string | Priority name |
|       ↳ `id` | string | Priority ID |
|     ↳ `issuetype` | object | issuetype output from the tool |
|       ↳ `name` | string | Issue type name \(e.g., Service Request, Incident\) |
|       ↳ `id` | string | Issue type ID |
|     ↳ `project` | object | project output from the tool |
|       ↳ `key` | string | Project key |
|       ↳ `name` | string | Project name |
|       ↳ `id` | string | Project ID |
|     ↳ `reporter` | object | reporter output from the tool |
|       ↳ `displayName` | string | Reporter display name |
|       ↳ `accountId` | string | Reporter account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `assignee` | object | assignee output from the tool |
|       ↳ `displayName` | string | Assignee display name |
|       ↳ `accountId` | string | Assignee account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `creator` | object | creator output from the tool |
|       ↳ `displayName` | string | Creator display name |
|       ↳ `accountId` | string | Creator account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `created` | string | Request creation date \(ISO format\) |
|     ↳ `updated` | string | Last updated date \(ISO format\) |
|     ↳ `duedate` | string | Due date for the request |
|     ↳ `labels` | array | Array of labels applied to this request |
|     ↳ `resolution` | object | resolution output from the tool |
|       ↳ `name` | string | Resolution name \(e.g., Done, Fixed\) |
|       ↳ `id` | string | Resolution ID |
| `issue_event_type_name` | string | Issue event type name from Jira |


---

### JSM Request Resolved

Trigger workflow when a service request is resolved in Jira Service Management

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature |
| `jqlFilter` | string | No | Filter which service desk requests trigger this workflow using JQL \(Jira Query Language\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, jira:issue_updated, comment_created\) |
| `timestamp` | number | Timestamp of the webhook event |
| `user` | object | user output from the tool |
|   ↳ `displayName` | string | Display name of the user who triggered the event |
|   ↳ `accountId` | string | Account ID of the user who triggered the event |
| `issue` | object | issue output from the tool |
|   ↳ `id` | string | Jira issue ID |
|   ↳ `key` | string | Issue key \(e.g., SD-123\) |
|   ↳ `self` | string | REST API URL for this issue |
|   ↳ `fields` | object | fields output from the tool |
|     ↳ `summary` | string | Request summary/title |
|     ↳ `status` | object | status output from the tool |
|       ↳ `name` | string | Current status name |
|       ↳ `id` | string | Status ID |
|       ↳ `statusCategory` | json | Status category information |
|     ↳ `priority` | object | priority output from the tool |
|       ↳ `name` | string | Priority name |
|       ↳ `id` | string | Priority ID |
|     ↳ `issuetype` | object | issuetype output from the tool |
|       ↳ `name` | string | Issue type name \(e.g., Service Request, Incident\) |
|       ↳ `id` | string | Issue type ID |
|     ↳ `project` | object | project output from the tool |
|       ↳ `key` | string | Project key |
|       ↳ `name` | string | Project name |
|       ↳ `id` | string | Project ID |
|     ↳ `reporter` | object | reporter output from the tool |
|       ↳ `displayName` | string | Reporter display name |
|       ↳ `accountId` | string | Reporter account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `assignee` | object | assignee output from the tool |
|       ↳ `displayName` | string | Assignee display name |
|       ↳ `accountId` | string | Assignee account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `creator` | object | creator output from the tool |
|       ↳ `displayName` | string | Creator display name |
|       ↳ `accountId` | string | Creator account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `created` | string | Request creation date \(ISO format\) |
|     ↳ `updated` | string | Last updated date \(ISO format\) |
|     ↳ `duedate` | string | Due date for the request |
|     ↳ `labels` | array | Array of labels applied to this request |
|     ↳ `resolution` | object | resolution output from the tool |
|       ↳ `name` | string | Resolution name \(e.g., Done, Fixed\) |
|       ↳ `id` | string | Resolution ID |
| `issue_event_type_name` | string | Issue event type name from Jira |
| `changelog` | object | changelog output from the tool |
|   ↳ `id` | string | Changelog ID |


---

### JSM Request Updated

Trigger workflow when a service request is updated in Jira Service Management

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature |
| `jqlFilter` | string | No | Filter which service desk requests trigger this workflow using JQL \(Jira Query Language\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `webhookEvent` | string | The webhook event type \(e.g., jira:issue_created, jira:issue_updated, comment_created\) |
| `timestamp` | number | Timestamp of the webhook event |
| `user` | object | user output from the tool |
|   ↳ `displayName` | string | Display name of the user who triggered the event |
|   ↳ `accountId` | string | Account ID of the user who triggered the event |
| `issue` | object | issue output from the tool |
|   ↳ `id` | string | Jira issue ID |
|   ↳ `key` | string | Issue key \(e.g., SD-123\) |
|   ↳ `self` | string | REST API URL for this issue |
|   ↳ `fields` | object | fields output from the tool |
|     ↳ `summary` | string | Request summary/title |
|     ↳ `status` | object | status output from the tool |
|       ↳ `name` | string | Current status name |
|       ↳ `id` | string | Status ID |
|       ↳ `statusCategory` | json | Status category information |
|     ↳ `priority` | object | priority output from the tool |
|       ↳ `name` | string | Priority name |
|       ↳ `id` | string | Priority ID |
|     ↳ `issuetype` | object | issuetype output from the tool |
|       ↳ `name` | string | Issue type name \(e.g., Service Request, Incident\) |
|       ↳ `id` | string | Issue type ID |
|     ↳ `project` | object | project output from the tool |
|       ↳ `key` | string | Project key |
|       ↳ `name` | string | Project name |
|       ↳ `id` | string | Project ID |
|     ↳ `reporter` | object | reporter output from the tool |
|       ↳ `displayName` | string | Reporter display name |
|       ↳ `accountId` | string | Reporter account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `assignee` | object | assignee output from the tool |
|       ↳ `displayName` | string | Assignee display name |
|       ↳ `accountId` | string | Assignee account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `creator` | object | creator output from the tool |
|       ↳ `displayName` | string | Creator display name |
|       ↳ `accountId` | string | Creator account ID |
|       ↳ `emailAddress` | string | Email address \(Jira Server only — not available in Jira Cloud webhook payloads\) |
|     ↳ `created` | string | Request creation date \(ISO format\) |
|     ↳ `updated` | string | Last updated date \(ISO format\) |
|     ↳ `duedate` | string | Due date for the request |
|     ↳ `labels` | array | Array of labels applied to this request |
|     ↳ `resolution` | object | resolution output from the tool |
|       ↳ `name` | string | Resolution name \(e.g., Done, Fixed\) |
|       ↳ `id` | string | Resolution ID |
| `issue_event_type_name` | string | Issue event type name from Jira |
| `changelog` | object | changelog output from the tool |
|   ↳ `id` | string | Changelog ID |


---

### JSM Webhook (All Events)

Trigger workflow on any Jira Service Management webhook event

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `webhookSecret` | string | No | Optional secret to validate webhook deliveries from Jira using HMAC signature |
| `jqlFilter` | string | No | Filter which service desk requests trigger this workflow using JQL \(Jira Query Language\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `changelog` | object | changelog output from the tool |
|   ↳ `id` | string | Changelog ID |
| `comment` | object | comment output from the tool |
|   ↳ `id` | string | Comment ID |
|   ↳ `body` | json | Comment body in Atlassian Document Format \(ADF\). On Jira Server this may be a plain string. |
|   ↳ `author` | object | author output from the tool |
|     ↳ `displayName` | string | Comment author display name |
|     ↳ `accountId` | string | Comment author account ID |
|     ↳ `emailAddress` | string | Comment author email address |
|   ↳ `created` | string | Comment creation date \(ISO format\) |
|   ↳ `updated` | string | Comment last updated date \(ISO format\) |

