Документы (document)
Метод “document”
Метод позволяет управлять Документами – добавлять, обновлять, удалять.
URL для вызова:
http(s)://{{baseurl}}/developer/v3/document/запрос?параметр=значение
Пример ошибки:
{
"result": "Error",
"error": {
"code": 404,
"text": "Документ не найден"
}
}
Запрос “tips”
Запрос позволяет получить список доступных типов Документов для формирования дальнейших запросов.
Пример запроса:
GET http://{{baseurl}}/developer/v3/document/tips
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
Ответ:
- id - идентификатор типа документа (idtype)
- type - название типа документа
- role - список ролей сотрудников, которым доступно создание документа конкретного типа
- users - идентификаторы сотрудников, которым доступно создание документа конкретного типа
- number - крайний номер документа
- format - формат, по которому генерируется номер документа
- templates - массив шаблонов
- id - id шаблона
- title - название шаблона
- file - файл шаблона
{
"data": [
{
"id": 1,
"title": "Договор",
"type": "Договор",
"role": "Руководитель с доступом,Руководитель подразделения,Руководитель отдела,Менеджер продаж",
"users": "",
"number": "62",
"format": "{cnum}-{MM}{YY}\/{YYYY}",
"templates": [
{
"id": 4,
"title": "Договор на услуги",
"file": "tbs_dogovor_uslygi.docx"
},
{
"id": 15,
"title": "Тестовый 200",
"file": "work._dogovor_na_razrabotky,_postoplata.docx"
},
{
"id": 18,
"title": "Договор. Услуги (обслуживание)",
"file": "tbs_dogovor_na_obslyjivanie.docx"
},
{
"id": 19,
"title": "Договор. Услуги (+ график платежей)",
"file": "tbs_dogovor_uslygi_with_invoices.docx"
},
{
"id": 27,
"title": "Договор на внедрение",
"file": "bs_dogovor_na_vnedrenie.docx"
},
{
"id": 28,
"title": "Док с подписью",
"file": "tbs_dogovor_uslygi_with_customsignature.docx"
},
{
"id": 150,
"title": "Договор с подписью",
"file": "bs_dogovor_na_po.docx"
},
{
"id": 160,
"title": "555",
"file": "tehnicheskoe_zadanie_proekti_v3.docx"
}
]
},
{
"id": 47,
"title": "Дополнительное соглашение",
"type": "Собственный",
"role": "",
"users": "",
"number": "52",
"format": "{cnum}",
"templates": [
{
"id": 20,
"title": "Документ TBS",
"file": "tbs_dogovor_uslygi.docx"
},
{
"id": 21,
"title": "Документ TBS с графиком",
"file": "tbs_dogovor_uslygi_with_invoices.docx"
},
{
"id": 25,
"title": "Здоровый мир",
"file": "tmp_hw.docx"
},
{
"id": 158,
"title": "Тэги из каталога",
"file": "tbs_dogovor_catalog_tags.docx"
},
{
"id": 159,
"title": "Тэги КакЧасы",
"file": "example.docx"
}
]
},
{
"id": 4,
"title": "Ком.предложение",
"type": "Собственный",
"role": "Руководитель подразделения,Руководитель отдела,Менеджер продаж,Поддержка продаж",
"users": "",
"number": "51",
"format": "{cnum}",
"templates": []
},
{
"id": 6,
"title": "Холодное предложение",
"type": "Собственный",
"role": "",
"users": "",
"number": "0",
"format": "",
"templates": []
}
]
}
Запрос “statuses”
Запрос позволяет получить список статусов Документов для формирования дальнейших запросов.
Пример запроса:
GET http://{{baseurl}}/developer/v3/document/statuses
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
Ответ:
- id - идентификатор статуса
- title - название статуса
- color - цветовая схема статуса
- type - массив, содержащий типы документов, к которым применяется статус (idtype => Название)
{
"data": [
{
"id": 1,
"title": "Создан",
"color": "#9edae5",
"type": 1
},
{
"id": 3,
"title": "Отправлен клиенту (электронно)",
"color": "#008000",
"type": 1
},
{
"id": 4,
"title": "Распечатан",
"color": "#95b3d7",
"type": 1
},
{
"id": 5,
"title": "Отправлен клиенту (оригиналы)",
"color": "#548dd4",
"type": 1
},
{
"id": 6,
"title": "Получен от клиента (оригиналы)",
"color": "#ff6600",
"type": 1
},
{
"id": 7,
"title": "В архиве",
"color": "#999999",
"type": 1
}
]
}
Запрос “info”
Запрос позволяет получить информацию по Документу по его идентификатору - id.
Параметры запроса:
- id – уникальный идентификатор записи
- number - номер документа (если он уникален)
Пример запроса:
GET http://{{baseurl}}/developer/v3/document/info
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
{
"number": "62-0524/2024",
"id": 0
}
Ответ:
Ответ содержит следующие специфичные данные:
- datum - Дата создания документа
- typeDoc - Тип документа (title из запроса tips)
- idtype - ID типа документа (id из запроса tips)
- description - описание Документа
- mcid - id Компании, от которой ведется сделка
- signer - id подписанта
- status - id статуса документа
- statusTitle - расшифровка статуса
- files - массив файлов, вложенных в документ
{
"data": {
"deid": 534,
"datum": "2024-05-31 21:22:57",
"number": "62-0524\/2024",
"title": "Договор",
"date.start": "2024-05-31",
"date.end": "2025-06-01",
"typeDoc": "Договор на услуги",
"idtype": 1,
"description": "",
"clid": 1781,
"clientTitle": "Сейлзмен Рус",
"payer": 1781,
"payerTitle": "Сейлзмен Рус",
"did": 972,
"dealTitle": "СД4320: Новая сделка",
"mcid": 3,
"signer": 0,
"status": 1,
"statusTitle": "Создан",
"files": [
{
"name": "Договор №62-0524\/2024 от 31.05.2024.docx",
"file": "http:\/\/sm2021.crm\/files\/1717143850.docx"
}
]
}
}
Возможные ответы в случае ошибок:
404 – Документ не найден
405 – Отсутствуют параметры - id документа
Запрос “list”
Запрос позволяет получить список Документов, в т.ч. с применением фильтров.
Параметры запроса (не обязательные):
- offset – страница вывода, с учетом того, что установлен лимит в 200 записей на страницу (по умолчанию offset = 0)
- order – поле, по которому будет производится сортировка списка (по умолчанию order = datum)
- first – направление сортировки (new – сначала новые, old – сначала старые ). (по умолчанию first = new)
Фильтры (не обязательные):
- user – ограничение по пользователю (указывается логин пользователя)
- dateStart – начальная дата напоминания (формат - YYYY-MM-DD)
- dateEnd – конечная дата напоминания (не обязательно, формат - YYYY-MM-DD)
- только dateStart – вывод записей с датой выполнения больше указанной даты
- только dateEnd – вывод записей с датой выполнения меньше указанной даты
- word – фильтр по названию, описанию или номеру документа
- idtype - по типу документа, список idtype (id из запроса tips) через запятую
- clid - фильтр по Клиенту
- did - фильтр по Сделке
- signer - id подписанта
Примечание
Если не указан user, то будут выведены записи текущего пользователя и всех подчиненных
Пример запроса:
GET http://{{baseurl}}/developer/v3/document/list
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
{
"clid": 1839
}
Ответ:
{
"data": [
{
"id": 500,
"datum": "21.12.2022",
"date.start": "21.12.2022",
"date.end": "31.12.2022",
"number": "19",
"title": "Счет-фактура",
"clid": 1839,
"client": "Саморезы Сибири, ООО",
"did": 787,
"deal": "A26: Продажа для Саморезы",
"payerid": 1839,
"payer": "Саморезы Сибири, ООО",
"mcid": 0,
"signer": 0,
"idtype": 91,
"typeDoc": "Счет-фактура",
"status": "0",
"statusTitle": "--",
"statusColor": "#fff"
}
],
"count": 1
}
Запрос “add”
Запрос позволяет добавить Документ в базу CRM. При этом ответственным устанавливается сотрудник, логин которого использовался в запросе или указанный отдельно в параметре user
Параметры запроса:
- user – login пользователя в SalesMan CRM, которому назначается напоминание
- title - название документа. Если не указан, то принимается как Название шаблона
- description - описание
- mcid - mcid компании, от которой ведется сделка. Не обязательно, если указан did
- signer - id подписанта компании
- idtype - тип документа (id из запроса "tips")
- template - id шаблона (см. запрос "tips")
- dateStart - период действия. начало
- dateEnd - период действия. конец
- status - id статуса документа (см. запрос "statuses")
- pdf - yes, если требуется сгенерировать PDF-файл (дольше)
- clid - ID клиента
- pid - ID контакта
- did - ID сделки
Примечание
- при пустом поле user Ответственным будет назначен текущий пользователь (из запроса)
- если указан did сделки, то параметры clid и payer игнорируются
Пример формирования запроса в PHP:
POST http://{{baseurl}}/developer/v3/document/add
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
{
"did": 962,
"dateStart": "2024-07-01",
"dateEnd": "2024-12-31",
"description": "Описание договора",
"mcid": 1,
"idtype": 1,
"template": 19,
"status": 1
}
Ответ:
В поле “data” приходит id созданной записи
{
"result": "Успешно: Создан документ",
"text": "Документ №63-0624\/2024 от 01.07.2024.docx обработан",
"data": 536,
"files": [
{
"name": "№63-0624\/2024 от 01.07.2024.docx",
"file": "http:\/\/sm2021.crm\/files\/1719399088.docx"
}
],
"number": "63-0624\/2024"
}
Возможные ответы в случае ошибок:
405 – Отсутствуют параметры
Запрос “update”
Запрос позволяет внести изменения в Документ
Параметры запроса:
- id - идентификатор Документа
- user – login пользователя в SalesMan CRM, которому назначается напоминание
- title - название документа. Если не указан, то принимается как Название шаблона
- description - описание
- idtype - тип документа (id из запроса "tips")
- template - id шаблона (см. запрос "tips")
- dateStart - период действия. начало
- dateEnd - период действия. конец
- status - id статуса документа (см. запрос "statuses")
- pdf - yes, если требуется сгенерировать PDF-файл (дольше)
- signer - id подписанта компании
Примечание
если указан параметр templates, то будет произведена перегенерация документа из шаблона. При этом все файлы документа будут удалены
Пример формирования запроса:
POST http://{{baseurl}}/developer/v3/document/update
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
{
"id": 536,
"title": "Договор через API",
"description": "Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. Lorem Ipsum используют потому, что тот обеспечивает более или менее стандартное заполнение шаблона",
"dateStart": "2024-07-02",
"dateEnd": "2024-09-31",
"mcid": 2,
"idtype": 1,
"template": 28,
"status": 1
}
Ответ:
{
"result": "Успешно: Данные обновлены",
"text": "Документ Договор через API №63-0624\/2024 от 02.07.2024.docx обработан",
"data": 536,
"files": [
{
"name": "Договор через API №63-0624\/2024 от 02.07.2024.docx",
"file": "http:\/\/sm2021.crm\/files\/1719400995.docx"
}
],
"number": "63-0624\/2024"
}
Возможные ответы в случае ошибок:
404 – Не найдено
405 – Отсутствуют параметры - id документа
Запрос “status.change”
Запрос позволяет изменить статус Документа по его id.
Параметры запроса:
- id – уникальный идентификатор Документа (обязательное поле)
- status - новый статус документа
- description – комментарий к новому статусу
Пример запроса:
POST http://{{baseurl}}/developer/v3/document/status.change
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
{
"id": 536,
"description": "Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться",
"status": 3
}
Ответ:
{
"result": "Успешно: Данные обновлены",
"data": 536
}
Возможные ответы в случае ошибок:
404 – Не найдено
500 – Системная ошибка
Запрос “mail”
Позволяет отправить существующий документ в виде документа Word или PDF.
Параметры запроса:
- id – уникальный идентификатор документа
- user – логин Ответственного
- theme - тема сообщения, если не указано, то будет установлено "Счет на оплату"
- content - тело сообщения, если не указано, то будет использован шаблон по-умолчанию
- pdf - если нужно отправить документ в виде PDF (pdf = yes)
- status - id статуса документа (см. запрос "statuses")
- template - id шаблона, если документ еще не сгенерирован
Примечание
- Сначала будет произведен поиск Контактов, прикрепленных к Сделке
- Если Контакты в сделке не найдены, то будет произведен поиск Основного контакта Клиента
- Если Контакты не найдены, то отправка будет произведена на Email, указанный в карточке Плательщика по сделке
Шаблон сообщения:
Приветствую, {{person}}
Отправляю Вам Документ "{{docTitle}}" на согласование.
Спасибо за внимание.
С уважением,
{{mName}}
Тел.: {{mPhone}}
Email.: {{mMail}}
==============================
{{mCompany}}
Применимые тэги:
- {{person}} - заменяет ИМЯ контакта
- {{mName}} - Имя сотрудника
- {{mPhone}} - Телефон сотрудника
- {{mMail}} - Email сотрудника
- {{mCompany}} - Название компании (короткое) из справочника "Мои компании", за которой закреплена сделка
- {{docTitle}} - Название документа, включая Тип, Номер и Дата документа (например: Договор на рекламу №22-2007 от 01.01.2018)
Пример запроса:
POST http://{{baseurl}}/developer/v3/document/mail
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
{
"id": 536,
"status": 5
}
Ответ:
В поле “result“ приходит ответ обработчика, в поле “data” приходит id документа
{
"result": "Успешно: Сделано",
"data": 536
}
Возможные ответы в случае ошибок:
404 – Не найдено
406 - Нечего отправлять. Попробуйте указать id шаблона
407 – Не найден ни один получатель
Запрос “delete”
Запрос позволяет удалить Документ по его id.
Параметры запроса:
- id – уникальный идентификатор Документа (обязательное поле)
Пример запроса:
POST http://{{baseurl}}/developer/v3/document/delete
Content-Type: application/json
apikey: {{token}}
login: vladislav@isaler.ru
{
"id": 536
}
Ответ:
{
"result": "Документ удален",
"data": 536
}
Возможные ответы в случае ошибок:
404 – Не найдено
500 – Системная ошибка