Jira Service Management
Connect Jira Service Management to Squid to search, create, and manage service desk requests
The Jira Service Management connector's functionality
The Jira Service Management (JSM) connector enables Squid AI agents to work with service desk requests on the user's behalf:
| Capability | Description |
|---|---|
| Search requests | Text search of service desk requests, optionally filtered by service desk and status |
| Get request details | Full request details including status, priority, reporter, assignee, SLAs, comments, and attachments |
| Semantic search | Natural-language search over indexed requests, including finding related or similar requests |
| Create requests | Create a new request in a service desk, optionally on behalf of a customer |
| Update requests | Update a request's summary, description, priority, or assignee |
| Comment | Add public or internal comments to a request |
| Transition requests | Move a request through its workflow (for example, resolve or close it) |
| List service desks and request types | Discover the service desks and request types available in your instance |
When Index Requests is enabled, Squid syncs your service desk requests into a knowledge base every 10 minutes, enabling the semantic search and related-request features.
Use the Jira connector for engineering and project issue tracking (issues, projects, JQL). Use the Jira Service Management connector for customer or employee support workflows — it works with service desks, request types, customers, SLAs, and public-versus-internal comments.
Setting up authentication
The connector supports two authentication modes:
-
API Key (default): Create an Atlassian API token by following Atlassian's documentation on managing API tokens. You'll provide the token together with the email address of the Atlassian account it belongs to.
-
OAuth 2.0: Create an OAuth 2.0 (3LO) app in the Atlassian developer console with the scopes
read:jira-work,write:jira-work,read:servicedesk-request,write:servicedesk-request, andoffline_access, and register a redirect URI.
Adding the Jira Service Management connector to your Squid application
-
Navigate to the Connectors tab in the Squid Console.
-
Click Available Connectors.
-
Find the Jira Service Management connector, and select Add Connector.
-
Provide the following configuration details:
Connector ID: A string that uniquely identifies the connector in your code.
Subdomain: The subdomain of your Jira instance. For example, if your instance is at https://mycompany.atlassian.net, enter mycompany.
Authentication Mode: Either API Key (email + API token) or OAuth 2.0.
When using API Key mode:
- API Key: Your Atlassian API token, stored securely as a Squid secret.
- Email: The email address associated with the API token.
When using OAuth 2.0 mode:
- Client ID: Your OAuth 2.0 Client ID from the Atlassian developer console.
- Client Secret: Your OAuth 2.0 client secret, used for server-side token exchange. Stored securely as a Squid secret.
- Redirect URI: The OAuth 2.0 redirect URI registered in the Atlassian developer console.
Additional options for both modes:
Cloud ID: Optional. Your Atlassian Cloud ID, required when the instance cannot be accessed via its subdomain. When set, API calls are routed through api.atlassian.com.
Index Requests: Enable semantic search and similarity features for service desk requests.
Service Desk IDs to Index: A comma-separated list of service desk IDs to index. Leave empty to index all service desks.
Request History Days: The number of days of request history to sync. Defaults to 30.
The semantic search features require Index Requests to be enabled. After enabling it, allow some time for the initial sync to complete.
Using the Jira Service Management connector in your application
No-code Studio
-
Navigate to the Studio tab in the Squid Console.
-
Click Create AI Agent.
-
Provide an agent ID and description, such as "helpdesk-agent" and "This agent helps the user manage service desk requests".
-
Click Add Abilities.
-
Expand the Jira Service Management entry and select the connector you created earlier.
-
Give a description for how the agent should use this connection, such as "Call this when a user wants to look up or manage service desk requests."
-
Click on Test and try asking the agent "What are the open requests in the IT service desk?".
Using the Squid SDK
If you are creating your AI agent with the Squid SDK, connect the connector by adding it to the connectedIntegrations option of the ask() function:
- TypeScript
- Python
await this.squid
.ai()
.agent('AGENT_ID')
.ask('Create a request for a new laptop in the IT service desk', {
connectedIntegrations: [
{
integrationId: 'JSM_CONNECTOR_ID',
integrationType: 'jira_jsm',
description: 'Call this connector to manage Jira Service Management requests',
},
],
});
await squid.ai().agent('AGENT_ID').ask(
'Create a request for a new laptop in the IT service desk',
options={
'connectedIntegrations': [
{
'integrationId': 'JSM_CONNECTOR_ID',
'integrationType': 'jira_jsm',
'description': 'Call this connector to manage Jira Service Management requests',
}
]
},
)
Using the npm package
For programmatic (non-agent) access from your backend or client code, install the @squidcloud/jira-jsm-client package:
npm install @squidcloud/jira-jsm-client
import { SquidJiraJsmClient } from '@squidcloud/jira-jsm-client';
const jsm = new SquidJiraJsmClient(squid, 'JSM_CONNECTOR_ID');
// Discover service desks and request types
const serviceDesks = await jsm.listServiceDesks();
const requestTypes = await jsm.listRequestTypes(serviceDesks[0].id);
// Create and comment on a request
const request = await jsm.createRequest({
serviceDeskId: serviceDesks[0].id,
requestTypeId: requestTypes[0].id,
summary: 'New laptop request',
});
await jsm.addComment(request.issueKey, 'Ordered, arriving next week.', true);