WORKSECTION

Task

Getting the list of all account tasks through API: get_all_tasks

Sample get_all_tasks request

https://your—domain.com/api/admin/v2/?action=get_all_tasks&hash=HASH 
Returns data on all open and closed account tasks/subtasks
This request does not require page parameter

Optional parameters:
  • show_subtasks=1 — returns child field (if available), which contains a list of subtasks in a similar format. There are 2 nesting levels available: task / subtask / sub-subtask
  • extra — returns additional data on tasks/subtasks (can be specified with commas, for example extra=text,files):
  • text or html — description in text or html format, respectively
    files — information about the files attached to the description
  • filter=active (other way status=active) — returns data only for open project tasks/subtasks. A separate value for closed tasks is not provided

Returned data on tasks/subtasks:
  • id — unique identifier
  • name — task/subtask name
  • page — task/subtask link (see link format for details)
  • status — status (active/done — open/closed)
  • priority — priority (value range: 0..10)
  • user_from and user_to — information about the author and executive user
  • project — information about the project (its id, name and page)
  • text — text of the task/subtask description in text or html format (if the request contains corresponding extra parameter)
  • date_added — creation date and time
  • date_start — start date (if specified)
  • date_end — due date or end date (if specified)
  • date_closed — closing date and time
  • time_end — due time or end time (if specified)
  • max_time and max_money — time and financial estimates (if specified)
  • tags — array in id: name format for task/subtask statuses and labels (if specified)
  • files — information about the files attached in the description (if the request contains corresponding extra parameter):
  • id — unique file identifier (can be used in the download method for downloading via API)
    size — file size (in bytes)
    name — file name with its extension
    page — part of the link for direct download (for the full path put the address of your account in front, for example
    https://your-domain.worksection.com/download/123456)
  • child — a similar array of data on subtasks and sub-subtasks included in the task (if the request contains show_subtasks=1 parameter)

Sample JSON response
If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": [
        {
            "id": "TASK_ID",
            "name": "TASK_NAME_1",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "done",
            "priority": "0..10",
            "user_from": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "user_to": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "project": {
                "id": "PROJECT_ID",
                "name": "PROJECT_NAME",
                "page": "/project/PROJECT_ID/"
            },
            "text": "TASK_TEXT",
            "date_added": "YYYY—MM—DD HH:II",
            "date_start": "YYYY—MM—DD",
            "date_end": "YYYY—MM—DD",
            "date_closed": "YYYY—MM—DD HH:II",
            "time_end": "HH:II",
            "max_time": "50",
            "max_money": "100",
            "tags": {
                "TAG_ID": "TAG_NAME_1",
                "TAG_ID": "TAG_NAME_2"
            },
            "files": [
                {
                    "id": "FILE_ID",
                    "size": "FILE_SIZE",
                    "name": "Example.docx",
                    "page": "/download/FILE_ID"
                }
            ],
"child": [ { "id": "SUBTASK_ID", "name": "SUBTASK_NAME_1", "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/", ... ... ..., "child": [ { "id": "SUBTASK_ID", "name": "SUBTASK_NAME_2", "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/", ... ... ... } ]
} ] }, { "id": "TASK_ID", "name": "TASK_NAME_2", "page": "/project/PROJECT_ID/TASK_ID/", ... ... ... } ] }

Getting a project task/subtask through API: get_task

Sample get_task request

https://your-domain.com/api/admin/v2/?action=get_task&
page=/project/PROJECT_ID/TASK_ID/SUBTASK_ID/&hash=HASH
Returns data on a selected open or closed project task/subtask

Required parameters:
  • page — task/subtask link (see link format for details)
Optional parameters:
  • extra — returns additional task/subtask data (can be specified with commas, for example extra=text,files):
  • text or html — description in text or html format, respectively
    subscribers — subscriber list with user information
    files — information about the files attached to the description

Returned task/subtask data:
  • id — unique identifier
  • name — task/subtask name
  • status — status (active/done — open/closed)
  • priority — priority (value range: 0..10)
  • user_from and user_to — information about the author and executive user
  • project — information about the project (its id, name and page)
  • parent — parent task dataset (if a subtask link is specified in page parameter)
  • text — text of the task/subtask description in text or html format (if the request contains corresponding extra parameter)
  • date_added — creation date and time
  • date_start — start date (if specified)
  • date_end — due date or end date (if specified)
  • date_closed — closing date and time
  • time_end — due time or end time (if specified)
  • max_time and max_money — time and financial estimates (if specified)
  • tags — array in format id: name format for task/subtask statuses and labels (if specified)
  • files — information about the files attached in the description (if the request contains corresponding extra parameter):
  • id — unique file identifier (can be used in the download method for downloading via API)
    size — file size (in bytes)
    name — file name with its extension
    page — part of the link for direct download (for the full path put the address of your account in front, for example
    https://your-domain.worksection.com/download/123456)
  • subscribers — list of subscribers with information on them (if the request contains corresponding extra parameter)

Sample JSON response
Shown for a subtask/sub-subtask case (task response structure is identical, only without the parent dataset)

If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": {
        "id": "SUBTASK_ID",
        "name": "SUBTASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": {
            "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": {
            "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "parent": {
            "id": "TASK_ID",
            "name": "TASK_NAME",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "active",
            "priority": "0..10",
}, "text": "SUBTASK_TEXT", "date_added": "YYYY-MM-DD HH:II", "date_start": "YYYY-MM-DD", "date_end": "YYYY-MM-DD", "date_closed": "YYYY-MM-DD HH:II", "time_end": "HH:II", "max_time": "25", "max_money": "50", "tags": { "TAG_ID": "TAG_NAME_1",
"TAG_ID": "TAG_NAME_2"
},  "files": [   { "id": "FILE_ID",   "size": "FILE_SIZE",  "name": "Example.docx",  "page": "/download/FILE_ID"   }  ],   "subscribers": [   {   "id": "USER_ID",  "email": "USER_EMAIL",   "name": "USER_NAME_1"
  },   {   "id": "USER_ID",  "email": "USER_EMAIL",   "name": "USER_NAME_2"   }   ] } }

Getting the list of project tasks through API: get_tasks

Sample get_tasks request

https://your-domain.com/api/admin/v2/?action=get_tasks&
page=/project/PROJECT_ID/&hash=HASH
Returns data on all open and closed project tasks/subtasks

Required parameters:

Optional parameters:
  • show_subtasks=1 — returns child field (if available), which contains a list of subtasks in a similar format. There are 2 nesting levels available: task / subtask / sub-subtask
  • extra — returns additional data on tasks/subtasks (can be specified with commas, for example extra=text,files):
  • text or html — description in text or html format, respectively
    files — information about the files attached to the description
  • filter=active (other way status=active) — returns data only for open project tasks/subtasks. A separate value for closed tasks is not provided

Returned data on tasks/subtasks:
  • id — unique identifier
  • name — task/subtask name
  • page — task/subtask link
  • status — status (active/done — open/closed)
  • priority — priority (value range: 0..10)
  • user_from and user_to — information about the author and executive user
  • project — information about the project (its id, name and page)
  • text — text of the task/subtask description in text or html format (if the request contains corresponding extra parameter)
  • date_added — creation date and time
  • date_start — start date (if specified)
  • date_end — due date or end date (if specified)
  • date_closed — closing date and time
  • time_end — due time or end time (if specified)
  • max_time and max_money — time and financial estimates (if specified)
  • tags — array in format id: name format for task/subtask statuses and labels (if specified)
  • files — information about the files attached in the description (if the request contains corresponding extra parameter):
  • id — unique file identifier (can be used in the download method for downloading via API)
    size — file size (in bytes)
    name — file name with its extension
    page — part of the link for direct download (for the full path put the address of your account in front, for example
    https://your-domain.worksection.com/download/123456)
  • child — a similar array of data on subtasks and sub-subtasks included in the task (if the request contains show_subtasks=1 parameter)

Sample JSON response
If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": [
        {
            "id": "TASK_ID",
            "name": "TASK_NAME_1",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "done",
            "priority": "0..10",
            "user_from": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "user_to": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "project": {
                "id": "PROJECT_ID",
                "name": "PROJECT_NAME",
                "page": "/project/PROJECT_ID/"
            },
            "text": "TASK_TEXT",
            "date_added": "YYYY—MM—DD HH:II",
            "date_start": "YYYY—MM—DD",
            "date_end": "YYYY—MM—DD",
            "date_closed": "YYYY—MM—DD HH:II",
            "time_end": "HH:II",
            "max_time": "50",
            "max_money": "100",
            "tags": {
                "TAG_ID": "TAG_NAME_1",
                "TAG_ID": "TAG_NAME_2"
            },
            "files": [
                {
                    "id": "FILE_ID",
                    "size": "FILE_SIZE",
                    "name": "Example.docx",
                    "page": "/download/FILE_ID"
                }
            ],
"child": [ { "id": "SUBTASK_ID", "name": "SUBTASK_NAME_1", "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/", ... ... ..., "child": [ { "id": "SUBTASK_ID", "name": "SUBTASK_NAME_2", "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/", ... ... ... } ]
} ] }, { "id": "TASK_ID", "name": "TASK_NAME_2", "page": "/project/PROJECT_ID/TASK_ID/", ... ... ... } ] }

Creating a task through API: post_task

Sample post_task request

https://your—domain.com/api/admin/v2/?action=post_task&
page=/project/PROJECT_ID/&email_user_from=USER_EMAIL&
title=TASK_NAME&hash=HASH

Creates a task in a specified project, regardless of its status (active, sleeping, archived)

This request allows adding files to a task description (see How to add files)


Required parameters:
  • page — project link (see link format for details)
  • email_user_from — task author email
  • title — task name

Optional parameters:
  • email_user_to — task executive email (ANY for "Anyone", NOONE or not specified for "Executive isn't assigned")
  • priority — priority (value range: 0..10)
  • text — task description
  • todo — checklist (for example: todo[]=case1&todo[]=case2)
  • datestart — start date in DD.MM.YYYY format
  • dateend — due date or end date in DD.MM.YYYY format
  • subscribe — comma separated list of user emails, who will be subscribed to a task
  • hidden — comma separated list of user emails, who will have access to this task, while it will be hidden for others
  • max_time — time estimates
  • max_money — financial estimates
  • tags — adds task statuses/labels (for example: tags=TAG1,TAG2). You can specify names (if they are unique) or their IDs (can be obtained through get_tags method)

Sample JSON response
If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": {
        "id": "TASK_ID",
        "name": "TASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": {
"id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "text": "TASK_TEXT",
        "date_added": "YYYY—MM—DD HH:II",
        "date_start": "YYYY—MM—DD",
        "date_end": "YYYY—MM—DD",
        "max_time": 40,
        "max_money": 200, "tags": { "TAG_ID": "TAG_NAME_1", "TAG_ID": "TAG_NAME_2",
}
    }
}

Creating a subtask through API: post_subtask

Sample post_subtask request

https://your-domain.com/api/admin/v2/?action=post_subtask&
page=/project/PROJECT_ID/TASK_ID/&email_user_from=USER_EMAIL&
title=TASK_NAME&hash=HASH

Creates a subtask in a specified task
Parent task should not be closed!

This request allows adding files to a subtask description (see How to add files)


Required parameters:
  • email_user_from — subtask author email
  • title — subtask name

Optional parameters:
  • email_user_to — subtask executive email (ANY for "Anyone", NOONE or not specified for "Executive isn't assigned")
  • priority — priority (value range: 0..10)
  • text — subtask description
  • todo — checklist (for example: todo[]=case1&todo[]=case2)
  • datestart — start date in DD.MM.YYYY format
  • dateend — due date or end date in DD.MM.YYYY format
  • subscribe — comma separated list of user emails, who will be subscribed to a subtask
  • hidden — comma separated list of user emails, who will have access to this subtask, while it will be hidden for others
  • max_time — time estimates
  • max_money — financial estimates
  • tags — adds subtask statuses/labels (for example: tags=TAG1,TAG2). You can specify names (if they are unique) or their IDs (can be obtained through get_tags method)

Sample JSON response
If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": {
        "id": "SUBTASK_ID",
        "name": "SUBTASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "parent": {
            "id": "TASK_ID",
            "name": "TASK_NAME",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "active",
            "priority": "0..10"
        },
        "text": "SUBTASK_TEXT",
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD", "max_time": 40, "max_money": 200, "tags": {   "TAG_ID": "TAG_NAME_1",
  "TAG_ID": "TAG_NAME_2"
}
    }
}

Closing a task through API: complete_task

Sample complete_task request

https://your-domain.com/api/admin/v2/?action=complete_task&
page=/project/PROJECT_ID/TASK_ID/&hash=HASH
Closes the specified task
Response will show corresponding error if the task is already closed or contains open subtasks

Required parameters:

Sample JSON response
If the request succeeds, the response will contain ok status

{
    "status": "ok"
}

Closing a subtask through API: complete_subtask

Sample complete_subtask request

https://your-domain.com/api/admin/v2/?action=complete_subtask&
page=/project/PROJECT_ID/TASK_ID/SUBTASK_ID/&hash=HASH 
Closes the specified subtask/sub-subtask
The task should not be already closed and, in the case of a subtask, it should not contain open nested sub-subtasks

Required parameters:

Sample JSON response
If the request succeeds, the response will contain ok status

{
    "status": "ok"
}

Reopening a task through API: reopen_task

Sample reopen_task request

https://your-domain.com/api/admin/v2/?action=reopen_task&
page=/project/PROJECT_ID/TASK_ID/&hash=HASH 
Reopens the specified task

Required parameters:

Sample JSON response
If the request succeeds, the response will contain ok status

{
    "status": "ok"
}

Reopening a subtask through API: reopen_subtask

Sample reopen_subtask request

https://your-domain.com/api/admin/v2/?action=reopen_subtask&
page=/project/PROJECT_ID/TASK_ID/SUBTASK_ID/&hash=HASH 
Reopens the specified subtask

Required parameters:

Sample JSON response
If the request succeeds, the response will contain ok status

{
    "status": "ok"
}

Updating a task through API: update_task

Sample update_task request

https://your-domain.com/api/admin/v2/?action=update_task&
page=/project/PROJECT_ID/TASK_ID/&email_user_to=USER_EMAIL&
hash=HASH

Updates number of parameters for a specified open or closed task
All optional parameters are available for updating


Required parameters:

Optional parameters:
  • email_user_to — task executive email (ANY for "Anyone", NOONE or not specified for "Executive isn't assigned")
  • priority — priority (value range: 0..10)
  • title — task name
  • datestart — start date in DD.MM.YYYY format
  • dateend — due date or end date in DD.MM.YYYY format
  • dateclosed — closing date in DD.MM.YYYY format
  • max_time — time estimates
  • max_money — financial estimates

Parameters unavailable for editing (changing/removing/adding) through the specified method:
  • email_user_from — task author email
  • text — task description
  • todo — checklist
  • subscribe — comma separated list of user emails, who will be subscribed to a task
  • hidden — comma separated list of user emails, who will have access to this task, while it will be hidden for others
  • tags — task statuses/labels (can be updated through update_tags method)

Sample JSON response
If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": {
        "id": "TASK_ID",
        "name": "TASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
      },
        "user_to": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD", "max_time": 40, "max_money": 200, "tags": {   "TAG_ID": "TAG_NAME_1",
  "TAG_ID": "TAG_NAME_2"
}
    }
}

Updating a subtask through API: update_subtask

Sample update_subtask request

https://your-domain.com/api/admin/v2/?action=update_subtask&
page=/project/PROJECT_ID/TASK_ID/SUBTASK_ID/&email_user_to=USER_EMAIL&
hash=HASH

Updates number of parameters for a specified open or closed subtask (sub-subtask)
All optional parameters are available for updating

Required parameters:
  • page — subtask link (see link format for details)

Optional parameters of a subtask:
  • email_user_to — subtask executive email (ANY for "Anyone", NOONE or not specified for "Executive isn't assigned")
  • priority — priority (value range: 0..10)
  • title — subtask name
  • datestart — start date in DD.MM.YYYY format
  • dateend — due date or end date in DD.MM.YYYY format
  • dateclosed — closing date in DD.MM.YYYY format
  • max_time — time estimates
  • max_money — financial estimates

Parameters unavailable for editing (changing/removing/adding) through the specified method:
  • email_user_from — subtask author email
  • text — subtask description
  • todo — checklist
  • subscribe — comma separated list of user emails, who will be subscribed to a subtask
  • hidden — comma separated list of user emails, who will have access to this subtask, while it will be hidden for others
  • tags — subtask statuses/labels (can be updated through update_tags method)

Sample JSON response
If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": {
        "id": "SUBTASK_ID",
        "name": "SUBTASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": { "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "parent": {
            "id": "TASK_ID",
            "name": "TASK_NAME",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "active",
            "priority": "0..10"
        },
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD", "max_time": 40, "max_money": 200, "tags": {   "TAG_ID": "TAG_NAME_1",
  "TAG_ID": "TAG_NAME_2"
    }
}

Searching tasks through API: search_tasks

Sample search_tasks request

https://your—domain.com/api/admin/v2/?action=search_tasks&
page=/project/PROJECT_ID/&filter=(name has 'Report' or name has 'Approval')
and (dateend>'25.05.2021' and dateend<'31.05.2021')&hash=HASH
Searches for tasks by one or several parameters
If page parameter is not specified, data of archive projects will be excluded from search results

At least one of the following parameters is required:
  • page — link to a project or a parent task (see link format for details)
  • email_user_from — task author email 
  • email_user_to — task executive email
  • filter — search query (see description below)
Optional parameters:
  • status — status (active/done — open/closed)

Integer fields:
  • id=TASK_ID — returns data of a specific task/subtask by its ID (can be obtained through get_all_tasks or get_tasks methods)
  • project=PROJECT_ID — returns data on tasks of a certain project by its ID (can be obtained through the get_projects method)
  • parent=TASK_ID — returns data on subtasks of a certain parent task by its ID (can be obtained through get_all_tasks or get_tasks methods)
Equality and range operators for integer fields: =, in
project{=}2456
id {in} (1234, 1240)

String fields:
  • name — task name
Full or partial match for string fields: =, has
name{=}'Task Report'
name {has} 'Report'

Date fields:
  • dateadd or date_added — task creation date in 'DD.MM.YYYY' format
  • datestart or date_start — task start date in 'DD.MM.YYYY' format
  • dateend or date_end — task due date or end date in 'DD.MM.YYYY' format
  • dateclose or date_closed — task closing date in 'DD.MM.YYYY' format
Relational operators for date fields: >, <, >=, <=, ! =, =
date_add{=}'01.05.2021'


Query conditions can be combined with parentheses () and logical operations and, or (only in lowercase)

Sample filter query
&filter=(name has 'Report' or name has 'Approval') and (dateend>'25.05.2021' and dateend<'31.05.2021')

Acquiring event history for a time period through API: get_events

Sample get_events request

https://your—domain.com/api/admin/v2/?action=get_events&
period=3d&hash=HASH
Returns data on events (performed actions) in projects for a specified period of time (with the information on who and when made changes, as well as versions before and after changes)
If page parameter is not specified, data for all account projects will be received

Required parameters:  
  • period — time period (possible ranges: 1m..360m in minutes, 1h .. 72h in hours, 1d..30d in days)
 
Optional parameters:  
  • page — returns the data of the specified project (see link format for details)

Returned data :
  • action — performed action:
  • post — creating of a new project/task/comment
    update — updating/changing of the current project/task/comment parameters
      close — task closing
      reopen — task reopening
      delete — comment deleting
  • object — information on the object on which the actions specified in action were performed:
  • type — object type: project, task (combine tasks and subtasks) and comment
    id — unique project/task/comment identifier
      page — project/task link (task link is also specified for type=comment)
  • date_added — date and time of action performing
  • user_from — information about who performed the action (id, email, name)
  • new — current or updated parameter values
  • for action=cost these are the names of parameters specified during new object creation along with their values ​​
    for action=update these are the names of parameters being changed with their new values ​​
    • old — names of parameters being changed with their previous values ​​(only for action=update)

Sample JSON response
Shown for two performed actions: comment editing and task due date changing

If the request succeeds, the response will contain ok status and the following data: 

{
    "status": "ok",
    "data": [
        {
            "action": "update",
            "object": {
                "type": "comment",
                "id": "COMMENT_ID",
                "page": "/project/PROJECT_ID/TASK_ID/"
            },
            "date_added": "YYYY—MM—DD HH:II",
            "user_from": { "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "new": {
                "text": "TEXT"
            },
            "old": {
                "text": "TEXT"
            }
        },
        {
            "action": "update",
            "object": {
                "type": "task",
                "id": "TASK_ID",
                "page": "/project/PROJECT_ID/TASK_ID/"
            },
            "date_added": "YYYY—MM—DD HH:II",
            "user_from": { "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "new": {
                "date_end": "YYYY—MM—DD"
            },
            "old": {
                "date_end": "YYYY—MM—DD"
            }
        }
    ]
}
esc
или
Print