Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The Jira Cloud Microsoft 365 Copilot connector allows your organization to index Jira issues. After you configure the connector and index content from the Jira site, users can search for those items in Microsoft Search and Microsoft 365 Copilot experiences.
This article describes the steps to deploy and customize the Jira Cloud connector.
Important
The Jira Cloud Copilot connector supports only Jira cloud-hosted instances. This connector doesn't support Jira Server and Jira Data Center versions.
For Jira Cloud service configuration information, see Set up the Jira Cloud service for connector ingestion.
Prerequisites
Before you deploy the connector, make sure that you meet the following prerequisites:
- You must be the search admin for your organization's Microsoft 365 tenant.
- You completed the steps to Set up the Jira Cloud service for connector ingestion.
- You have the Jira Cloud instance URL.
- You have the authentication values for the authentication method that you plan to use:
- Basic authentication: Jira username and API token.
- OAuth 2.0: Client ID and client secret.
Deploy the connector
To add the Jira Cloud connector for your organization:
- In the Microsoft 365 admin center, in the left pane, select Copilot > Connectors.
- Go to the Connectors tab, and in the left pane, select Gallery.
- From the list of available connectors, select Jira Cloud.
Set display name
The display name is used to identify references in Copilot responses to help users recognize the associated file or item. The display name also signifies trusted content and is used as a content source filter.
You can accept the default Jira Cloud display name, or customize the value to use a display name that users in your organization recognize.
For more information about connector display names and descriptions, see Enhance Copilot discovery with Microsoft 365 Copilot connectors content.
Set instance URL
To connect to your Jira cloud data, enter your organization's Jira instance URL. The URL is typically https://<your-organization-domain>.atlassian.net.
Choose authentication type
Choose one of the following supported authentication methods:
- Basic authentication: Enter the Jira username and API token for the service account that you prepared in Jira Cloud.
- Atlassian Jira OAuth 2.0 (recommended): Enter the client ID and client secret from the OAuth 2.0 app that you created in Atlassian.
Roll out
To roll out to a limited audience, choose the toggle next to Rollout to limited audience and specify the users and groups to roll the connector out to. For more information, see Staged rollout for Microsoft 365 Copilot connectors.
Choose Create to deploy the connection. The Jira Cloud Copilot connector starts indexing content right away.
The following are the default values for the connector:
Users
- Access permissions: Only people with access to content in Data source.
- Map identities: Data source identities mapped using Microsoft Entra IDs.
Content
- Site projects: All projects are indexed.
- Filter data: All issues are indexed. No time filter or JQL criteria is applied.
- Manage Properties: To check default properties and their schema, see Customize content settings
Sync
- Incremental crawl: Frequency: Every 15 mins
- Full crawl: Frequency: Every day
After you create your connection, you can review the status in the Connectors section of the Microsoft 365 admin center.
Customize settings (optional)
You can customize the default values for the Jira Cloud connector settings. To customize settings, on the connector page in the admin center, choose Custom setup.
Customize user settings
Access permissions
The Jira Cloud Copilot connector supports search permissions visible to Everyone or Only people with access to this data source. If you choose Everyone, indexed data appears in the search results for all users. If you choose Only people with access to this data source, indexed data appears in the search results for users who have access to them.
In Atlassian Jira, security permissions are defined using project permission schemes containing site-level groups and project roles. Issue-level security can also be defined using issue-level permission schemes.
For the Jira-side permission and profile visibility requirements that support this setting, see Set up the Jira Cloud service for connector ingestion.
Map identities
The default method for mapping your data source identities with Microsoft Entra ID is to make the email ID of Jira users the same as the user principal name (UPN) or email address of the users in Microsoft Entra ID. If the default mapping doesn't work for your organization, you can provide a custom mapping formula. For more information, see Map your non-Microsoft Entra ID identities.
- Choose the Microsoft Entra ID option if the email ID of Jira users is the same as the UPN of users in Microsoft Entra ID.
- Choose the Non-Microsoft Entra ID option if the email ID of Jira users is different from the UPN and email of users in Entra ID.
Note
Updates to groups that govern access permissions are synced in full crawls only. Incremental crawls don't support the processing of updates to permissions.
Customize content settings
Choose projects and filter data
Site projects: You can choose for the connection to index either the entire Jira site or specific projects only.
- If you choose to index the entire Jira site, Jira issues in all projects on the site are indexed. New projects and issues are indexed during the next crawl after they're created.
- If you choose individual projects, only Jira issues in the selected projects are indexed.
Note
When you grant the Browse projects permission to a Jira project, the project is listed in the project selection and can be crawled. If a project is missing, check the permissions for your account.
Filter data: You can choose to filter the Jira issues that are indexed in two ways:
- Specify the issue modified time period. This option only indexes the Jira issues that are created or modified in the time period selected on a rolling basis based on the current crawl.
- Use the JQL filter to index only specific Jira issue types by using
issueType in (Bug, Improvement).
Manage properties
You can add or remove available properties from your Jira data source, assign a schema to the property (define whether a property is searchable, queryable, retrievable, or refinable), change the semantic label, and add an alias to the property. The following table lists the properties that are selected by default.
| Property | Label | Description | Attributes |
|---|---|---|---|
| Authors | Authors | Name all the people who participated/collaborated on the item | Retrieve |
| Created | Created date time | Date and time that the item was created in the data source | Query, Retrieve |
| IssueDescription | Content | The description of the issue | Search |
| IssueIconURL | IconUrl | Icon url that represents the issue type | Retrieve |
| IssueId | |||
| IssueKey | |||
| IssueLink | url | The target URL of the item in the data source | Query, Retrieve |
| IssueStatus | Query | ||
| IssueSummary | |||
| ProjectName | Query | ||
| ReporterEmailId | Created by | Retrieve | |
| ReporterName | Query, Retrieve | ||
| Title | Title | The title of the item that you want shown in Copilot and other search experiences | Search, Query, Retrieve |
| Updated | Last modified date time | Date and time the item was last modified in the data source | Query, Retrieve |
Note
- The Jira Cloud Copilot connector can index both default issue fields and custom-created issue fields.
- If a selected custom-created field isn't present in some Jira issue type, the field is ingested as NULL (blank).
- The list of properties that you select affects how users can filter, search, and view results in Copilot.
Manage customized properties
To manage customized properties, ensure the following conditions are met:
- Name is not empty and not composed only of whitespace.
- Key is not empty and contains an underscore ("_").
- Data type is supported:
- Non-array types: string, date, datetime, number, option
- Array types: string, option, user
- Name does not start with "label_" or "Refinable" (reserved system prefixes).
- Name length is less than or equal to 26 characters.
- Name contains only letters and numbers (no special characters).
Users can access https://<your-organization-domain>.atlassian.net/rest/api/2/field and review the returned data.
Preview data
Use the preview results button to verify the sample values of the selected properties and query filter.
Customize sync intervals
The refresh interval determines how often your data is synced between the data source and the Jira Cloud Copilot connector index. The following are the two types of refresh intervals:
- Incremental crawl: Every 15 mins
- Full crawl: Every day
You can change the default values of the refresh interval. For more information, see Guidelines for crawl settings.
API endpoints
The following table lists the API endpoints that the connector calls to crawl data and the permissions required for each endpoint.
| HTTP Method | Endpoint | OAuth 2.0 Scope | Used For |
|---|---|---|---|
| GET | /rest/api/3/mypermissions |
read:permission:jira |
Verify user permissions |
| GET | /rest/api/2/field |
read:field:jira, read:avatar:jira, read:project-category:jira, read:project:jira, read:field-configuration:jira |
Get issue fields metadata |
| GET | /rest/api/2/search?jql={0}&startAt={1}&maxResults={2}&fields={3}&expand=renderedFields,changelog |
read:issue-details:jira,read:jql:jira,read:issue-meta:jira, read:issue.changelog:jira |
Search issues with JQL, rendered fields, and changelog |
| GET | /rest/api/3/search/jql |
read:issue-details:jira, read:jql:jira, read:group:jira, read:field:jira |
JQL search (v3) |
| GET | /rest/api/3/search/jql?jql=id={0}&fields=attachment,comment&maxResults=1 |
read:issue-details:jira, read:jql:jira, read:attachment:jira, read:comment:jira, read:comment.property:jira |
Get issue comments and attachments in single call |
| GET | /rest/api/3/project/search?expand=lead&startAt={0}&maxResults={1}&status=live&action=browse |
read:project:jira |
Get projects list with browse filter (v3) |
| GET | /rest/api/3/project/{0}?expand=lead |
read:project:jira |
Get single project by ID or key |
| GET | /rest/api/2/project/{0}/permissionscheme?expand=user |
read:permission-scheme:jira |
Get project permission scheme |
| GET | /rest/api/2/project/{0}/issuesecuritylevelscheme |
read:issue-security-scheme:jira |
Get issue security level scheme for project |
| GET | /rest/api/2/issuesecurityschemes/{0}/members?startAt={1}&maxResults={2} |
read:issue-security-level:jira |
Get issue security scheme members |
| GET | /rest/api/2/role |
read:project-role:jira |
Get all project roles |
| GET | /rest/api/2/role/{0} |
read:project-role:jira |
Get specific project role details |
| GET | /rest/api/2/project/{0}/role/{1} |
read:project-role:jira |
Get project-specific role actors |
| GET | /rest/api/3/group/bulk?{0}&startAt={1}&maxResults={2} |
read:group:jira |
Get groups in bulk |
| GET | /rest/api/2/group/member?groupname={0}&startAt={1}&maxResults={2} |
read:group:jira |
Get group members by name |
| GET | /rest/api/2/group/member?groupId={0}&startAt={1}&maxResults={2} |
read:group:jira |
Get group members by ID |
| GET | /rest/api/2/user?accountId={0} |
read:user:jira |
Get single user details |
| GET | /rest/api/3/user/bulk |
read:user:jira |
Get bulk user details |
| GET | /rest/api/2/users?startAt={0}&maxResults={1} |
read:user:jira |
Get list of users with pagination |
| GET | /rest/api/3/applicationrole |
read:application-role:jira |
Get application roles |
| GET | {contentUrl} (attachment download) |
read:attachment:jira |
Download attachment binary content |