Задачи в Pyrus бывают двух типов: обычные задачи и задачи по форме.
Обычная задача содержит фиксированный набор полей: заголовок и текст, а так же массив участников.
Задача по форме отличается от простой задачи тем, что в ней может быть заранее настроена маршрутизация и добавлены необходимые для работы поля.
Любое изменение задачи, например изменение значений полей или загрузка вложений, производится добавлением в нее комментария.
Подробнее о задачах и формах можно прочитать в справке.
Получение обычной задачи со всеми комментариями
У обычной задачи есть три поля, которых нет у задачи по форме: text — текст задачи, responsible — ответственный за задачу и participants — массив участников задачи, из которых может быть выбран ответственный за нее.
GET https://api.pyrus.com/v4/tasks/11611
{ "task": { "id": 11611, "text": "Help with printer", "create_date": "2017-08-17T15:32:11Z", "last_modified_date": "2017-08-17T15:32:11Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "responsible": { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "participants": [ { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" } ], "comments": [ { "id": 13767, "create_date": "2017-08-17T15:32:11Z", "text": "Help with printer", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "reassigned_to": { "id": 1730, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "participants_added": [ { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" } ] } ] } }
curl -X GET \ 'https://api.pyrus.com/v4/tasks/11611' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json'
GET https://api.pyrus.com/v4/tasks/11613
{ "task": { "id": 11613, "text": "Payments", "create_date": "2017-08-17T14:31:18Z", "last_modified_date": "2017-08-18T10:00:11Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "form_id": 1345, "approvals": [ [ { "person": { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "approval_choice": "waiting" } ], [ { "person": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "approval_choice": "waiting" } ] ], "fields": [ { "id": 1, "type": "text", "name": "Purpose", "value": "IT conference in Amsterdam" }, { "id": 2, "type": "money", "name": "Amount", "value": 10306.25 }, { "id": 3, "type": "catalog", "name": "Payment type", "value": { "item_id": 845, "headers": [ "Payment types" ], "values": [ "IT Conference" ] } }, { "id": 4, "type": "table", "name": "Payment Schedule", "value" : [ { "row_id": 0, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-26", "parent_id": 4, "row_id": 0 }, { "id": 6, "type": "money", "name": "Amount", "value": 10000, "parent_id": 4, "row_id": 0 } ] }, { "row_id": 1, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-27", "parent_id": 4, "row_id": 1 }, { "id": 6, "type": "money", "name": "Amount", "value": 306.25, "parent_id": 4, "row_id": 1 } ] } ] } ], "comments": [ { "id": 13767, "create_date": "2017-08-17T14:31:18Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "reassigned_to": { "id": 1730, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "approvals_added": [ [ { "person": { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "step": 1 }, { "person": { "id": 1725, "first_name": "Jane", "last_name": "Doe", "email": "Jane.Doe@gmail.com", "type": "user" }, "step": 1 } ], [ { "person": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "step": 2 } ] ], "field_updates": [ { "id": 1, "type": "text", "name": "Purpose", "value": "IT conference in Amsterdam" }, { "id": 2, "type": "money", "name": "Amount", "value": 10306.25 }, { "id": 3, "type": "catalog", "name": "Payment type", "value": { "item_id": 845, "headers": [ "Payment types" ], "values": [ "IT Conference" ] } }, { "id": 4, "type": "table", "name": "Payment Schedule", "value" : [ { "row_id": 0, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-26", "parent_id": 4, "row_id": 0 }, { "id": 6, "type": "money", "name": "Amount", "value": 10000, "parent_id": 4, "row_id": 0 } ] }, { "row_id": 1, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-27", "parent_id": 4, "row_id": 1 }, { "id": 6, "type": "money", "name": "Amount", "value": 306.25, "parent_id": 4, "row_id": 1 } ] } ] }, { "id": 13768, "create_date": "2017-08-18T10:00:11Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "text": "" "approvals_removed": [ [{ "person": { "id": 1725, "first_name": "Jane", "last_name": "Doe", "email": "Jane.Doe@gmail.com", "type": "user" }, "step": 1 }] ] } ] } ] } }
curl -X GET \ 'https://api.pyrus.com/v4/tasks/11613' \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json'
Создание обычной задачи
Метод возвращает созданную задачу с комментарием.
POST https://api.pyrus.com/v4/tasks
{ "text": "Help with printer", "responsible": { "id": 1733 }, "participants": [ { "id": 1733 }, { "email": "Bob.Smith@gmail.com" } ] }
{ "task": { "id": 11611, "text": "Help with printer", "create_date": "2017-08-17T15:32:11Z", "last_modified_date": "2017-08-17T15:32:11Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "responsible": { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "participants": [ { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" } ], "comments": [ { "id": 13767, "text": "Help with printer", "create_date": "2017-08-17T15:32:11Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "reassigned_to": { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "participants_added": [ { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" } ] } ] } }
curl -X POST \ https://api.pyrus.com/v4/tasks/ \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "text": "Help with printer", "responsible": { "id": 1733 }, "participants": [ { "id": 1733 }, { "email": "Bob.Smith@gmail.com" } ] }'
Создание задачи по форме
Метод возвращает созданную задачу с комментарием.
POST https://api.pyrus.com/v4/tasks
{ "form_id": 1345, "fields": [ { "id": 1, "value": "IT conference in Amsterdam" }, { "id": 2, "value": 10306.25 }, { "id": 3, "value": { "item_id": 845 } }, { "id": 4, "value": [ { "row_id": 0, "cells": [ { "id": 6, "value": "2017-08-26" }, { "id": 9, "value": 10000 } ] } ] } ] }
{ "task": { "id": 11615, "text": "Payments", "create_date": "2017-08-17T14:31:18Z", "last_modified_date": "2017-08-17T14:31:18Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "form_id": 1345, "approvals": [ [ { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, { "id": 1725, "first_name": "Jane", "last_name": "Doe", "email": "Jane.Doe@gmail.com", "type": "user" } ], [ { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" } ] ], "fields": [ { "id": 1, "type": "text", "name": "Purpose", "value": "IT conference in Amsterdam" }, { "id": 2, "type": "money", "name": "Amount", "value": 10306.25 }, { "id": 3, "type": "catalog", "name": "Payment type", "value": { "item_id": 845, "headers": [ "Payment types" ], "values": [ "IT Conference" ] } }, { "id": 4, "type": "table", "name": "Payment Schedule", "value" : [ { "row_id": 0, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-26", "parent_id": 4, "row_id": 0 }, { "id": 6, "type": "money", "name": "Amount", "value": 10000, "parent_id": 4, "row_id": 0 } ] } ] } ], "comments": [ { "id": 13767, "create_date": "2017-08-17T14:31:18Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "reassigned_to": { "id": 1730, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "approvals_added": [ [ { "person": { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "step": 1 }, { "person": { "id": 1725, "first_name": "Jane", "last_name": "Doe", "email": "Jane.Doe@gmail.com", "type": "user" }, "step": 1 } ], [ { "person": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "step": 2 } ] ], "field_updates": [ { "id": 1, "type": "text", "name": "Purpose", "value": "IT conference in Amsterdam" }, { "id": 2, "type": "money", "name": "Amount", "value": 10306.25 }, { "id": 3, "type": "catalog", "name": "Payment type", "value": { "item_id": 845, "headers": [ "Payment types" ], "values": [ "IT Conference" ] } }, { "id": 4, "type": "table", "name": "Payment Schedule", "value" : [ { "row_id": 0, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-26", "parent_id": 4, "row_id": 0 }, { "id": 6, "type": "money", "name": "Amount", "value": 10000, "parent_id": 4, "row_id": 0 } ] } ] } ] } ] } }
curl -X POST \ https://api.pyrus.com/v4/tasks/ \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "form_id": 1345, "fields": [ { "id": 1, "value": "IT conference in Amsterdam" }, { "id": 2, "value": 10306.25 }, { "id": 3, "value": { "item_id": 845 } }, { "id": 4, "value": [ { "row_id": 0, "cells": [ { "id": 6, "value": "2017-08-26" }, { "id": 9, "value": 10000 } ] } ] } ] }'
Наименование | Описание | Обычная задача | Задача по форме |
text * | Текст задачи. | ||
responsible | Идентификатор id или эл. адрес email ответственного за задачу. | ||
due_date | Срок задачи (может быть указано только одно из свойств due_date или due). | ||
due | Срок задачи со временем (может быть указано только одно из свойств due_date или due). | ||
duration | Продолжительность события в минутах (используется только совместно с due). | ||
subject | Заголовок задачи. Если не заполнено, в качестве заголовка будет использована первая строка текста задачи. | ||
participants | Массив участников задачи, состоящий из идентификаторов id или эл. адресов email пользователей. | ||
subscribers | Массив наблюдателей задачи, — состоит из идентификаторов id или адресов электронной почты пользователей и их согласований. | ||
parent_task_id | Идентификатор надзадачи. | ||
list_ids | Массив идентификаторов списков. | ||
attachments** | Поддерживается два варианта представления информации о файлах:
Вариант 1: Массив строк, каждая из которых может быть:
|
||
scheduled_date | Запланировать задачу на указанную дату. Задача вернется во входящие в 7 утра во временной зоне клиента. Формат: YYYY-MM-DD. |
||
scheduled_datetime_utc | Запланировать задачу на указанное время в нулевой временной зоне. Формат: YYYY-MM-DDThh:mm:ssZ |
||
approvals | Массив шагов согласования, состоящий из массивов идентификаторов id или эл. адресов email пользователей. | ||
form_id * | Идентификатор шаблона формы. | ||
fields | Массив значений формы. Каждое значение включает в себя поля id и value. Подробное описание формата значений в зависимости от типа поля вы найдете на странице Формат полей формы. | ||
fill_defaults | Флаг, указывающий необходимость заполнения полей формы значениями по умолчанию из шаблона формы. По умолчанию: false |
Добавление комментария в задачу.
Метод возвращает задачу со всеми комментариями, включая добавленный.
POST https://api.pyrus.com/v4/tasks/11613/comments
{ "text": "It's done.", "action": "finished" }
{ "task": { "id": 11613, "text": "Payments", "create_date": "2017-08-17T14:31:18Z", "last_modified_date": "2017-08-18T10:02:23Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "form_id": 1345, "approvals": [ [ { "person": { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "approval_choice": "waiting" } ], [ { "person": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "approval_choice": "waiting" } ] ], "fields": [ { "id": 1, "type": "text", "name": "Purpose", "value": "IT conference in Amsterdam" }, { "id": 2, "type": "money", "name": "Amount", "value": 10306.25 }, { "id": 3, "type": "catalog", "name": "Payment type", "value": { "item_id": 845, "headers": [ "Payment types" ], "values": [ "IT Conference" ] } }, { "id": 4, "type": "table", "name": "Payment Schedule", "value": [ { "row_id": 0, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-26", "parent_id": 4, "row_id": 0 }, { "id": 6, "type": "money", "name": "Amount", "value": 10000, "parent_id": 4, "row_id": 0 } ] }, { "row_id": 1, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-27", "parent_id": 4, "row_id": 1 }, { "id": 6, "type": "money", "name": "Amount", "value": 306.25, "parent_id": 4, "row_id": 1 } ] } ] } ], "comments": [ { "id": 13767, "create_date": "2017-08-17T14:31:18Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "reassigned_to": { "id": 1730, "first_name": "John" "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "approvals_added": [ [ { "person": { "id": 1733, "first_name": "John", "last_name": "Snow", "email": "John.Snow@gmail.com", "type": "user" }, "step": 1 }, { "person": { "id": 1725, "first_name": "Jane", "last_name": "Doe", "email": "Jane.Doe@gmail.com", "type": "user" }, "step": 1 } ], [ { "person": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "step": 2 } ] ], "field_updates": [ { "id": 1, "type": "text", "name": "Purpose", "text": "IT conference in Amsterdam" }, { "id": 2, "type": "money", "name": "Amount", "number": 10306.25 }, { "id": 3, "type": "catalog", "name": "Payment type", "value": { "item_id": 845, "headers": [ "Payment types" ], "values": [ "IT Conference" ] } }, { "id": 4, "type": "table", "name": "Payment Schedule", "value": [ { "row_id": 0, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-26", "parent_id": 4, "row_id": 0 }, { "id": 6, "type": "money", "name": "Amount", "value": 10000, "parent_id": 4, "row_id": 0 } ] }, { "row_id": 1, "cells": [ { "id": 9, "type": "date", "name": "Date", "value": "2017-08-27", "parent_id": 4, "row_id": 1 }, { "id": 6, "type": "money", "name": "Amount", "value": 306.25, "parent_id": 4, "row_id": 1 } ] } ] } ] }, { "id": 13768, "create_date": "2017-08-18T10:00:11Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "text": "" "approvals_removed": [ [{ "id": 1725, "first_name": "Jane", "last_name": "Doe", "email": "Jane.Doe@gmail.com", "type": "user" }, "step": 1 ] ] }, { "id": 13768, "create_date": "2017-08-18T10:02:23Z", "author": { "id": 1731, "first_name": "Bob", "last_name": "Smith", "email": "Bob.Smith@gmail.com", "type": "user" }, "text": "It's done.", "action": "finished" } ] } }
curl -X POST \ https://api.pyrus.com/v4/tasks/11613/comments \ -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "text": "It's done.", "action": "finished" }'
В комментарии к задаче необходимо заполнить хотя бы одно из приведенных ниже полей. В задаче будут изменены только значения полей, которые вы передали в запросе.
text | Текст комментария. |
subject | Заголовок задачи. Применимо только для простой задачи. |
due_date | Срок задачи (может быть указано только одно из свойств due_date или due). |
due | Срок задачи со временем (может быть указано только одно из свойств due_date или due). |
duration | Продолжительность события в минутах (используется только совместно с due). |
action |
|
approval_choice |
|
reassign_to | Идентификатор id или эл. адрес email пользователя на которого будет переназначена задача. |
approvals_added | Добавляемая маршрутизация, является массивом шагов согласования, состоящим из массивов идентификаторов id или эл. адресов email пользователей. Применимо только для задачи по форме. Пример: "approvals_added": [ [ { "id": 1234 } ], [], [ { "id": 4321 } ] ] |
approvals_removed* | Удаляемая маршрутизация, является массивом шагов согласования, состоящим из массивов идентификаторов id или эл. адресов email пользователей. Применимо только для задачи по форме. |
approvals_rerequested | Повторно запрошенная маршрутизация, является массивом шагов согласования, состоящим из массивов идентификаторов id или эл. адресов email пользователей. Применимо только для задачи по форме. |
subscribers_added | Добавляемые наблюдатели: массив идентификаторов id или адресов электронной почты пользователей. |
subscribers_removed | Удаляемые наблюдатели: массив идентификаторов id или адресов электронной почты пользователей. |
subscribers_rerequested | Наблюдатели, от которых требуется дополнительное согласование: массив идентификаторов id или адресов электронной почты пользователей. |
participants_added | Добавляемые участники, массив идентификаторов id или эл. адресов email пользователей. Применимо только для простой задачи. |
participants_removed | Удаляемые участники, массив идентификаторов id или эл. адресов email пользователей. Применимо только для простой задачи. |
field_updates | Массив обновляемых значений формы. Каждое значение включает в себя поля id и value. Подробное описание формата значений в зависимости от типа поля вы найдете на странице Формат полей формы. |
attachments | Поддерживается два варианта представления информации о файлах:
Вариант 1: Массив строк, каждая из которых может быть:
|
added_list_ids | Массив идентификаторов списков в которые необходимо добавить задачу. |
removed_list_ids | Массив идентификаторов списков из которых необходимо исключить задачу. |
scheduled_date | Запланировать задачу на указанную дату. Задача вернется во входящие в 7 утра во временной зоне клиента. Формат: YYYY-MM-DD. |
scheduled_datetime_utc | Запланировать задачу на указанное время в нулевой временной зоне. Формат: YYYY-MM-DDThh:mm:ssZ |
cancel_schedule | Отменить планирование. Задача вернется во входящие. |
channel | Комментарий будет отправлен по внешнему каналу (email, Telegram, VK, Facebook, Web Widget, Mobile App). Применимо только для задачи по форме. Формат: "channel": { "type": "email" } "channel": { "type": "telegram" } "channel": { "type": "vk" } "channel": { "type": "facebook" } "channel": { "type": "web_widget" } "channel": { "type": "mobile_app" } |
spent_minutes | Затраченное время в минутах. |