IT Project Management APIs

Project Center and the IT Project Management APIs are only available in the ISM Service Management edition. This feature is not available in the ISM Service Desk edition.


This article describes the ReST APIs available in the IT Project Management (ITPM) module. Integration developers can use these APIs to integrate Serviceaide Intelligent Service Management with external applications.

You use the APIs to execute the following actions within Intelligent Service Management through an external application:

  • Query the ITPM module for a list of projects and tasks that are related to a specific project.
  • Mark projects as favorite.
  • Create a project and tasks within that project from an external system.
  • Update project properties and add team members.
  • Update project tasks to assign owners, close the task, and modify estimates and time spent.
  • Block or unblock tasks.
  • Delete projects or the tasks within a project.
  • Create and modify lanes on the task board.

Each API consists of the following structure:

  • URL: The application URL specific to your slice
  • Header: The basic identifiers for your slice and logged in user
  • Payload: The script for executing an action
    You can substitute the variables in this script with actual values while executing the API. For some APIs, you do not need a payload. You can directly send the values in the URL field for such APIs.

Note: All date values are UTC Milliseconds.

The header for each API call requires (mandatory) headers. The following table describes the mandatory headers and their corresponding values:

HeaderValueMandatory for
CookieValid CSM SessionAll API calls
Content-typeapplication/jsonPOST, PUT
Acceptapplication/jsonPOST.PUT, DELETE, GET

The ITPM module includes the following APIs:

Project APIs

You can use the following APIs to execute actions on a project. While you are working with an existing project, include the project ID in the URL as follows:

http://<application URL>/itpm/Project('project ID')

Get by Id

Retrieve a project using a project ID.

URL

http://<application URL>/itpm/Project('project ID')

Payload

NA

Method

GET

Response

NA

Create

Create a project.

URL

http://<application URL>/itpm/Project

Payload

{
 "projectName": "Project Name",
 "description": "Project Description",
 "startDate": 0,
 "endDate": 1,
 "plannedCost": 1000,
 "actualCost": 1000
}


Method

POST

Response

NA

Update

Update a project.

URL

http://<application URL>/itpm/Project('project ID')

Payload

{
 "projectName": "Project Name updated"
}


Method

POST

Response

NA

Deactivate

Deactivate a project.

URL

http://<application URL>/itpm/Project('project ID')

Payload

NA

Method

DELETE

Response

NA

Get All

Retrieve a list of all projects that you own.

URL

http://<application URL>/itpm/Project

Payload

NA

Method

GET

Response

NA

Mark or Unmark as Favorite

Mark a project as your favorite.

URL

http://<application URL>/itpm/Project('project ID')

Payload

{
 "favorite": true
}


Method

POST

Response

NA

Change Project Owner

Change the owner of a project.

URL

http://<application URL>/itpm/Project('project ID')/$links/ownedBy

Payload

{
 "url": "/itpm/Contact(1)"
}


Method

PUT

Response

NA

Change Project Organization

NA

Allocation APIs

Use these APIs to assign members to a project.

Allocate User

Assign a user to a project.

URL

http://<application URL>/itpm/Allocation?$expand=project, user

Payload

{
 "project": {
 "__metadata": {
 "uri": "/itpm/Project('831ab858-4ae3-4a01-b151-5dba7b3a6445')",
 "type": "odata.Project"
 }
 },
 "user": {
 "__metadata": {
 "uri": "/itpm/User(1)",
 "type": "odata.User"
 }
 }
}


Method

POST

Response

NA

Deallocate User

Remove a user from the project membership.

URL

http://<application url>/itpm/Allocation('allocation ID')

Payload

NA

Method

DELETE

Response

NA

Change Allocation

Remove or provide the Edit permissions to a user.

URL

http://<application url>/itpm/Allocation('allocation ID')

Payload

{
 "editPermission": true
}


Method

POST

Response

NA

Get Allocations

Retrieve the list of the members of a project.

URL

http://<application URL>/itpm/Project('project ID')/allocations

Payload

NA

Method

GET

Response

NA

Lane APIs

Use these APIs to create and modify the lanes on a project taskboard.

Add Lane

Create a lane on the taskboard.

URL

http://<application URL>/itpm/Lane

Payload

{
 "name": "name of the lane",
 "position": 1000,
 "project": {
 "__metadata": {
 "uri": "/itpm/Project('project ID')",
 "type": "odata.Project"
 }
 }
}


Method

POST

Response

NA

Update Lane

Modify a lane on the taskboard.

URL

http://<application URL>/itpm/Lane('project ID')

Payload

{
 "name": "name of the lane"
}


Method

POST

Response

NA

Delete Lane

Remove a lane from the taskborad of a project.

URL

http://<application URL>/itpm/Lane('Lane ID')

Payload

NA

Method

DELETE

Response

NA

Get Lanes

Retrieve the list of all lanes in a project taskboard.

URL

http://<application URL>/itpm/Project('project ID')/lanes

Payload

NA

Method

GET

Response

NA

Task APIs

Use these APIs to create and modify tasks within a project.

Create

Create a task.

URL

http://<application URL>/itpm/Task

Payload

{
 "taskName": "name of the task",
 "position": 2232,
 "description": "test",
 "dueDate": 12,
 "priority": "CRITICAL",
 "lane": {
 "__metadata": {
 "uri": "/itpm/Lane('Lane ID') 
 "type": "odata.Lane"
 }
 },
 "taskType": "TASK"
}


Method

POST

Response

NA

Get All Tasks by Project

Retrieve all the tasks in a project.

URL

http://<application URL>/itpm/Project('project ID')/tasks?$filter=

Payload

NA

Method

GET

Response

NA

Get All Tasks by Lane

Retrieve all the tasks in a particular lane.

URL

http://<application URL>/itpm/Lane('lane ID')/tasks

Payload

NA

Method

GET

Response

NA

Delete Task

Remove a task from the project.

URL

http://<application URL>/itpm/Task('task ID')

Payload

NA

Method

DELETE

Response

NA

Update

Modify a task.

URL

http://localhost:9000/itpm/Task('task ID')

Payload

{
 "taskName": "task name",
 "position": 22,
 "description": "test",
 "dueDate": 12,
 "priority": "HIGH",
 "lane": {
 "__metadata": {
 "uri": "/itpm/Lane('5757f538-4cbe-44c3-96de-eba243467ad5')",
 "type": "odata.Lane"
 }
 }
}



Method

POST

Response

NA

Task Checklist APIs

You can create checklist items for a task. 

Create Checklist

URL 

http://<application URL>/itpm/CheckListItem

Method 

POST

Payload

 {
   "description":"Item 1 to be finished",
   "position":2232,
   "done":false,
   "task":{
      "__metadata":{
         "uri":"/itpm/Task('6e87bc52-0aad-4faa-b633-cec827858c04')",
         "type":"odata.Task"
      }
   }
}

Response 

NA

Update Checklist

URL 

http://<application URL>/itpm/CheckListItem('checklistItemId')

Method 

POST

Payload

 {
   "description":"Item 1 to be finished updated",
   "position":2236,
   "done":true,
   "task":{
      "__metadata":{
         "uri":"/itpm/Task('6e87bc52-0aad-4faa-b633-cec827858c04')",
         "type":"odata.Task"
      }
   }
}


Response 

NA

Get All Checklist Items

URL 

http://<application URL>/itpm/Task('taskId')

Method 

GET

Response

NA

Get All Completed Checklist Items of a Task

URL 

http://<application URL>/itpm/Task('taskId')/checklistItems?$filter=done eq true

Method 

GET

Response

NA

Delete Checklist

URL 

http://<application URL>/itpm/CheckListItem('checkListItemId')

Method 

DELETE

Response 

NA 

Delete All 

URL

http://<application URL>/itpm/Task('taskId')/$links/checklistItems

Method

DELETE

Response

NA

Ticket APIs

You can import multiple tickets.

URL

http://<application URL>/ImportTickets?$expand=importResults/task/ticket

Method

POST

Payload

{
   "lane":{
      "__metadata":{
         "uri":"/itpm/Lane('872586ad-b903-466e-a498-dc5b73a4f91e')",
         "type":"odata.Lane"
      }
   },
   "ticketIds":[7,8,9]
}

Response

NA


Login Authorization API

The following API allows you to authenticate a user in the application based on a username and password. 


URL

http:/<context_url>/odata/login?$format=JSON

Method

POST

Headers

application/x-www-form-urlencoded

Form Parameters

Username: <user_login>

Password: <password>

Response 

The response contains the following parameters in JSON format.

  • Status  
  • primary_org_logo_idb
  • external_slice
  • external_user_id
  • maintenance_notice

Note: The response also contains the cookie, " LOTUSSESSION="1389265934:080c19ee-e95c-4dce-bfda-09d2ff4dd87d:abb769cf-b153-4052-aa0c-b807434e3191:1945ad38cf8891e3cec4e9d6e33267b417a6c2cb"; Version=1; Path=/"


© 2019 Serviceaide 1-650-206-8988 http://www.serviceaide.com info@serviceaide.com