API 2.0
Tasks

Tasks

Query project tasks

Retrieve a list of project tasks
/project/PROJECT-ID/tasks

Parameters

Name Required Default Type/Format Description
closed no False Boolean set to true to retrieve all open and closed tasks
subfolders no False Boolean if set to true returns tasks from project it's subfolders

Response

Sample response →
[
    {
        "id": "TASK-ID",
        "shortId": "75",
        "actionRequiredUserId": USER-ID,
        "assignedToUserId": "USER-ID",
        "createdByUserId": "USER-ID",
        "customFieldsData": {},
        "deadline": null,
        "endDate": null,
        "estimate": null,
        "momentClosed": null,
        "momentCreated": "2018-09-07T19:35:32.09136",
        "name": "Sample task name",
        "parentTaskId": null,
        "priority": 5,
        "progress": null,
        "projectId": "PROJECT-ID",
        "recentActivityMoment": "2018-10-30T15:15:20.437519",
        "reportedTime": null,
        "scheduleDate": null,
        "scheduleStatus": 0,
        "startDate": null,
        "status": {
            "id": "STATUS-ID",
            "name": "New"
            },
        "systemStatus": 1,
        "systemType": 1,
        "taskType": {
            "id": "TASK-TYPE-ID",
            "name": "Task"
        },
        "users": [
            "USER-ID",
            "USER-ID"
        ]
    },
    ...
]

Query user action required tasks

Retrieve a list of action required tasks for a selected user
/user/USER-ID/action-required-tasks

Response

Sample response →
[
    {
        "id": "TASK-ID",
        "shortId": "75",
        "actionRequiredUserId": USER-ID,
        "assignedToUserId": "USER-ID",
        "createdByUserId": "USER-ID",
        "customFieldsData": {},
        "deadline": null,
        "endDate": null,
        "estimate": null,
        "momentClosed": null,
        "momentCreated": "2018-09-07T19:35:32.09136",
        "name": "Sample task name",
        "parentTaskId": null,
        "priority": 5,
        "progress": null,
        "projectId": "PROJECT-ID",
        "recentActivityMoment": "2018-10-30T15:15:20.437519",
        "reportedTime": null,
        "scheduleDate": null,
        "scheduleStatus": 0,
        "startDate": null,
        "status": {
            "id": "STATUS-ID",
            "name": "New"
            },
        "systemStatus": 1,
        "systemType": 1,
        "taskType": {
            "id": "TASK-TYPE-ID",
            "name": "Task"
        },
        "users": [
            "USER-ID",
            "USER-ID"
        ]
    },
    ...
]

Query user assigned tasks

Retrieve a list of tasks assigned to selected user
/user/USER-ID/assigned-tasks

Parameters

Name Required Default Type/Format Description
closed no False Boolean set to true to retrieve all open and closed tasks

Response

Sample response →
[
    {
        "id": "TASK-ID",
        "shortId": "75",
        "actionRequiredUserId": USER-ID,
        "assignedToUserId": "USER-ID",
        "createdByUserId": "USER-ID",
        "customFieldsData": {},
        "deadline": null,
        "endDate": null,
        "estimate": null,
        "momentClosed": null,
        "momentCreated": "2018-09-07T19:35:32.09136",
        "name": "Sample task name",
        "parentTaskId": null,
        "priority": 5,
        "progress": null,
        "projectId": "PROJECT-ID",
        "recentActivityMoment": "2018-10-30T15:15:20.437519",
        "reportedTime": null,
        "scheduleDate": null,
        "scheduleStatus": 0,
        "startDate": null,
        "status": {
            "id": "STATUS-ID",
            "name": "New"
            },
        "systemStatus": 1,
        "systemType": 1,
        "taskType": {
            "id": "TASK-TYPE-ID",
            "name": "Task"
        },
        "users": [
            "USER-ID",
            "USER-ID"
        ]
    },
    ...
]

Get task

Retrieve task details
/task/TASK-ID

Response

Sample response →
{
    
    "id": "Xudir1", 
    "name": "Task title",    
    "actionRequiredUserId": null, 
    "assignedToUserId": "huiw87", 
    "createdByUserId": "huiw87", 
    "customFieldsData": {}, 
    "deadline": null, 
    "endDate": null, 
    "estimate": null, 
    "momentClosed": null, 
    "momentCreated": "2017-11-21T18:44:13.44853",  
    "parentTaskId": null, 
    "priority": 5, 
    "progress": null, 
    "projectId": "deJCVA", 
    "recentActivityMoment": "2018-07-26T02:34:21.019378", 
    "reportedTime": null, 
    "scheduleDate": null, 
    "scheduleStatus": 0, 
    "shortId": "2955", 
    "startDate": null, 
    "status": {
        "id": "L0MvEM", 
        "name": "Not started"
    }, 
    "subtasks": [], 
    "systemStatus": 1, 
    "systemType": 1, 
    "taskType": {
        "id": "6h9Lee", 
        "name": "Task"
    }, 
    "users": [
        "xcCyuq", 
        "huiw87"
    ]
}

Create task

Create new task
/tasks

Parameters

Name Required Type/Format Description
projectId yes String Task project ID
parentTaskId no String Pass parent task ID to create a subtask
title yes String Task title
message no String Task description / initial message
fromUserId yes String Task created by user ID
toUserId no String Assigned To/Action required user ID
taskTypeId no String Task type ID
startDate no YYYY-MM-DD Task start date (schedule date if no endDate specified)
endDate no YYYY-MM-DD Task end date
deadline no YYYY-MM-DD Task deadline (due date)
estimate no Integer Task estimate in minutes
storyPoints no Integer Task storyPoints estimate
priority no Integer Task priority (1-10), 50 - Blocker, 100 - Emergency
todoList no JSON Todo list format
crmContactIds no String array Array of CRM contacts i.e. [CONTACT1-ID, CONTACT2-ID]
crmAccountId no String CRM Account Id
Sample CURL →

curl -X POST 
    https://api.goodday.work/2.0/tasks 
    -H "Content-Type: application/json" 
    -H "gd-api-token: AUTH-TOKEN" 
    -d '{
        "title": "New Task Title",
        "projectId": "PROJECT-ID",
        "fromUserId": "USER1-ID",
        "toUserId": "USER2-ID",
        "estimate": 120,
        "startDate": "2019-09-25",
        "endDate": "2019-09-27"
        }'    
    

Response

Sample response →
{
  "id": "TASK-ID",
  "momentCreated": "2018-09-20 20:14:34.636937",
  "shortId": "7693"
}

Query task messages

Retrieve a list of task messages
/task/TASK-ID/messages

Response

Sample response →
[
  {
    "id": "TASK-MESSAGES-ID",
    "dateCreated": "2020-01-01T10:00:00",    
    "communicationFlow": 2,
    "fromUserId": "USER-ID",
    "toUserId": "ACTION-REQUIRED-USER-ID"    
    "message": "Lorem ipsum",
    "messageRTF": {
        ...
    },
    "editByUserId": null,
    "editDate": null,    
    "taskStatusId": "NEW-STATUS-ID",
    "taskSystemStatusNew": null,
    "timeReportId": "TIME-REPORT-ID",
  }
    ...
]

Comment

Create task comment.
/task/TASK-ID/comment

Parameters

Name Required Type/Format Description
userId yes String User on behalf of whom API will execute update
message no String Comment

Reply / Change AR user

Reply or change AR user.
/task/TASK-ID/reply

Parameters

Name Required Type/Format Description
userId yes String User on behalf of whom API will execute update
actionRequiredUsedId yes String Action required user
message no String Comment

Update status

Update task status.
/task/TASK-ID/status

Parameters

Name Required Type/Format Description
userId yes String User on behalf of whom API will execute update
statusId yes String New status ID
message no String Comment

Update task

Update task parameters. All the parameters are optional and won't be updated if not passed. Set to null to reset.
/task/TASK-ID/update

Parameters

Name Required Type/Format Description
userId yes String User on behalf of whom API will execute update
title no String Task title
projectId no String Move a task to a different project/folder
parentTaskId no String Make a task a subtask of a specified task (do not use together with projectId)
start-date no YYYY-MM-DD Task start date, 'null' to reset
end-date no YYYY-MM-DD Task end date, 'null' to reset
deadline no YYYY-MM-DD Task deadline (due date), 'null' to reset
priority no Integer Task priority (1-10), 50 - Blocker, 100 - Emergency
estimate no Integer Task estimate in minutes, 'null' to reset
progress no Integer Task progress percentage (0-100) or 'null' to reset
todoList no JSON Todo list format
Sample CURL →
curl -X PUT 
    https://api.goodday.work/2.0/task/TASK-ID/update 
    -H "Content-Type: application/json" 
    -H "gd-api-token: AUTH-TOKEN" 
    -d '{
        "userId": "USER-ID",
        "start-date":"2020-02-15",
        "end-date":"2020-01-10",
        "deadline":"2020-02-10",
        "priority":10,
        "estimate":100,
        "progress":70,
        "title":"Updated task title"
        }'

Delete Task

Delete a Task
/task/TASK-ID
By deleting a task you also delete all task's related data including time reports, sub tasks, etc. It is recommended to cancel tasks (by updating status) instead of deleting.