Kenesto Web API provides the same RESTful API that Kenesto web app and Kenesto Drive uses. You can use it for all the same operations for manipulating folders, documents and tasks. You must first be registered with Kenesto which means you must have an account in Kenesto to use the API.
Contents
Each method gets optional parameter called ud (userData) that returns same value. (To keep context or anything else)
Each method returns response status – ok or failed.
If it failed exception message is also returned.
Base URL: https://app.kenesto.com/Kenesto.Web.API/KWorkflows.svc/
1. CreateWorkflow:
Request:
CreateWorkflow?t={token}&ud={userData}
Http Method: Post
Content-Type: application/json
Parameters:
Name | Type | Required | Description |
token | string | yes | User’s encrypted and encoded session token. |
title | string | yes | The workflow title. Must be 0-200 characters. |
number | string | no | Workflow’s unique number. If not sent, the server will generate one. Must be 0-200 characters. |
description | string | no | Workflow’s description |
keywords | string | no | Workflow’s keywords |
userData | string | no | User Data – free text. |
Body Example
{
“title”: “My New Workflow”,
“number”: “27345”,
“description”: “Have Fun!”,
“keywords”: “fun”
}
Response:
Type: Json Formatted String
Response Example
{
“ResponseData”: {
“PROCESS”: {
“TENANT_ID”: “3”,
“OBJECT_ID”: “84c9079d-99f2-4b72-8953-1809094cd21a”,
“FAMILY_ID”: “100112”,
“CREATED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“CREATION_DATE”: “03/11/2016 08:46:34”,
“DELETED_OBJECT_FLAG”: “False”,
“DESCRIPTION”: “”,
“IS_IMPORTED”: “False”,
“DELETED_CTX_ID”: “00000000-0000-0000-0000-000000000000”,
“MODIFIED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“ORG_USER_ID”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“OWNER”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“IS_SYSTEM”: “False”,
“MODIFICATION_DATE”: “03/11/2016 08:46:34”,
“SHARED_OBJECT_ID”: “84c9079d-99f2-4b72-8953-1809094cd21a”,
“PUBLIC_ACCESS”: “False”,
“IS_EXT”: “False”,
“EXT_ORG_ID”: “00000000-0000-0000-0000-000000000000”,
“EXT_ORG_NAME”: “”,
“EXT_TOKEN”: “”,
“IS_SHARED”: “False”,
“EXTERNAL_IDENTIFIER”: “”,
“PLANNED_START_DATE”: “01/01/0001 00:00:00”,
“PLANNED_ORDER”: “”,
“PLANNED_DURATION”: “0”,
“ACTUAL_START_DATE”: “01/01/0001 00:00:00”,
“ACTUAL_DURATION”: “0”,
“ACTUAL_END_DATE”: “01/01/0001 00:00:00”,
“ESC_REASSIGN_USER”: “”,
“ESC_POST_USER”: “”,
“ESC_PRE_DAYS”: “0”,
“ESC_REASSIGN_DAYS”: “0”,
“ESC_POST_DAYS”: “0”,
“ESC_PRE_USER”: “”,
“PROCESS_NUMBER”: “26027”,
“TASK_DUE_DATE”: “01/01/0001 00:00:00”,
“PROCESS_DESCRIPTION”: “Have Fun!”,
“PROCESS_INITIATOR”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“PROCESS_TERMINATOR”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“PARENT_PROCESS”: “”,
“PROCESS_STATUS”: “CREATED”,
“PROCESS_EXTERNAL_ACTIVITY_ID”: “00000000-0000-0000-0000-000000000000”,
“PROCESS_EXTERNAL_TOKEN”: “”,
“PROCESS_IS_EXTERNAL”: “False”,
“PROCESS_EXTERNAL_ORG”: “”,
“PROCESS_KEYWORDS”: “fun”,
“PROCESS_EXTERNAL_USER”: “”,
“WORKFLOW_TEMPLATE_ID”: “00000000-0000-0000-0000-000000000000”,
“PROCESS_EXTERNAL_ORG_ID”: “00000000-0000-0000-0000-000000000000”,
“EXTERNAL_RESPONSE_TYPE”: “”,
“BLOCK_PARTNER_EXTERNAL”: “False”,
“PROCESS_EXTERNAL_FAMILY_CODE”: “”,
“PROCESS_NAME”: “My New Workflow”
},
“ACTIVITY_HUMAN_START”: {
“ACTIVITY_STATUS”: “ACTIVE”,
“ACTIVITY_NAME”: “Start – My New Workflow”,
“PROCESS_ID”: “84c9079d-99f2-4b72-8953-1809094cd21a”,
“WORKFLOW_ID”: “0ddd3a93-ea2c-4cf7-8019-dfd346d52ef3”,
“DELETED_OBJECT_FLAG”: “False”,
“HAS_DEPENDENCIES”: “false”,
“ACTIVITY_READ”: “false”,
“FAMILY_ID”: “100122”,
“OBJECT_ID”: “815e3d7d-5f17-4b63-b64c-53dc34c453ff”,
“CREATION_DATE”: “03/11/2016 08:46:35”,
“MODIFICATION_DATE”: “03/11/2016 08:46:35”,
“ORG_USER_ID”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“CREATED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“MODIFIED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“OWNER”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“TENANT_ID”: “3”
},
“ACTIVITY_HUMAN_END”: {
“ACTIVITY_NAME”: “Finish – My New Workflow”,
“ACTIVITY_STATUS”: “PENDING”,
“ACTIVITY_DESCRIPTION”: “You are on the last step of this workflow.\r\nYou may complete the workflow by completing this step or you may extend this workflow by composing additional tasks.\r\n”,
“PROCESS_ID”: “84c9079d-99f2-4b72-8953-1809094cd21a”,
“WORKFLOW_ID”: “0ddd3a93-ea2c-4cf7-8019-dfd346d52ef3”,
“DELETED_OBJECT_FLAG”: “False”,
“HAS_DEPENDENCIES”: “false”,
“ACTIVITY_READ”: “false”,
“FAMILY_ID”: “100123”,
“OBJECT_ID”: “d10d8824-01b2-4d1a-b7d8-12ef0cd13353”,
“CREATION_DATE”: “03/11/2016 08:46:35”,
“MODIFICATION_DATE”: “03/11/2016 08:46:35”,
“ORG_USER_ID”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“CREATED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“MODIFIED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“OWNER”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“TENANT_ID”: “3”
}
},
“ResponseStatus”: “OK”,
“UserData”: “My User Data”
}
2. AddTasksToWorkflow:
Request:
AddTasksToWorkflow?t={token}&ud={userData}
Http Method: Post
Content-Type: application/json
Parameters:
Name | Type | Required | Description | |
token | string | yes | User’s encrypted and encoded session token. | |
processId | Guid | yes | The task’s Id – unique identifier of the task. | |
sourceTaskId | Guid | yes | The task’s Id – unique identifier of the task. | |
tasks | Object collection | |||
Title | string | yes | The task title. Must be 0-200 characters. | |
AssigneeUsername | string | yes | The assignee username – email address. | |
Instructions | string | no | Task’s instructions. Can have up to 4000 characters. | |
userData | string | no | User Data – free text. |
Body Example
{
“processId”: “84c9079d-99f2-4b72-8953-1809094cd21a”,
“sourceTaskId”: “815e3d7d-5f17-4b63-b64c-53dc34c453ff”,
“tasks”: [{
“Title”: “My New Task1”,
“AssigneeUsername”: “[email protected]”,
“Instructions”: “Have Fun!”
}, {
“Title”: “My New Task2”,
“AssigneeUsername”: “[email protected]”,
“Instructions”: “Have Fun!”
}, {
“Title”: “My New Task3”,
“AssigneeUsername”: “[email protected]”,
“Instructions”: “Have Fun!”
}]}
Response:
Type: Json Formatted String
Response Example
{
“ResponseData”: {
“RESPONSE”: {
“RESPONSE_TYPE”: “USER_DEFINED”,
“RESPONSE_NAME”: “My New Task1”,
“IS_SYSTEM_RESPONSE”: “False”,
“DELETED_OBJECT_FLAG”: “False”,
“FAMILY_ID”: “100130”,
“OBJECT_ID”: “415bf6ec-0970-4c0b-94a7-d107a79ce7f4”,
“CREATION_DATE”: “03/11/2016 09:36:17”,
“MODIFICATION_DATE”: “03/11/2016 09:36:17”,
“ORG_USER_ID”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“CREATED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“MODIFIED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“OWNER”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=New”,
“TENANT_ID”: “3”
}
},
“ResponseStatus”: “OK”,
“UserData”: “My User Data”
}
3. WorkflowTaskCompleted:
Request:
WorkflowTaskCompleted?t={token}&ud={userData}
Http Method: Post
Content-Type: application/json
Parameters:
Name | Type | Required | Description |
token | string | yes | User’s encrypted and encoded session token. |
processId | Guid | yes | The process’s Id – unique identifier of the process. |
taskId | Guid | yes | The task’s Id – unique identifier of the task. |
approverUsername | string | yes | The approver username – email address. |
comments | string | no | Comments – free text. |
userData | string | no | User Data – free text. |
Body Example
{
“processId”: “84c9079d-99f2-4b72-8953-1809094cd21a”,
“taskId”: “f84f7503-9f79-4e35-a183-e153f3286a25”,
“approverUsername”: “[email protected]”,
“comments”: “Imported comments”
}
Response:
Type: Json Formatted String
Response Example
{
“ResponseData”: {},
“ResponseStatus”: “OK”,
“UserData”: “My User Data”
}
4. TerminateWorkflow:
Request:
TerminateWorkflow?t={token}&ud={userData}
Http Method: Post
Content-Type: application/json
Parameters:
Name | Type | Required | Description |
token | string | yes | User’s encrypted and encoded session token. |
processId | Guid | yes | The process’s Id – unique identifier of the process. |
userData | string | no | User Data – free text. |
Body Example
{
“processId”: “84c9079d-99f2-4b72-8953-1809094cd21a”
}
Response:
Type: Json Formatted String
Response Example
{
“ResponseData”: {
“PROCESS”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100112”,
“OBJECT_ID”: “84c9079d-99f2-4b72-8953-1809094cd21a”,
“PROCESS_EXTERNAL_ACTIVITY_ID”: “00000000-0000-0000-0000-000000000000”,
“PROCESS_IS_EXTERNAL”: “False”,
“PROCESS_EXTERNAL_TOKEN”: “”,
“PROCESS_EXTERNAL_ORG”: “”,
“PROCESS_EXTERNAL_USER”: “”,
“CREATED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“CREATION_DATE”: “03/11/2016 08:46:34”,
“IS_IMPORTED”: “False”,
“MODIFIED_BY”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“OWNER”: “ParticipantUserNtt ID=be3a3293-bc0a-a046-bbcd-704bfb068a2f, FamilyCode=PARTICIPANT_USER, Status=Retrieved”,
“MODIFICATION_DATE”: “03/11/2016 10:12:41”,
“SHARED_OBJECT_ID”: “84c9079d-99f2-4b72-8953-1809094cd21a”,
“PUBLIC_ACCESS”: “False”,
“IS_EXT”: “False”,
“EXT_ORG_ID”: “00000000-0000-0000-0000-000000000000”,
“EXT_ORG_NAME”: “”,
“EXT_TOKEN”: “”,
“IS_SHARED”: “False”,
“PLANNED_START_DATE”: “01/01/0001 00:00:00”,
“PLANNED_ORDER”: “”,
“PLANNED_DURATION”: “0”,
“ACTUAL_START_DATE”: “01/01/0001 00:00:00”,
“ACTUAL_DURATION”: “0”,
“ACTUAL_END_DATE”: “01/01/0001 00:00:00”,
“ESC_REASSIGN_USER”: “”,
“ESC_POST_USER”: “”,
“ESC_PRE_DAYS”: “0”,
“ESC_REASSIGN_DAYS”: “0”,
“ESC_POST_DAYS”: “0”,
“ESC_PRE_USER”: “”,
“PROCESS_NUMBER”: “26027”,
“TASK_DUE_DATE”: “01/01/0001 00:00:00”,
“PROCESS_DESCRIPTION”: “Have Fun!”,
“PARENT_PROCESS”: “”,
“PROCESS_STATUS”: “TERMINATED_BY_USER”,
“PROCESS_KEYWORDS”: “fun”,
“BLOCK_PARTNER_EXTERNAL”: “False”,
“PROCESS_EXTERNAL_FAMILY_CODE”: “”,
“PROCESS_NAME”: “My New Workflow”
}
},
“ResponseStatus”: “OK”,
“UserData”: “My User Data”
}
5. GetWorkflowTasks:
Request:
GetWorkflowTasks?t={token}&pid={processId}&ud={userData}
Http Method: Get
Parameters:
Name | Type | Required | Description |
token | string | yes | User’s encrypted and encoded session token. |
processId | Guid | yes | The workflow’s Id – unique identifier of the workflow. |
userData | string | no | User Data – free text. |
Body Example
{
“processId”: “84c9079d-99f2-4b72-8953-1809094cd21a”
}
Response:
Type: Json Formatted String
Response Example
{
“ResponseData”: {
“RESULTS”: {
“Object 0”: {
“ACTIVITY_HUMAN_APPROVAL”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100124”,
“OBJECT_ID”: “f84f7503-9f79-4e35-a183-e153f3286a25”,
“ACTIVITY_NAME”: “My New Task1”,
“NAMING_INDEX”: “1”,
“MODIFICATION_DATE”: “03/11/2016 09:47:56”
}
},
“Object 1”: {
“ACTIVITY_HUMAN_APPROVAL”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100124”,
“OBJECT_ID”: “0c68bb0f-0588-4b11-9ab2-36072f8e82e8”,
“ACTIVITY_NAME”: “My New Task2”,
“NAMING_INDEX”: “1”,
“MODIFICATION_DATE”: “03/11/2016 09:47:57”
}
},
“Object 2”: {
“ACTIVITY_HUMAN_END”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100123”,
“OBJECT_ID”: “d10d8824-01b2-4d1a-b7d8-12ef0cd13353”,
“ACTIVITY_NAME”: “Finish – My New Workflow”,
“NAMING_INDEX”: “0”,
“MODIFICATION_DATE”: “03/11/2016 08:46:36”
}
},
“Object 3”: {
“ACTIVITY_HUMAN_START”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100122”,
“OBJECT_ID”: “815e3d7d-5f17-4b63-b64c-53dc34c453ff”,
“ACTIVITY_NAME”: “Start – My New Workflow”,
“NAMING_INDEX”: “0”,
“MODIFICATION_DATE”: “03/11/2016 09:47:44”
}
},
“Object 4”: {
“ACTIVITY_HUMAN_APPROVAL”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100124”,
“OBJECT_ID”: “70f884ad-1478-4a62-afe7-aa4d5b28c123”,
“ACTIVITY_NAME”: “My New Task3”,
“NAMING_INDEX”: “1”,
“MODIFICATION_DATE”: “03/11/2016 09:47:56”
}
}
},
“INFO”: {
“TOTAL”: 5
}
},
“ResponseStatus”: “OK”,
“UserData”: “My User Data”
}
6. GetMyWorkflowActiveTasks:
Request:
GetMyWorkflowActiveTasks?t={token}&pid={processId}&ud={userData}
Http Method: Get
Parameters:
Name | Type | Required | Description |
token | string | yes | User’s encrypted and encoded session token. |
processId | Guid | yes | The workflow’s Id – unique identifier of the workflow. |
userData | string | no | User Data – free text. |
Body Example
{
“processId”: “84c9079d-99f2-4b72-8953-1809094cd21a”
}
Response:
Type: Json Formatted String
Response Example
{
“ResponseData”: {
“RESULTS”: {
“Object 0”: {
“ACTIVITY_HUMAN_APPROVAL”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100124”,
“OBJECT_ID”: “f84f7503-9f79-4e35-a183-e153f3286a25”,
“ACTIVITY_NAME”: “My New Task1”,
“NAMING_INDEX”: “1”,
“MODIFICATION_DATE”: “03/11/2016 09:47:56”
}
},
“Object 1”: {
“ACTIVITY_HUMAN_APPROVAL”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100124”,
“OBJECT_ID”: “0c68bb0f-0588-4b11-9ab2-36072f8e82e8”,
“ACTIVITY_NAME”: “My New Task2”,
“NAMING_INDEX”: “1”,
“MODIFICATION_DATE”: “03/11/2016 09:47:57”
}
},
“Object 2”: {
“ACTIVITY_HUMAN_APPROVAL”: {
“TENANT_ID”: “3”,
“FAMILY_ID”: “100124”,
“OBJECT_ID”: “70f884ad-1478-4a62-afe7-aa4d5b28c123”,
“ACTIVITY_NAME”: “My New Task3”,
“NAMING_INDEX”: “1”,
“MODIFICATION_DATE”: “03/11/2016 09:47:56”
}
}
},
“INFO”: {
“TOTAL”: 3
}
},
“ResponseStatus”: “OK”,
“UserData”: “My User Data”
}