Jira Cloud integration with Syskit Point for streamlined provisioning – Part 3
Table of contents
In this post, we’ll show you how to set up Jira Cloud integration with Syskit Point. This integration will allow you to automate Microsoft 365 workspace provisioning directly from Jira using Syskit Point’s provisioning API.
Be sure to take a look at the previous posts from this series:
In the first article, we explained all the prerequisites you need for this to work, so check it out before diving into this blog.
Prerequisites for Jira Cloud integration
Before you begin, make sure you have:
- Syskit Point Provisioning Template: Configured with automated approvals in Syskit Point.
- Entra ID App for API Authentication: This will be used to retrieve an OAuth token for Syskit Point API authentication.
- Syskit Point API Credentials:
- Syskit Point URL
- Directory (Tenant) ID
- Syskit Point API Application (Client) ID
- Client ID
- Client Secret
- Template ID
Step 1: Configuring Jira: Fields and Request Type
Jira is very flexible when adding custom fields, forms, and request types. There are many different ways you can achieve the required customization, and the approach will depend on how your Jira is set up.
In essence, you will need the following custom fields
- Site Name / Team Name (Text, Mandatory)
- Description (Text, Mandatory)
- Owners (User Picker (multiple users), Mandatory)
- Members (User Picker (multiple users), Mandatory)
Then, create a custom request type and use the fields you created.
Step 2: Workflows
To follow your business process for approving workspaces, you will have to use one of the available Workflows in Jira or create a custom one.
Step 3: Automations
The final step of setting up Jira to work with Syskit Point is to configure the automation to call the Syskit Point Provisioning API and initiate provisioning. Jira allows for a fully no-code solution to be implemented, and the solution is very simple but make sure you follow all the steps outlined in this article for solution to work properly.
Create a new automation in your project.
1. The automation triggers when issues transition to the Approved state.
Steps 2-5, configure variables that will be used in the following steps. Add them as automation variables and hardcode the value you obtained in the Prerequisites steps of this post.
2. clientId
3. clientSecret
4. scope
5. tenantId
Now we need to call Point API web services. The first call is to authenticate against service:
6. To your automation add the action “Send web request” to authenticate, use the following setup
a) Web request URL
https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token
Note that we are using a variable {{tenantId}}
from the Step 5 here.
b) HTTP method: POST
c) Web request body: Custom Data
d) Custom Data:grant_type=client_credentials&client_id={{clientId.urlEncode}}&client_secret={{clientSecret.urlEncode}}&scope={{scope.urlEncode}}
Please note we are using variables from steps 2-5 in this request.
e) Headers: Key: Content-Type, Value: application/x-www-form-urlencoded
f) Make sure you check this option: “Delay execution of subsequent rule actions until we’ve received a response for this web request”
7. With the token we acquired in Step 6, we can now POST the request to the Provisioning API. Add another “Send web request” to your automation and fill in the fields:
a) Web request URL:https://your_instance.syskit365.com/v1.0/provision/teams
Change your_instance.syskit365.com
with the actual URL of your instance.
b) HTTP method: POST
c) Web request body: Custom data
d) Custom Data, use the following sample
{
"templateId": TemplateId,
"displayName": "{{issue.customfield_number1}}",
"desiredUrl": "{{issue.key}}",
"owners": [
{{#issue.customfield_number1}}"{{emailAddress}}"{{^last}}, {{/}}{{/}}
],
"members": [
{{#issue.customfield_number1}}"{{emailAddress}}"{{^last}}, {{/}}{{/}}
],
"description": "{{issue.summary}}",
"comment": "Generated by JIRA Issue {{issue.key}}",
"metadata": { },
"isPrivate": true
}
There are a couple of changes you need to make before pasting this text:
i) Add the actual TemplateId from prerequisites (it is an integer value)
ii) Use the smart values helper to detect the fields names for “Site Name”, “Owners” and “Members” fields you create in Step 1. The names of these fields usually look like something like customfield_10054. Replace the values in the text above.
iii) isPrivate is set to be true i.e. the created workspace will be private. You can change this or even tie this to a field and allow users to change it.
e) Headers
i) Key: Content-Type, Value: application/json-patch+json
ii) Key: accept, Value: application/json
iii) Authorization, Value: Bearer {{webResponse.body.access_token}}
This reads the response from the previous call. The name of this step might be different in your automation.
f) Make sure you check this option: “Delay execution of subsequent rule actions until we’ve received a response for this web request”
The fully assembled automation is show on the following image:
Conclusion on Jira Cloud integration with Syskit Point
This setup enables automated provisioning of Microsoft 365 workspaces directly from Jira. While this guide covers a basic setup, Jira’s automation and Syskit Point’s API offer significant flexibility to adapt this workflow to your specific business needs.