# Jira Service Management (/integrations/jira_service_management)





{/* MANUAL-CONTENT-START:intro */}

Use [Jira Service Management](https://www.atlassian.com/software/jira/service-management) in Sim to manage service requests, customers, organizations, SLAs, and queues. The actions below document the supported service-desk operations and their required fields.

{/* MANUAL-CONTENT-END */}

## OAuth scopes [#oauth-scopes]

Sim requests these scopes when someone connects a Jira account. For a self-hosted deployment, register your own app with the provider using the settings below. See [Integrations and OAuth](/platform/self-hosting/integrations-oauth) for setup.

| Setting | Value |
| - | - |
| Redirect URI | `<NEXT_PUBLIC_APP_URL>/api/auth/oauth2/callback/jira` |
| Environment variables | `JIRA_CLIENT_ID`, `JIRA_CLIENT_SECRET` |

| Scope | Description |
| - | - |
| `read:jira-user` | View Jira user profiles, including email addresses |
| `read:jira-work` | View Jira projects and issues, and search issues |
| `write:jira-work` | Create, edit, and delete Jira issues, comments, and worklogs |
| `read:me` | Read profile information |
| `offline_access` | Access account when not using the application |
| `read:issue.vote:jira` | Read Jira issue votes |
| `read:user:jira` | View Jira users |
| `delete:issue:jira` | Delete Jira issues |
| `delete:comment:jira` | Delete comments from Jira issues |
| `delete:attachment:jira` | Delete attachments from Jira issues |
| `delete:issue-worklog:jira` | Delete worklog entries from Jira issues |
| `delete:issue-link:jira` | Delete links between Jira issues |
| `read:servicedesk-request` | View service desk requests |
| `write:servicedesk-request` | Create and update service desk requests |
| `manage:servicedesk-customer` | Manage service desk customers and organizations |
| `read:servicedesk:jira-service-management` | View service desks and their settings |
| `read:requesttype:jira-service-management` | View request types available in service desks |
| `read:request:jira-service-management` | View customer requests in service desks |
| `write:request:jira-service-management` | Create customer requests in service desks |
| `read:request.comment:jira-service-management` | View comments on customer requests |
| `write:request.comment:jira-service-management` | Add comments to customer requests |
| `read:servicedesk.customer:jira-service-management` | View customers linked to service desks |
| `write:servicedesk.customer:jira-service-management` | Add and remove customers from service desks |
| `read:organization:jira-service-management` | View organizations |
| `write:organization:jira-service-management` | Create and manage organizations |
| `read:servicedesk.organization:jira-service-management` | View organizations linked to service desks |
| `write:servicedesk.organization:jira-service-management` | Add and remove organizations from service desks |
| `read:queue:jira-service-management` | View service desk queues and their issues |
| `read:request.sla:jira-service-management` | View SLA information for customer requests |
| `read:request.status:jira-service-management` | View status of customer requests |
| `write:request.status:jira-service-management` | Transition customer request status |
| `read:request.participant:jira-service-management` | View participants on customer requests |
| `write:request.participant:jira-service-management` | Add and remove participants from customer requests |
| `read:request.approval:jira-service-management` | View approvals on customer requests |
| `write:request.approval:jira-service-management` | Approve or decline customer requests |
| `read:cmdb-object:jira` | View Assets objects and run AQL searches |
| `write:cmdb-object:jira` | Create and update Assets objects |
| `delete:cmdb-object:jira` | Delete Assets objects |
| `read:cmdb-schema:jira` | View Assets object schemas |
| `read:cmdb-type:jira` | View Assets object types |
| `read:cmdb-attribute:jira` | View Assets object type attributes |

## Use the block [#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 [#actions]

### JSM Get Service Desks [#jsm-get-service-desks]

Get all service desks from Jira Service Management

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#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 |
</ReferenceDetails>

### JSM Get Request Types [#jsm-get-request-types]

Get request types for a service desk in Jira Service Management

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-1]

  | 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 |
</ReferenceDetails>

### JSM Create Request [#jsm-create-request]

Create a new service request in Jira Service Management

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-2]

  | 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 |
</ReferenceDetails>

### JSM Get Request [#jsm-get-request]

Get a single service request from Jira Service Management

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-3]

  | 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 |
</ReferenceDetails>

### JSM Get Requests [#jsm-get-requests]

Get multiple service requests from Jira Service Management

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-4]

  | 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 |
</ReferenceDetails>

### JSM Add Comment [#jsm-add-comment]

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

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-5]

  | 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 |
</ReferenceDetails>

### JSM Get Comments [#jsm-get-comments]

Get comments for a service request in Jira Service Management

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-6]

  | 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 |
</ReferenceDetails>

### JSM Get Customers [#jsm-get-customers]

Get customers for a service desk in Jira Service Management

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-7]

  | 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 |
</ReferenceDetails>

### JSM Add Customer [#jsm-add-customer]

Add customers to a service desk in Jira Service Management

<ReferenceDetails>
  #### Input [#input-8]

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

  #### Output [#output-8]

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

### JSM Get Organizations [#jsm-get-organizations]

Get organizations for a service desk in Jira Service Management

<ReferenceDetails>
  #### Input [#input-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-9]

  | 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 |
</ReferenceDetails>

### JSM Create Organization [#jsm-create-organization]

Create a new organization in Jira Service Management

<ReferenceDetails>
  #### Input [#input-10]

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

  #### Output [#output-10]

  | 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 |
</ReferenceDetails>

### JSM Add Organization [#jsm-add-organization]

Add an organization to a service desk in Jira Service Management

<ReferenceDetails>
  #### Input [#input-11]

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

  #### Output [#output-11]

  | 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 |
</ReferenceDetails>

### JSM Get Queues [#jsm-get-queues]

Get queues for a service desk in Jira Service Management

<ReferenceDetails>
  #### Input [#input-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-12]

  | 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 |
</ReferenceDetails>

### JSM Get SLA [#jsm-get-sla]

Get SLA information for a service request in Jira Service Management

<ReferenceDetails>
  #### Input [#input-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-13]

  | 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 |
</ReferenceDetails>

### JSM Get Transitions [#jsm-get-transitions]

Get available transitions for a service request in Jira Service Management

<ReferenceDetails>
  #### Input [#input-14]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-14]

  | 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 |
</ReferenceDetails>

### JSM Transition Request [#jsm-transition-request]

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

<ReferenceDetails>
  #### Input [#input-15]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-15]

  | 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 |
</ReferenceDetails>

### JSM Get Participants [#jsm-get-participants]

Get participants for a request in Jira Service Management

<ReferenceDetails>
  #### Input [#input-16]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-16]

  | 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 |
</ReferenceDetails>

### JSM Add Participants [#jsm-add-participants]

Add participants to a request in Jira Service Management

<ReferenceDetails>
  #### Input [#input-17]

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

  #### Output [#output-17]

  | 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 |
</ReferenceDetails>

### JSM Get Approvals [#jsm-get-approvals]

Get approvals for a request in Jira Service Management

<ReferenceDetails>
  #### Input [#input-18]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-18]

  | 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 |
</ReferenceDetails>

### JSM Answer Approval [#jsm-answer-approval]

Approve or decline an approval request in Jira Service Management

<ReferenceDetails>
  #### Input [#input-19]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-19]

  | 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 |
</ReferenceDetails>

### JSM Get Request Type Fields [#jsm-get-request-type-fields]

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

<ReferenceDetails>
  #### Input [#input-20]

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

  #### Output [#output-20]

  | 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 |
</ReferenceDetails>

### JSM Get Form Templates [#jsm-get-form-templates]

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

<ReferenceDetails>
  #### Input [#input-21]

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

  #### Output [#output-21]

  | 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 |
</ReferenceDetails>

### JSM Get Form Structure [#jsm-get-form-structure]

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

<ReferenceDetails>
  #### Input [#input-22]

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

  #### Output [#output-22]

  | 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 |
</ReferenceDetails>

### JSM Get Issue Forms [#jsm-get-issue-forms]

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

<ReferenceDetails>
  #### Input [#input-23]

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

  #### Output [#output-23]

  | 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 |
</ReferenceDetails>

### JSM Attach Form [#jsm-attach-form]

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

<ReferenceDetails>
  #### Input [#input-24]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-24]

  | 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 |
</ReferenceDetails>

### JSM Save Form Answers [#jsm-save-form-answers]

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

<ReferenceDetails>
  #### Input [#input-25]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-25]

  | 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 |
</ReferenceDetails>

### JSM Submit Form [#jsm-submit-form]

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

<ReferenceDetails>
  #### Input [#input-26]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-26]

  | 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) |
</ReferenceDetails>

### JSM Get Form [#jsm-get-form]

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

<ReferenceDetails>
  #### Input [#input-27]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-27]

  | 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 |
</ReferenceDetails>

### JSM Get Form Answers [#jsm-get-form-answers]

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

<ReferenceDetails>
  #### Input [#input-28]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-28]

  | 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) |
</ReferenceDetails>

### JSM Reopen Form [#jsm-reopen-form]

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

<ReferenceDetails>
  #### Input [#input-29]

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

  #### Output [#output-29]

  | 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) |
</ReferenceDetails>

### JSM Delete Form [#jsm-delete-form]

Remove a form from a Jira issue or JSM request

<ReferenceDetails>
  #### Input [#input-30]

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

  #### Output [#output-30]

  | 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 |
</ReferenceDetails>

### JSM Externalise Form [#jsm-externalise-form]

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

<ReferenceDetails>
  #### Input [#input-31]

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

  #### Output [#output-31]

  | 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) |
</ReferenceDetails>

### JSM Internalise Form [#jsm-internalise-form]

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

<ReferenceDetails>
  #### Input [#input-32]

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

  #### Output [#output-32]

  | 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) |
</ReferenceDetails>

### JSM Copy Forms [#jsm-copy-forms]

Copy forms from one Jira issue to another

<ReferenceDetails>
  #### Input [#input-33]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-33]

  | 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 |
</ReferenceDetails>

### JSM List Asset Schemas [#jsm-list-asset-schemas]

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

<ReferenceDetails>
  #### Input [#input-34]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-34]

  | 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 |
</ReferenceDetails>

### JSM Get Asset Schema [#jsm-get-asset-schema]

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

<ReferenceDetails>
  #### Input [#input-35]

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

  #### Output [#output-35]

  | 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 |
</ReferenceDetails>

### JSM List Asset Object Types [#jsm-list-asset-object-types]

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

<ReferenceDetails>
  #### Input [#input-36]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-36]

  | 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 |
</ReferenceDetails>

### JSM Get Asset Object Type Attributes [#jsm-get-asset-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.

<ReferenceDetails>
  #### Input [#input-37]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-37]

  | 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 (>= 1 means required) |
  | ↳ `maximumCardinality` | number | Maximum number of values |
  | ↳ `uniqueAttribute` | boolean | Whether values must be unique |
  | `total` | number | Total number of attributes |
</ReferenceDetails>

### JSM Search Assets (AQL) [#jsm-search-assets-aql]

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

<ReferenceDetails>
  #### Input [#input-38]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-38]

  | 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 |
</ReferenceDetails>

### JSM Get Asset Object [#jsm-get-asset-object]

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

<ReferenceDetails>
  #### Input [#input-39]

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

  #### Output [#output-39]

  | 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 |
</ReferenceDetails>

### JSM Create Asset Object [#jsm-create-asset-object]

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

<ReferenceDetails>
  #### Input [#input-40]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-40]

  | 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 |
</ReferenceDetails>

### JSM Update Asset Object [#jsm-update-asset-object]

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

<ReferenceDetails>
  #### Input [#input-41]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `domain` | string | Yes | Your Jira domain (e.g., yourcompany.atlassian.net) |
  | `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 [#output-41]

  | 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 |
</ReferenceDetails>

### JSM Delete Asset Object [#jsm-delete-asset-object]

Delete an Assets (Insight/CMDB) object by ID

<ReferenceDetails>
  #### Input [#input-42]

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

  #### Output [#output-42]

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

## Triggers [#triggers]

A trigger starts a workflow when a supported event occurs in this service.

### JSM Request Commented [#jsm-request-commented]

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

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#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 [#output-43]

  | 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 | |
  | ↳ `displayName` | string | Display name of the user who triggered the event |
  | ↳ `accountId` | string | Account ID of the user who triggered the event |
  | `issue` | object | |
  | ↳ `id` | string | Jira issue ID |
  | ↳ `key` | string | Issue key (e.g., SD-123) |
  | ↳ `self` | string | REST API URL for this issue |
  | ↳ `fields` | object | |
  | ↳ `summary` | string | Request summary/title |
  | ↳ `status` | object | |
  | ↳ `name` | string | Current status name |
  | ↳ `id` | string | Status ID |
  | ↳ `statusCategory` | json | Status category information |
  | ↳ `priority` | object | |
  | ↳ `name` | string | Priority name |
  | ↳ `id` | string | Priority ID |
  | ↳ `issuetype` | object | |
  | ↳ `name` | string | Issue type name (e.g., Service Request, Incident) |
  | ↳ `id` | string | Issue type ID |
  | ↳ `project` | object | |
  | ↳ `key` | string | Project key |
  | ↳ `name` | string | Project name |
  | ↳ `id` | string | Project ID |
  | ↳ `reporter` | object | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `name` | string | Resolution name (e.g., Done, Fixed) |
  | ↳ `id` | string | Resolution ID |
  | `comment` | object | |
  | ↳ `id` | string | Comment ID |
  | ↳ `body` | json | Comment body in Atlassian Document Format (ADF). On Jira Server this may be a plain string. |
  | ↳ `author` | object | |
  | ↳ `displayName` | string | Comment author display name |
  | ↳ `accountId` | string | Comment author account ID |
  | ↳ `emailAddress` | string | Comment author email address |
  | ↳ `updateAuthor` | object | |
  | ↳ `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) |
</ReferenceDetails>

### JSM Request Created [#jsm-request-created]

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

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-1]

  | 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 [#output-44]

  | 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 | |
  | ↳ `displayName` | string | Display name of the user who triggered the event |
  | ↳ `accountId` | string | Account ID of the user who triggered the event |
  | `issue` | object | |
  | ↳ `id` | string | Jira issue ID |
  | ↳ `key` | string | Issue key (e.g., SD-123) |
  | ↳ `self` | string | REST API URL for this issue |
  | ↳ `fields` | object | |
  | ↳ `summary` | string | Request summary/title |
  | ↳ `status` | object | |
  | ↳ `name` | string | Current status name |
  | ↳ `id` | string | Status ID |
  | ↳ `statusCategory` | json | Status category information |
  | ↳ `priority` | object | |
  | ↳ `name` | string | Priority name |
  | ↳ `id` | string | Priority ID |
  | ↳ `issuetype` | object | |
  | ↳ `name` | string | Issue type name (e.g., Service Request, Incident) |
  | ↳ `id` | string | Issue type ID |
  | ↳ `project` | object | |
  | ↳ `key` | string | Project key |
  | ↳ `name` | string | Project name |
  | ↳ `id` | string | Project ID |
  | ↳ `reporter` | object | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `name` | string | Resolution name (e.g., Done, Fixed) |
  | ↳ `id` | string | Resolution ID |
  | `issue_event_type_name` | string | Issue event type name from Jira |
</ReferenceDetails>

### JSM Request Resolved [#jsm-request-resolved]

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

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-2]

  | 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 [#output-45]

  | 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 | |
  | ↳ `displayName` | string | Display name of the user who triggered the event |
  | ↳ `accountId` | string | Account ID of the user who triggered the event |
  | `issue` | object | |
  | ↳ `id` | string | Jira issue ID |
  | ↳ `key` | string | Issue key (e.g., SD-123) |
  | ↳ `self` | string | REST API URL for this issue |
  | ↳ `fields` | object | |
  | ↳ `summary` | string | Request summary/title |
  | ↳ `status` | object | |
  | ↳ `name` | string | Current status name |
  | ↳ `id` | string | Status ID |
  | ↳ `statusCategory` | json | Status category information |
  | ↳ `priority` | object | |
  | ↳ `name` | string | Priority name |
  | ↳ `id` | string | Priority ID |
  | ↳ `issuetype` | object | |
  | ↳ `name` | string | Issue type name (e.g., Service Request, Incident) |
  | ↳ `id` | string | Issue type ID |
  | ↳ `project` | object | |
  | ↳ `key` | string | Project key |
  | ↳ `name` | string | Project name |
  | ↳ `id` | string | Project ID |
  | ↳ `reporter` | object | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `id` | string | Changelog ID |
</ReferenceDetails>

### JSM Request Updated [#jsm-request-updated]

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

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-3]

  | 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 [#output-46]

  | 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 | |
  | ↳ `displayName` | string | Display name of the user who triggered the event |
  | ↳ `accountId` | string | Account ID of the user who triggered the event |
  | `issue` | object | |
  | ↳ `id` | string | Jira issue ID |
  | ↳ `key` | string | Issue key (e.g., SD-123) |
  | ↳ `self` | string | REST API URL for this issue |
  | ↳ `fields` | object | |
  | ↳ `summary` | string | Request summary/title |
  | ↳ `status` | object | |
  | ↳ `name` | string | Current status name |
  | ↳ `id` | string | Status ID |
  | ↳ `statusCategory` | json | Status category information |
  | ↳ `priority` | object | |
  | ↳ `name` | string | Priority name |
  | ↳ `id` | string | Priority ID |
  | ↳ `issuetype` | object | |
  | ↳ `name` | string | Issue type name (e.g., Service Request, Incident) |
  | ↳ `id` | string | Issue type ID |
  | ↳ `project` | object | |
  | ↳ `key` | string | Project key |
  | ↳ `name` | string | Project name |
  | ↳ `id` | string | Project ID |
  | ↳ `reporter` | object | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `id` | string | Changelog ID |
</ReferenceDetails>

### JSM Webhook (All Events) [#jsm-webhook-all-events]

Trigger workflow on any Jira Service Management webhook event

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-4]

  | 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 [#output-47]

  | 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 | |
  | ↳ `displayName` | string | Display name of the user who triggered the event |
  | ↳ `accountId` | string | Account ID of the user who triggered the event |
  | `issue` | object | |
  | ↳ `id` | string | Jira issue ID |
  | ↳ `key` | string | Issue key (e.g., SD-123) |
  | ↳ `self` | string | REST API URL for this issue |
  | ↳ `fields` | object | |
  | ↳ `summary` | string | Request summary/title |
  | ↳ `status` | object | |
  | ↳ `name` | string | Current status name |
  | ↳ `id` | string | Status ID |
  | ↳ `statusCategory` | json | Status category information |
  | ↳ `priority` | object | |
  | ↳ `name` | string | Priority name |
  | ↳ `id` | string | Priority ID |
  | ↳ `issuetype` | object | |
  | ↳ `name` | string | Issue type name (e.g., Service Request, Incident) |
  | ↳ `id` | string | Issue type ID |
  | ↳ `project` | object | |
  | ↳ `key` | string | Project key |
  | ↳ `name` | string | Project name |
  | ↳ `id` | string | Project ID |
  | ↳ `reporter` | object | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `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 | |
  | ↳ `id` | string | Changelog ID |
  | `comment` | object | |
  | ↳ `id` | string | Comment ID |
  | ↳ `body` | json | Comment body in Atlassian Document Format (ADF). On Jira Server this may be a plain string. |
  | ↳ `author` | object | |
  | ↳ `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) |
</ReferenceDetails>
