Jira

Overview

The Jira connector enables your AI Colleagues to integrate with your organization's Jira platform, facilitating automated issue management, project tracking, and service desk workflows.

Jira is Atlassian's project management and issue tracking platform that allows teams to plan, track, and manage software development projects, IT service requests, and business workflows. The Jira connector allows Leena AI to automate issue workflows, manage projects, and interact with Jira entities seamlessly.

API Details

Leena AI integrates with Jira via REST APIs.

Documentation link: https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/

Setup

The Jira connector supports two authentication methods: Basic Authentication (using API Token) and Connect App Authentication (OAuth 2.0 with user impersonation).


Prerequisites

Before setting up the Jira connector, ensure you have:

  • Administrator access to your Jira Cloud instance
  • Access to Atlassian Account Settings for API token generation
  • Ability to manage apps in Jira (for Connect App authentication)
  • Access to your Leena AI workspace with connector management permissions

Get credentials

Option 1: Basic Authentication (API Token)

Here is how to create an API token in Atlassian:

  1. Log in to your Atlassian Account
  2. Navigate to API Tokens:
    1. Go to https://id.atlassian.com/manage-profile/security/api-tokens
    2. Or click your profile picture > Manage Account > Security > API tokens
  3. Create API Token:
    1. Click "Create API token"
    2. Enter a memorable label for your token (e.g., "Leena AI Integration")
    3. Click "Create"
  4. Copy and Store Token:
    1. Click "Copy" to copy the token to your clipboard
    2. Store the token securely - it will only be shown once
    3. Note your Atlassian account email address for authentication

Option 2: Connect App Authentication (OAuth 2.0)

For advanced user impersonation capabilities:

  1. Create the Connection in Leena AI first (see Add connection section)
  2. Copy the Descriptor URL from Leena AI
  3. In Jira, go to Apps > Manage Apps
  4. Click "Upload app" and paste the Descriptor URL
  5. Install the app to receive OAuth Client ID and Shared Secret
  6. The credentials will be automatically populated in Leena AI

Add connection

Here is how to add a connection on Leena AI:

For Basic Authentication:

  1. Log in to your Leena AI workspace
  2. Navigate to Settings > Integrations
  3. Search for "Jira" and select it from the list to add its new connector
  4. Select "Basic Auth" as the authentication method
  5. Start configuring the connector:
    1. Site URL: Your Jira Cloud site URL (e.g., https://yourcompany.atlassian.net)
    2. User Email: Your Atlassian account email address
    3. API Token: The API token generated from Atlassian Account
  6. Click Save to complete the connection

For Connect App Authentication:

  1. Log in to your Leena AI workspace
  2. Navigate to Settings > Integrations
  3. Search for "Jira" and select it from the list to add its new connector
  4. Select "Connect App Auth" as the authentication method
  5. Start configuring the connector:
    1. Site URL: Your Jira Cloud site URL (e.g., https://yourcompany.atlassian.net)
    2. User Email: Admin user email for initial setup
    3. API Token: Admin API token for initial setup
    4. OAuth Client Id: Auto-populated after app installation in Jira
    5. Shared Secret: Auto-populated after app installation in Jira
  6. Copy the Descriptor URL and install the app in Jira
  7. The connection will be saved once the app is successfully installed

Actions

The following actions are supported for the Jira connector:

Issue: Create Issue

Creates a new issue in Jira. The Agent can leverage the skill (workflow), which has been designed to create a new issue in Jira, once the user raises a query to do so.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
FieldsJSON object containing issue screen fields to set, specifying the sub-field and its value for each field

Optional

Name

Description

Update History

Whether to add the project to the user's Recently viewed list, options:

  • true: Add to recently viewed
  • false: Don't add to recently viewed (default)

History Metadata

Additional metadata about the history entry for this operation

Properties

List of entity properties to set on the issue, each containing:

  • Key: The key of the property
  • Value: The value of the property

Transition Id

The ID of the issue transition to undertake during creation

Transition Looped

Whether the transition is looped

Update

A map containing the field name and list of operations to perform on the issue screen field

Additional Properties

Extra properties of any type to be provided to this object

Here is a sample JSON input:

// Create a Bug Issue

{
  "updateHistory": false,
  "fields": {
    "project": {
      "key": "PROJ"
    },
    "issuetype": {
      "name": "Bug"
    },
    "summary": "Login button not working on mobile",
    "description": {
      "type": "doc",
      "version": 1,
      "content": [
        {
          "type": "paragraph",
          "content": [
            {
              "type": "text",
              "text": "Users are unable to click the login button on mobile devices running iOS 17."
            }
          ]
        }
      ]
    },
    "priority": {
      "name": "High"
    },
    "assignee": {
      "accountId": "5b10ac8d82e05b22cc7d4ef5"
    },
    "labels": ["mobile", "urgent"]
  }
}

// Create a Task Issue

{
  "fields": {
    "project": {
      "key": "TASK"
    },
    "issuetype": {
      "name": "Task"
    },
    "summary": "Update documentation for API v3",
    "description": {
      "type": "doc",
      "version": 1,
      "content": [
        {
          "type": "paragraph",
          "content": [
            {
              "type": "text",
              "text": "Update all API documentation to reflect the new v3 endpoints."
            }
          ]
        }
      ]
    },
    "duedate": "2025-09-15"
  }
}

Response

Upon successful creation, the action returns the created issue details including:

  • Issue ID
  • Issue Key
  • Self URL

Issue: Edit Issue

Updates an existing issue in Jira. The Agent can leverage the skill (workflow), which has been designed to modify an existing issue in Jira, once the user provides the issue details to be updated. Here are some common use cases:

  • Update Status: Change issue status through transitions
  • Reassign Issues: Change the assignee of an issue
  • Update Priority: Modify issue priority based on urgency
  • Add Details: Update description, labels, or custom fields
  • Link Issues: Add issue links or dependencies

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the issue

Optional

Name

Description

Notify Users

Whether to send notification email to watchers, options:

  • true: Send notifications (default)
  • false: Don't send notifications (requires admin permissions)

Override Screen Security

Whether screen security is overridden to enable hidden fields to be edited

Override Editable Flag

Whether screen security is overridden to enable uneditable fields to be edited

Return Issue

Whether the response should contain the issue with fields edited in this request

Expand

The Get issue API expand parameter to use in the response if returnIssue is true

Fields

List of issue screen fields to update, specifying the sub-field and its value

History Metadata

Additional metadata about the history entry for this operation

Properties

List of entity properties to set on the issue

Transition Id

The ID of the issue transition to undertake

Update

A map containing the field name and list of operations to perform

Additional Properties

Extra properties of any type to be provided to this object

Here is a sample JSON input:

// Update Issue Priority and Assignee

{
  "issueIdOrKey": "PROJ-123",
  "notifyUsers": true,
  "fields": {
    "priority": {
      "name": "Highest"
    },
    "assignee": {
      "accountId": "5b10ac8d82e05b22cc7d4ef5"
    }
  }
}

// Update Issue Description

{
  "issueIdOrKey": "PROJ-123",
  "notifyUsers": true,
  "fields": {
    "description": {
      "type": "doc",
      "version": 1,
      "content": [
        {
          "type": "paragraph",
          "content": [
            {
              "type": "text",
              "text": "Updated description with more details about the issue."
            }
          ]
        }
      ]
    }
  }
}

// Update Labels and Due Date

{
  "issueIdOrKey": "PROJ-123",
  "fields": {
    "labels": ["backend", "api", "urgent"],
    "duedate": "2025-10-01"
  }
}

Response

Upon successful update, the action returns:

  • HTTP status code (204 for success without return, 200 with issue data)
  • Updated issue details (if returnIssue is true)

Issue: Get Issue

Retrieves the details of a specific issue from Jira. This action can be leveraged by Leena AI Orchestrator/Agent to fetch complete information about an issue including its fields, comments, and attachments.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the issue

Optional

Name

Description

Fields

A list of fields to return for the issue, use it to retrieve a subset of fields

Fields By Keys

Reference fields by their key rather than ID, options:

  • true: Use field keys
  • false: Use field IDs (default)

Expand

Use expand to include additional information about the issue in the response (e.g., renderedFields, changelog, transitions)

Properties

A list of up to 5 issue properties to include in the results

Update History

Whether the project is added to the user's Recently viewed project list

Fail Fast

Whether to fail the request quickly in case of an error while loading fields

Here is a sample JSON input:

// Get Basic Issue Details

{
  "issueIdOrKey": "PROJ-123"
}

// Get Issue with Specific Fields

{
  "issueIdOrKey": "PROJ-123",
  "fields": ["summary", "status", "assignee", "priority", "description"],
  "fieldsByKeys": false
}

// Get Issue with Expanded Data

{
  "issueIdOrKey": "PROJ-123",
  "expand": ["changelog", "renderedFields", "transitions"]
}

Response

The action returns the issue details including:

  • Issue ID and Key
  • Summary (title)
  • Description
  • Status
  • Priority
  • Assignee
  • Reporter
  • Created and Updated timestamps
  • Custom fields
  • Comments (if expanded)
  • Changelog (if expanded)

Issue: Search for Issues Using JQL

Searches for issues using Jira Query Language (JQL). This action enables powerful querying capabilities to find issues based on various criteria. Here are some common use cases:

  • Find My Issues: Search for issues assigned to a specific user
  • Sprint Planning: Find all issues in a specific sprint
  • Bug Tracking: List all open bugs in a project
  • Overdue Tasks: Find issues past their due date
  • Status Reports: Get issues by status for reporting

Input Parameters

Here are the input parameters required to set up this action:

Optional

NameDescription
JQLThe JQL query string to search for issues
FieldsA list of fields to return for each issue
Fields By KeysReference fields by their key rather than ID (default: false)
Max ResultsThe maximum number of items to return (default: 50)
Next Page TokenThe token for fetching the next page of results
ExpandUse expand to include additional information about issues in the response
PropertiesA list of up to 5 issue properties to include in the results
Reconcile IssuesA list of issue IDs to reconcile

Here is a sample JSON input:

// Search for Open Bugs in a Project

{
  "jql": "project = PROJ AND issuetype = Bug AND status != Done",
  "maxResults": 50,
  "fields": ["summary", "status", "priority", "assignee"]
}

// Search for Issues Assigned to Current User

{
  "jql": "assignee = currentUser() AND status != Done ORDER BY priority DESC",
  "maxResults": 25
}

// Search for Overdue Issues

{
  "jql": "duedate < now() AND status != Done ORDER BY duedate ASC",
  "maxResults": 100
}

// Search with Pagination

{
  "jql": "project = PROJ ORDER BY created DESC",
  "maxResults": 50,
  "nextPageToken": "eyJhbGciOiJIUzI1NiJ9..."
}

Response

The action returns a list of issues matching the JQL query, each containing:

  • Issue ID and Key
  • Requested fields for each issue
  • Total count of matching issues
  • Next page token (if more results exist)
  • Names and schema information

Issue: Assign Issue

Assigns an issue to a specific user. The Agent can leverage this action to quickly reassign issues based on workload or expertise.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the issue
Account IdThe account ID of the user to assign

Here is a sample JSON input:

// Assign Issue to a User

{
  "issueIdOrKey": "PROJ-123",
  "accountId": "5b10ac8d82e05b22cc7d4ef5"
}

// Unassign Issue (set to unassigned)

{
  "issueIdOrKey": "PROJ-123",
  "accountId": null
}

Response

Upon successful assignment, the action returns:

  • HTTP status code (204 for success)
  • Confirmation of assignment change

Comment: Add Comment

Adds a comment to an existing issue. The Agent can leverage this action to add updates, notes, or communication to issues.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the issue
BodyThe comment text in Atlassian Document Format (ADF)

Optional

Name

Description

Expand

Use expand to include additional information about comments (e.g., renderedBody for HTML)

Properties

List of entity properties to set on the comment

Visibility Identifier

The ID of the group or the name of the role that visibility is restricted to

Visibility Type

Whether visibility is restricted to a group or role, options:

  • group: Restrict to a group
  • role: Restrict to a role

Visibility Value

The name of the group or role that visibility is restricted to

Additional Properties

Extra properties of any type to be provided to this object

Here is a sample JSON input:

// Add a Simple Comment

{
  "issueIdOrKey": "PROJ-123",
  "body": {
    "type": "doc",
    "version": 1,
    "content": [
      {
        "type": "paragraph",
        "content": [
          {
            "type": "text",
            "text": "This issue has been reviewed and approved for development."
          }
        ]
      }
    ]
  }
}

// Add a Comment with Restricted Visibility

{
  "issueIdOrKey": "PROJ-123",
  "body": {
    "type": "doc",
    "version": 1,
    "content": [
      {
        "type": "paragraph",
        "content": [
          {
            "type": "text",
            "text": "Internal note: Customer has been contacted about this issue."
          }
        ]
      }
    ]
  },
  "visibility": {
    "type": "role",
    "value": "Administrators"
  }
}

Response

Upon successful creation, the action returns the created comment details including:

  • Comment ID
  • Author information
  • Body content
  • Created timestamp
  • Visibility settings (if applied)

Comment: Get Comments

Retrieves comments from a specific issue. This action can be used to fetch the communication history on an issue.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the issue

Optional

NameDescription
Start AtThe index of the first item to return (for pagination)
Max ResultsThe maximum number of comments to return
Order ByOrder the results by a field (e.g., created, -created for descending)
ExpandUse expand to include additional information (e.g., renderedBody for HTML)

Here is a sample JSON input:

// Get All Comments

{
  "issueIdOrKey": "PROJ-123"
}

// Get Comments with Pagination

{
  "issueIdOrKey": "PROJ-123",
  "startAt": 0,
  "maxResults": 20,
  "orderBy": "-created"
}

Response

The action returns a list of comments including:

  • Comment ID
  • Author information
  • Body content
  • Created and Updated timestamps
  • Visibility settings
  • Total count of comments

Attachment: Add Attachment

Adds an attachment to an existing issue. The Agent can leverage this action to attach files, screenshots, or documents to issues.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the issue
File NameThe name of the file to be uploaded
File Data (Url/Base64)The file data as a URL or Base64 encoded string

Here is a sample JSON input:

// Add Attachment from URL

{
  "issueIdOrKey": "PROJ-123",
  "fileName": "screenshot.png",
  "fileData": "https://example.com/files/screenshot.png"
}

// Add Attachment from Base64

{
  "issueIdOrKey": "PROJ-123",
  "fileName": "error-log.txt",
  "fileData": "VGhpcyBpcyBhIHNhbXBsZSBlcnJvciBsb2cgZmlsZS4="
}

Response

Upon successful upload, the action returns the attachment details including:

  • Attachment ID
  • File name
  • File size
  • MIME type
  • Content URL
  • Author information
  • Created timestamp

Attachment: Get Attachment

Downloads an attachment from Jira. This action can be used to retrieve file contents from an issue attachment.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Attachment IdThe ID of the attachment to download

Optional

NameDescription
RedirectWhether a redirect is provided for the attachment download (default: true)

Here is a sample JSON input:

// Get Attachment Content

{
  "attachmentId": "10001",
  "redirect": true
}

// Get Attachment Without Redirect

{
  "attachmentId": "10001",
  "redirect": false
}

Response

The action returns:

  • Base64 encoded file content
  • HTTP status code

Project: Create Project

Creates a new project in Jira. The Agent can leverage this action to set up new projects for teams or initiatives.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Project KeyUnique identifier for the project (e.g., "PROJ")
Project NameDisplay name of the project
Lead Account IdAccount ID of the project lead
Project Type KeyThe type of project (e.g., software, business)

Optional

NameDescription
Assignee TypeThe default assignee type for issues
Avatar IdThe ID of the project avatar
Category IdThe ID of the project category
DescriptionDescription of the project
Issue Security SchemeThe ID of the issue security scheme
Project Template KeyThe key of the project template
Field Configuration SchemeThe ID of the field configuration scheme
Issue Type SchemeThe ID of the issue type scheme
Issue Type Screen SchemeThe ID of the issue type screen scheme
Workflow SchemeThe ID of the workflow scheme
URLA link to information about the project
Notification SchemeThe ID of the notification scheme
Permission SchemeThe ID of the permission scheme

Here is a sample JSON input:

// Create a Software Project

{
  "key": "NEWPROJ",
  "name": "New Software Project",
  "projectTypeKey": "software",
  "leadAccountId": "5b10ac8d82e05b22cc7d4ef5",
  "description": "A new software development project for the mobile app",
  "assigneeType": "PROJECT_LEAD"
}

// Create a Business Project

{
  "key": "BUSPR",
  "name": "Business Operations Project",
  "projectTypeKey": "business",
  "leadAccountId": "5b10ac8d82e05b22cc7d4ef5"
}

Response

Upon successful creation, the action returns the project details including:

  • Project ID
  • Project Key
  • Self URL

Project: Get Project By ProjectId

Retrieves details of a specific project.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Project Id Or KeyThe ID or key of the project

Optional

NameDescription
ExpandUse expand to include additional information about the project
PropertiesA list of project properties to include in the results

Here is a sample JSON input:

// Get Project Details

{
  "projectIdOrKey": "PROJ"
}

// Get Project with Expanded Information

{
  "projectIdOrKey": "PROJ",
  "expand": ["description", "lead", "issueTypes", "projectKeys"]
}

Response

The action returns the project details including:

  • Project ID and Key
  • Name and Description
  • Lead information
  • Project type
  • Category
  • Issue types
  • Components
  • Versions

Project: Get Projects Paginated

Retrieves a paginated list of projects. This action can be used to browse and search through available projects.


Input Parameters

Here are the input parameters required to set up this action:

Optional

NameDescription
Start AtThe index of the first item to return (default: 0)
Max ResultsThe maximum number of projects to return
Order ByThe field to order results by
IdFilter by project IDs
KeysFilter by project keys
QuerySearch query to filter projects by name or key
Type KeyFilter by project type
Category IdFilter by project category
ActionFilter by user permission (view, browse, edit, create)
ExpandUse expand to include additional information
StatusFilter by project status
PropertiesA list of project properties to include
Property QueryQuery to filter projects by properties

Here is a sample JSON input:

// Get All Projects

{
  "startAt": 0,
  "maxResults": 50
}

// Search Projects by Query

{
  "query": "mobile",
  "maxResults": 25,
  "orderBy": "name"
}

// Get Projects by Type

{
  "typeKey": "software",
  "maxResults": 50
}

Response

The action returns a paginated list of projects including:

  • Project ID and Key
  • Name and Description
  • Project type
  • Category
  • Lead information
  • Pagination information (total, startAt, maxResults)

Project: Delete Project

Deletes a project from Jira. Use with caution as this action may be irreversible.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Project Id Or KeyThe ID or key of the project

Optional

NameDescription
Enable UndoWhether to place the project in the recycle bin (if available)

Here is a sample JSON input:

// Delete Project

{
  "projectIdOrKey": "OLDPROJ"
}

// Delete Project with Undo Option

{
  "projectIdOrKey": "OLDPROJ",
  "enableUndo": true
}

Response

Upon successful deletion, the action returns:

  • HTTP status code (204 for success)
  • Confirmation of deletion

Issue: Get All Issue Types

Retrieves all issue types available in the Jira instance or for a specific project.


Input Parameters

Here are the input parameters required to set up this action:

Optional

NameDescription
Project IdFilter issue types by project ID
LevelFilter by issue type level

Here is a sample JSON input:

// Get All Issue Types

{}

// Get Issue Types for a Project

{
  "projectId": "10001"
}

Response

The action returns a list of issue types including:

  • Issue type ID
  • Name
  • Description
  • Icon URL
  • Subtask indicator

Issue: Get Create Issue Metadata

Retrieves the metadata required to create an issue, including available fields and their configurations for a specific project and issue type.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Project IdThe ID of the project
Issue Type IdThe ID of the issue type

Here is a sample JSON input:

// Get Metadata for Creating a Bug

{
  "projectId": "10001",
  "issueTypeId": "10002"
}

Response

The action returns the create issue metadata including:

  • Available fields
  • Field configurations
  • Required fields
  • Allowed values for each field
  • Field schema information

Issue: Get Edit Issue Metadata

Retrieves the metadata required to edit an issue, including available fields and their configurations.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the issue

Optional

NameDescription
Override Screen SecurityWhether screen security is overridden to enable hidden fields
Override Editable FlagWhether to allow editing of uneditable fields

Here is a sample JSON input:

// Get Edit Metadata

{
  "issueIdOrKey": "PROJ-123"
}

// Get Edit Metadata with Overrides

{
  "issueIdOrKey": "PROJ-123",
  "overrideScreenSecurity": true,
  "overrideEditableFlag": false
}

Response

The action returns the edit issue metadata including:

  • Editable fields
  • Field configurations
  • Allowed values
  • Field operations

Jira Service Desk: Create Service Request

Creates a new service request in Jira Service Management. The Agent can leverage this action to submit IT service requests, HR requests, or other service desk tickets.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Service Desk IdThe ID of the service desk where the request will be created
Request Type IdThe ID of the request type
Request Field ValuesJSON object containing the field values for the service request

Here is a sample JSON input:

// Create IT Support Request

{
  "serviceDeskId": "1",
  "requestTypeId": "10",
  "requestFieldValues": {
    "summary": "Unable to access email",
    "description": "I am unable to access my email account since this morning. Getting authentication error."
  }
}

// Create Hardware Request

{
  "serviceDeskId": "1",
  "requestTypeId": "15",
  "requestFieldValues": {
    "summary": "Request for new laptop",
    "description": "Need a new laptop for the new team member joining next week.",
    "customfield_10001": "Dell XPS 15"
  }
}

Response

Upon successful creation, the action returns the service request details including:

  • Issue ID and Key
  • Request type information
  • Current status
  • Created timestamp
  • Reporter information

Jira Service Desk: Add Comment

Adds a comment to a service request. Comments can be marked as public (visible to customers) or internal (visible only to agents).


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the service request
Comment BodyThe content of the comment

Optional

NameDescription
Public CommentWhether the comment is visible to customers (true) or internal (false)
Temporary Attachment IdsList of temporary attachment IDs to include with the comment

Here is a sample JSON input:

// Add Public Comment

{
  "issueIdOrKey": "DESK-123",
  "body": "We have received your request and are working on it. You will receive an update within 24 hours.",
  "public": true
}

// Add Internal Comment

{
  "issueIdOrKey": "DESK-123",
  "body": "Escalated to Level 2 support team. Contact: John Smith",
  "public": false
}

Response

Upon successful creation, the action returns the comment details including:

  • Comment ID
  • Author information
  • Body content
  • Public/Internal indicator
  • Created timestamp

Jira Service Desk: Transition Issue

Transitions a service request to a new status in its workflow.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
Issue Id Or KeyThe ID or key of the service request
IdThe ID of the transition to perform

Optional

NameDescription
Additional CommentOptional comment to add when transitioning the issue

Here is a sample JSON input:

// Transition to In Progress

{
  "issueIdOrKey": "DESK-123",
  "id": "21"
}

// Transition with Comment

{
  "issueIdOrKey": "DESK-123",
  "id": "31",
  "additionalComment": {
    "body": "Issue resolved. Closing the ticket."
  }
}

Response

Upon successful transition, the action returns:

  • HTTP status code
  • Confirmation of transition