# Начало работы ## Основы Все обращения к API - это GET и POST HTTP запросы на домен Вашего аккаунта (кроме запросов к серверу авторизации) по URL /api/v1/ Для аутентификации каждого запроса необходимо передавать серверный API-ключ (параметр api_key). ```console https://<your_company>.flowlu.ru/api/v1/module/<module_name>/<entity_name>/<method>?api_key=dDhlTUtENmp4OFBGQkN0N2hUMUNUQ0FFeGI5N2JRZ0VfMQ ``` Передача данных должна осуществлятся в формате FORM URL Encoded. ## Описание параметров - https://<your_company>.flowlu.ru/ - URL адрес вашего аккаунта, где вместо <your_company> должен быть указан ваш код аккаунта - /api/v1/ - адрес API и его версия (v1) - /module/<module_name>/ - указывает на модуль - /<entity_name>/ - указывает на сущность - /<method> - указывает на метод (Получение списка, в данном примере) - ?api_key=* - ваш персональный ключ доступа к API Ответ на запрос будет возвращён в формате JSON с HTTP-кодом 200 Успешно выполненный запрос содержит объект response ## API ключ Управление API-ключами доступно в разделе Настройка системы > Настройки API На странице возможно создание и удаление ключей, а также настройка прав доступа к отдельным модулям каждого ключа. Удаление ключа деактивирует его навсегда. Для аутентификации с использованием API-ключа требуется передавать его с каждым запросом к серверу параметр api_key Пример ```console https://<your_company>.flowlu.ru/api/v1/module/crm/lead/list?api_key=dDhlTUtENmp4OFBGQkN0N2hUMUNUQ0FFeGI5N2JRZ0VfMQ ``` ## Основные методы для работы с объектами ### GET - /<module_name>/<entity_name>/get/{id} - получение записи по id Пример получения записи с id = 42 ```console GET https://<your_company>.flowlu.ru/api/v1/module/crm/lead/get/42 ``` Запросы на получение записи могут возвращать ошибку полученных в запросе данных ```console { "error": { "error_code": 20, "error_msg": "not found" } } ```` ### CREATE - /<module_name>/<entity_name>/create - создание записи Пример создания записи ```console POST https://<your_company>.flowlu.ru/api/v1/module/crm/lead/create ``` В ответе содержит поле id c идентификатором новой записи ```console { "response": { "id": 5, "_resultMessage": "Ваша заявка принята. Номер заявки #5" } } ``` Запрос на создание записи могут возвращать ошибку валидации полученных в запросе данных ```console { "error": "validation", "description": "Ошибка заполнения формы", "details": { "name": "name не может быть пустым" } } ``` ### UPDATE /<module_name>/<entity_name>/update/{ID} - обновление записи по id Пример обновления записи с id=42 ```console POST https://<your_company>.flowlu.ru/api/v1/module/crm/lead/update/42 ``` В ответе содержатся все поля обновленной записи Запросы на обновление записи могут возвращать ошибку полученных в запросе данных ```console { "error": { "error_code": 20, "error_msg": "not found" } } ```` ### DELETE /DELETE/{ID} - удаление записи по id Пример удаления сделки с id=42 ```console GET https://<your_company>.flowlu.ru/api/v1/module/crm/lead/delete/42 ``` В ответе содержится поле id с идентификатором удалённой записи ```console { "response": { "id": "42" } } ``` ### LIST /LIST - получение спискак записей с возможногстью фильтрации\ ```console GET https://<your_company>.flowlu.ru/api/v1/module/crm/lead/list GET https://<your_company>.flowlu.ru/api/v1/module/crm/account/list?search=flowlu&page=3 ``` Доступные параметры запроса: - limit - максимальное количество записей отдаваемых на один запрос. По умолчанию 100, максимум 200 - page - номер страницы результата запроса. По умолчанию 1 - filter - массив параметров для фильтрации получаемого списка записей - search - поисковый запрос | Поле | Описание| | -------- |:------- | | total | общее количество записей с учетом текущего поискового запроса и примененных фильтров | | page | номер страницы| | count | количество записей в ответе| | items | массив объектов полученных записей| ``` console { "response": { "total": 3, "page": 1, "count": 3, "items": [ { "id": 5, "active": 1, "name": "company5", }, { "id": 4, "active": 1, "name": "company4", ... }, ... ] } } ``` ### Фильтрация Для фильтрации получаемых записей необходимо передавать параметр filter, являющийся массивом, в котором ключ - поле записей для фильтрации. ```console GET https://<your_company>.flowlu.ru/api/v1/module/crm/account/list?filter[active]=1 ``` Доступно перечисление значений через запятую ```console GET https://<your_company>.flowlu.ru/api/v1/module/crm/account/list?filter[type_id]=1,2 ``` Для исключения по значению используется символ ! ```console GET https://<your_company>.flowlu.ru/api/v1/module/crm/account/list?filter[type_id]=!1 ``` # CRM **(module_name: crm)** В модуле CRM содержатся инструменты для управления сделками и хранится вся история работ по контрагентам — события, задачи, счета, акты, проекты и прочее. ## Контрагент **(entity_name: account)** ### Описание Контрагент — это запись в CRM, отражающая информацию о Контактах или Компаниях, с которыми вы взаимодействуете. Контрагенты бывают 2-х типов: - Компания (юридическое лицо) - Контакт (физическое лицо) Контрагенты могут иметь связи, отражаемые в сущности relation (ссылка на нее). Например, контакт Василий, может быть директором в компании ООО Василий и Ко. Связи могут быть множественными, например, один и тот же человек, может работать (иметь связи) в нескольких компаниях. Контрагент может быть объединен (в случае появления дубликатов) с другими записями: о чем свидетельствует параметр **merged_to**. ### Описание полей | Поле | Обязательное | Тип | Описание| |:------------------- | -------------- | -------- | ------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается автоматически при создании записи. Не может быть изменен, удален | | type | да | int | Тип контрагента: 1 - юридическое лицо,2 - физическое лицо| | name | да, если type=1 | string | Используется для вывода названия в Юридических лицах, как название компании (type=1), выводится в карточке| | description | нет | text | Описание контрагента| | ref | нет | string | Название источника импорта объекта (системы и тд)| | ref_id | нет | int | Уникальный идентификатор в системе, откуда был произведен импорт. По этому полю всегда можно будет найти данную запись в системе откуда она была импортирована| | active | нет | boolean | По умолчанию - 1| | updated_date | нет, устанавливается автоматически | datetime |Дата изменения контрагента| | merged_to | да | int | Идентификатор контрагента, который является результатом объединения сущностей с данным контрагентом. По умолчанию - 0| | phone | нет | string | Основной номер телефона| | phone2 | нет | string | Дополнительный контактный номер телефона| | phone3 | нет | string | Дополнительный контактный номер телефона| | web | нет | string | Веб-адрес сайта| | middle_name | нет | string | Отчество (или второе имя, использутеся для type=2) контакта, выводится в карточке| | first_name | да, если type=2 | string | Имя контакта (использутеся для type=2), выводится в карточке| | last_name | нет | string | Фамилия контакта (использутеся для type=2), выводится в карточке| | icq | нет | string | Id в мессенджере ICQ| | skype | нет | string | Id в мессенджере Skype| | link_google | нет | string | Ссылка на аккаунт Google+| | link_facebook | нет | string | Ссылка на аккаунт Facebook| | link_vk | нет | string | Ссылка на аккаунт VK| | link_linkedin | нет | string | Ссылка на аккаунт| | name_legal | нет | string | Юридическое наименование Юридического лица (type=1)| | name_legal_full | нет | text | Полное юридическое наименование Юридического лица (type=1)| | address | нет | text | Фактический адрес контрагента| | address_legal | нет | text | Юридический адрес контрагента| | industry_id | нет | int | Идентификатор записи в сущности Индустрий (сферы деятельности). Используется для классификации контрагента по сферам деятельности. По умолчанию - 0| | owner_id | нет | int | id пользователя, который является ответственным (владельцем) данного контрагента ответственного пользователя| | VAT | нет | string | ИНН контрагента| | VAT1 | нет | string | КПП контрагента| | VAT2 | нет | string | ОГРН контрагента| | bank_details | нет | text | Банковские реквизиты в текстовом формате| | account_category_id | нет | int | Идентификатор записи в сущности категории контрагентов. Используется для классификации контрагента по типу взаимодействия: клиент, конкурент, партнер и тп. По умолчанию - 0 | | honorific_title_id | нет | int | Идентификатор вежливого обращения, используются как приставка к имени контакта (физического лица). По умолчанию - 1| >В случае если вы создаете контрагента типа Контакт, необходимо указать его first_name ## Связи контрагентов **(entity_name: relation)** ### Описание Связи контрагентов предоставляют возможность создавать связи между контрагентами. ### Описание полей | Поле | Обязательное | Тип | Описание| | ------------- | ------------ |:------ | ------------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален. | | parent_acc_id | да | int | Идентификатор контрагента-родителя| | child_acc_id | да | int | Идентификатор контрагента-потомка| | type | да | int | Тип контрагента-потомка: 1 - сотрудник, 2 - дочерняя компания| | relation_name | да | string | Должность контрагента-потомка| ## E-mail адреса контрагентов **(entity_name: email)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание| | ---------- |:------------ | ------ | -------| | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | email | да | string | Email адрес| | type | да | int | Тип адреса: 10 - Рабочий, 20 - Личный, 40 - Другое.| | account_id | да | int |Идентификатор контрагента к которому привязан Email| ## Категории **(entity_name: account_category)** ### Описание Категории контрагентов служат для классификации их по типу взаимодействия с ними. По умолчанию, данная таблица имеет следующий набор данных: - Клиенты - Поставщики - Партнёры - Конкуренты ### Описание полей | Поле | Обязательное | Тип | Описание | | -------- | ------------ | ------- |---------------------| | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | active | да | boolean | Состояние активности. Неактивные записи не доступны для выбора из интерфейса системы.| | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | name | да | string | Название категории, например: Клиент| ## Обращения **(entity_name: honorific_title)** ### Описание Вежливые обращения используются, как приставка к имени контакта (физического лица). ### Описание полей | Поле | Обязательное | Тип | Описание| |:-------- | ------------ |:------- | ----------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | active | да | boolean | Состояние активности. Неактивные записи не доступны для выбора из интерфейса системы. | | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | name | да | string | Само обращение, например, г-н, г-жа, сэр и прочие.| ## Индустрии **(entity_name: industry)** ### Описание Индустрии используются для классификации контрагентов по сферам деятельности. По умолчанию таблица содержит следующий набор данных: ### Описание полей | Поле | Обязательное | Тип | Описание| |:-------- | ------------ | ------- |:-------------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | active | да | boolean | Состояние активности. Неактивные записи не доступны для выбора из интерфейса системы| | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | name | да | string | Название индустрии| ## Сделки **(entity_name: lead)** ## Описание Сделка — это конечная цель и желаемый результат работы всей CRM, возможное взаимоотношение с клиентом, потенциальная продажа, осуществленный контракт и т.п. Использование сделок позволяет отслеживать весь процесс работы с клиентом, начиная с момента первого контакта (обращения) до момента завершения работы с ним. Сделка обладает статусом, который обозначает положение сделки в жизненном цикле (воронка продаж). ### Описание полей | Поле | Обязательное | Тип | Описание| | ----------------- | ------------ | ------ |----------| | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | active | нет | int | состояния активности: 1 - сделка в процессе, 2 - сделка проиграна, 3 - сделка успешна закрыта| | name | да | string | Название, заголовок сделки| | company_id | нет | int | Идентификатор контрагента с типом компания| | contact_id | нет | int | Идентификатор контрагента с типом контакт| | source_id | нет | int | Идентификатор записи из таблицы "Источники сделок"| | pipeline_id | да | int | Идентификатор воронки продаж, по которой проводится данная сделка| | description | нет | text | Описание сделки| | contact_company | нет | string | Компания контактного лица в сделке| | contact_name | нет | text | Имя контактного лица в сделке| | contact_position | нет | string | Должность контактного лица по сделке| | contact_phone | нет | string | Телефон контактного лица в сделке| | contact_mobile | нет | string | Мобильный телефон контактного лица в сделке| | contact_email | нет | string | Email контактного лица в сделке| | contact_web | нет | string | Адрес сайта контактного лица в сделке| | ref | нет | string | Название источника импорта объекта (системы и тд)| | ref_id | нет | int | Уникальный идентификатор в системе, откуда был произведен импорт. По этому полю всегда можно будет найти данную запись в системе откуда она была импортирована | | start_date | нет | date | Дата планируемого начала работы над сделкой. Поле информационное| | deadline | нет | date | Дата планируемого закрытия сделки. Поле информационное| | assignee_id | нет | int | Идентификатор ответственного по сделке пользователя| | pipeline_stage_id | нет | int | Идентификатор текущего этапа обработки сделки| | budget | нет | price | Сумма по сделке (потенциальная сумма по сделке)| | closing_date | нет | date | Дата закрытия сделки. Данное поле заполняется как для выигранных сделок, так и для проигранных| | closing_status_id | нет | int | Идентификатор статуса отказа по сделке в сущности причин отказов. Заполняется только для проигранных сделок| | closing_comment | нет | text | Комментарий к закрытию сделки| ## Воронки продаж **(entity_name: pipeline)** ### Описание Воронка продаж — это бизнес-процесс, набор шагов, который должна преодолеть каждая сделка от первого контакта с клиентом, до успешной продажи или закрытия сделки со статусом “Проиграна”. Благодаря стандартизированному набору этапов в воронке продаж, это облегчает и автоматизирует процесс продажи для ответственных сотрудников, а также позволяет отследить и оптимизировать эффективность. В Flowlu есть возможность создания нескольких воронок продаж, под каждый бизнес-процесс продажи. ### Описание полей | Поле | Обязательное | Тип | Описание | | ----------- | ------------ | ------ |------| | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | name | да | string | Название воронки, например: Запросы"| | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2 | | description | нет | text | Описание воронки продаж| ## Этапы воронок продаж **(entity_name: pipeline_stage)** ### Описание Этапы воронки продаж – это шаги, которые проходит сделка по воронке продаж, из их последовательности складывается сама воронка продаж. ### Описание полей | Поле | Обязательное | Тип | Описание | | ------- | ------------ | ------- |-------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | name | да | string | Название этапа, выводится в сделке и на воронке продаж| | ordering | нет | int | Индекс сортировки, влияет на очередность этапов в воронке продаж. Этап с меньшим индексом сортировки будет первым этапом и наоборот в рамках каждой из воронок продаж | | active | да | boolean | Состояние активности этапа. Деактивированные этапы не выводятся в воронке продаж| | pipeline_id | да | int | Идентификатор воронки продаж, к которой принадлежит этап| | color | да | string | Цвет этапа в формате HEX| ## Источники сделок **(entity_name: source)** ### Описание Источники сделок дают возможность отследить, откуда данная сделка. Например, веб-форма на сайте, рекламная кампания, email и т.д. ### Описание полей | Поле | Обязательное | Тип | Описание| | ----------- | ------------ | ------- |-------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален. | | name | да | int | Название источника сделки| | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | active | да | boolean | Состояние активности. Неактивные записи не доступны для выбора из интерфейса системы.| | description | нет | text | Описание источника сделок| ## Причины отказов **(entity_name: loss_reason)** ### Описание Причины отказов по сделкам. Используются для построения аналитики по причинам отказов от сделок со стороны клиентов. ### Описание полей | Поле | Обязательное | Тип | Описание| | -------- | ------------ |------- | -------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | active | да | boolean | Состояние активности. Неактивные записи не доступны для выбора из интерфейса системы.| | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | name | да | string | Причина отказа| ## Примеры ### Контрагент #### Создание контрагента Для создания контрагента типа компания необходимо с методом create передать название компании(name),и тип контрагента - компания(type=1). ```console curl -H "application/x-www-form-urlencoded" -X POST -d "name=<Название компании>&type=1"https://<account_code>.flowlu.ru/api/v1/module/crm/account/create?api_key=<api_key> ``` Получаем ответ от сервера о том , что запись успешна создана ```json { "response": { "id":1 } } ``` Для создания контрагента типа контакт необходимо с методом create передать имя (first_name),и тип контрагента - контакт(type=2). ```console curl -H "application/x-www-form-urlencoded" -X POST -d "first_name=<Имя>&type=2"https://<account_code>.flowlu.ru/api/v1/module/crm/account/create?api_key=<api_key> ``` Получаем ответ от сервера о том , что запись успешна создана ```json { "response": { "id":2 } } ``` Найдем контрагента по id ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/crm/account/get/2?api_key=<api_key> ``` Пример ответа ```json { "response": { "id": 2, "type": 2, "name": "Dmitry", "description": "", "ref": "", "ref_id": 0, "active": 1, "updated_date": "2020-08-19 12:53:04", "merged_to": 0, "phone": "", "phone2": "", "phone3": "", "web": "https:\/\/", "middle_name": "", "first_name": "", "last_name": "", "icq": "", "skype": "", "link_google": "", "link_facebook": "", "link_vk": "", "link_linkedin": "", "name_legal": "", "name_legal_full": "", "address": "", "address_legal": "", "industry_id": 0, "extra_fields": null, "owner_id": , "vat": "", "vat1": "", "vat2": "", "bank_details": "", "account_category_id": 0, "honorific_title_id": 1 } } ``` #### Добавление email контрагенту ```console curl -H "application/x-www-form-urlencoded" -X POST -d "email=<email>&type=<тип email>&account_id=<id контрагента>" https://<account_code>.flowlu.ru/api/v1/module/crm/email/create?api_key=<api_key> ``` #### Связи контрагентов ```console curl -H "application/x-www-form-urlencoded" -X POST -d "parent_acc_id=<id контрагента-родителя>&child_acc_id=<id контрагента-потомка>&type=<тип контрагента>&relation_name=<должность>" https://<account_code>.flowlu.ru/api/v1/module/crm/relation/create?api_key=<api_key> ``` ### Сделка #### Создание сделки Для создания сделки необходимо с методом create передать название сделки. ```console curl -H "application/x-www-form-urlencoded" -X POST -d "name=<Название сделки>"https://<account_code>.flowlu.ru/api/v1/module/crm/lead/create?api_key=<api_key> ``` Получаем ответ от сервера о том , что запись успешна создана ```json { "response": { "id":1 } } ``` Найдем сделку по id ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/crm/lead/get/1?api_key=<api_key> ``` Ответа ```json { "response": { "id": 1, "active": 1, "name": "Сделка 1", "company_id": 0, "contact_id": 0, "source_id": 0, "pipeline_id": 1, "description": "", "contact_company": "", "contact_name": "", "contact_position": "", "contact_phone": "", "contact_mobile": "", "contact_email": "", "contact_web": "", "ref": "", "ref_id": 0, "start_date": "", "deadline": "", "assignee_id": 0, "pipeline_stage_id": 1, "budget": 0, "closing_date": "", "closing_status_id": 0, "closing_comment": "" } } ``` # Финансы **(module_name: fin)** ## Cчёт **(entity_name: invoice)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:------------------------ |:------------ |:-------- |:---------------------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален| | uuid | нет, устанавливается автоматически | string | uuid| | invoice_number | нет, устанавливается автоматически | int |Номер счета| | invoice_number_print | нет, устанавливается автоматически | string |Номер счета для печати| | company_phone | нет, устанавливается автоматически | text |Телефон контрагента| | company_phone2 | нет, устанавливается автоматически | text |Дополнительный телефон контрагента| | company_vat | нет, устанавливается автоматически | text |ИНН контрагента| | company_vat2 | нет, устанавливается автоматически | text |КПП контрагента| | contact_person | нет | string |Ф.И.О первого контакта| | show_add_sign_string | нет | boolean |Отображать дополнительную строку подписи. 1 - Да, 0 - Нет| | contact_person_position | нет | string |Должность руководителя| | contact_person2 | нет, устанавливается автоматически | string |Ф.И.О. второго контакта| | contact_person2_position | нет, устанавливается автоматически | string |Должность| | org_phone | нет, устанавливается автоматически | text |Телефон организации| | org_phone2 | нет, устанавливается автоматически | text |Дополнительный телефон организации| | org_vat | нет, устанавливается автоматически | text |ИНН организации| | org_vat2 | нет, устанавливается автоматически | text |КПП организации| | due_date | нет, устанавливается автоматически | date |Оплатить до| | template_id | нет | int |Идентификатор шаблона по которому был создан счет| | currency_id | нет, устанавливается автоматически | int |Идентификатор валюты, в которой выставляется счет| | currency_code | нет, устанавливается автоматически | string |Код валюты, в которой выставляется счет| | sub_total | нет, устанавливается автоматически | price |Сумма счета| | tax_total | нет | price |Сумма налога| | total | нет, устанавливается автоматически | price |Итого| | shipping_charge | да | price |Сбор за поставку| | adjustment | нет | price |Коректировка| | adjustment_description | нет | text |Описание корректировки| | discount | нет, устанавливается автоматически | price |Скидка до применения налога| | discount_before_tax | нет, устанавливается автоматически | boolean |Применять скидку до применения налога. 1 - Да, 0 - Нет| | invoice_emailed_date | нет, устанавливается автоматически | datetime |Дата отправки email по счету| | reminders_sent_date | нет, устанавливается автоматически | datetime |Дата отправки уведомления по счету| | payment_options | | text | | | created_by | да | int |Идентификатор пользователя создавшего счет| | created_date | нет, устанавливается автоматически | datetime |Дата создания счета| | module | нет | string |Название модуля | | model | нет | string |Название модели| | model_id | нет | int |Идентификатор модели| | group_id | нет | int | | | ref | нет | string |Название внешней системы(интеграция)| | ref_id | нет | string |Идентификатор внешней системы (интеграция)| | org_id | да | int |Идентификатор организации выставившей счет| | tax1 | нет, устанавливается автоматически | price |Ставка налога 1 (%)| | tax1_included | нет, устанавливается автоматически | boolean |1 - Включать в цену, 0 - Добавлять в цену| | tax2 | нет, устанавливается автоматически | price |Ставка налога 2 (%)| | tax2_included | нет, устанавливается автоматически | boolean |1 - Включать в цену, 0 - Добавлять в цену| | type | нет | int | | | is_template | нет | boolean |1 - Шаблон, 0 - Не шаблон| | template_name | нет | string |Название шаблона| | pricelist_id | нет | int | | | bank_id | нет | int |Идентификаторо банка| | bank | нет | text |Название банка| | paymethod_id | нет | int | | | exported_1c | нет | boolean | | | estimate_id | нет | int | | | recurring_invoice_id | нет | int |Идентифиактор регулярного счета| | paid_date | нет | datetime |Дата оплаты счета| | reference | нет | string | | | assignee_id | нет | int |Идентификатор ответственного по счету| | customer_id | да | int |Идентификатор контрагента| | customer_name | нет, устанавливается автоматически | string |Имя/Название контрагента| | invoice_date | нет | date |Дата в счете. По умолчанию ставится текущая | | status_id | нет | int |5 - Пусто, 10 - Новый, 12 - Необходимо подтверждение, 13 - Поддтвержден, 20 - Частично оплачен, 30 - Переплачен, 40 - Оплачен| | is_invoice_emailed | нет, устанавливается автоматически | boolean |Статус счета: 1 - Отправленный, 2 - Неотправленный| | is_reminder_sent | нет, устанавливается автоматически | boolean | Отправлено напоминание | | invoice_footer_text | нет | text |Текстовая подпись к счету| | invoice_terms_text | нет | text |Условия оплаты счета| | bill_from_address | нет, устанавливается автоматически | text |Адрес организации| | bill_from_city | нет, устанавливается автоматически | string |Город организации| | bill_from_state | нет, устанавливается автоматически | string |Область/Штат организации | | bill_from_zip | нет, устанавливается автоматически | string |Индекс организации| | bill_from_country_id | нет, устанавливается автоматически | int |Идентификатор страны| | bill_to_address | нет, устанавливается автоматически | text |Адрес контрагента| | updated_by | нет | int |Идентификатор пользователя , который внес изменения в счет| | updated_date | нет, устанавливается автоматически | datetime |Дата изменения счета| ## Товар счета **(entity_name: invoice_item)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:--------------------------- |:------------ |:------- |:-------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | invoice_id | да | int |Идентификатор счета| | ordering | нет | int |Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2 | | item_id | нет | int |Идентификатор товара в модуле "Products"(model_name: products,entity_name: product) | | name | да | string |Название | | description | нет | text |Описание товара | | unit_price | да | price |Цена за единицу товара| | quantity | да | float |Колличество товара | | tax1 | нет | float |Процент налога| | tax1_included | нет | boolean |Включен ли в стоимость| | tax1_amount | нет | price |Стоимость налога| | tax2 | нет | float |Процент налога| | tax2_included | нет | boolean |Включен ли в стоимость| | tax2_amount | нет | price |Стоимость налога| | discount_amount | нет | price |Стоимость скидки| | discount | нет | string |Скидка| | discount_is_percent | нет | int |1 - Скидка в процентах, 0 - Скидка в валюте. По умолчанию - 1| | sub_total | нет, устанавливается автоматически | price |Итого| | tax_total | нет, устанавливается автоматически | price |В том числе НДС| | total | нет, устанавливается автоматически | price |Итого к оплате| | ref | нет | string |Название внешней системы(интеграция)| | ref_id | нет | string |Идентификатор внешней системы (интеграция)| ## Контакты по счету **(entity_name: invoice_contacts)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:-------------------- |:------------ |:-------- |:------------------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален| | invoice_id | да | int | Идентификатор счета| | contact_id | да | int | Идентификатор контакта| | invoice_emailed | нет | boolean |Отправлен ли email. 1 - Да, 0 - Нет| | invoice_emailed_date | нет, устанавливается автоматически | datetime |Дата отправки email по счету| | reminders_sent | нет | boolean | Отправлено ли напоминание. 1 - Да, 0 - Нет| | reminders_sent_date | нет, устанавливается автоматически | datetime |Дата отправки уведомления| ## Финансовая операция (Деньги) **(entity_name: customer_payment)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:---------------- |:------------ |:-------- |:---------------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален| | created_date | нет, устанавливается автоматически | date |Дата создания платежного документа | | name | нет | string |Название платежного документа | | created_by | да | int |Идентификатор пользователя создавшего платежный документ | | total | да | price |Итоговая сумма| | date | да | date |Дата оплаты| | reference | нет | string |Номер документа| | status | нет | int |10 - Исполнен, 0 - Не исполнен. По умолчанию - 0| | crm_company_id | нет | int | Идентификатор контрагента плательщика| | org_id | да | int |Идентификатор организации выставляющей платежный документ| | description | нет | text | Применчание к оплате| | type | да | int |10 - Поступление, 20 - Расход, 30 - Трансфер| | updated_by | нет | int |Идентификатор пользователя который внес изменения| | updated_date | нет, устанавливается автоматически | datetime |Дата изменения| | ref | нет | string |Название внешней системы(интеграция)| | ref_id | нет | string |Идентификатор внешней системы в БД(интеграция)| | ref_uuid | нет | string |Уникальный идентификатор внешней системы (интеграция)| | uuid | нет, устанавливается автоматически | string |Уникальный идентификатор для внешней системы(интеграция)| | ordering | нет | int |Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2. По умолчанию - 0| | need_approve | нет | boolean |Показатель того, что платеж требует внимания пользователя. По умолчанию - 0 | | owner_id | нет | int |Идентификатор ответственного пользователя. По умолчанию - 0 | | bank_account_id | да | int |Идентификатор счёта организации| ## Транзакция **(entity_name: transaction)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:--------------------------- |:------------ |:-------- |:---------------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | name | нет | string |Название транзакции | | description | нет | string |Описание транзакции| | date | нет | date |Дата оплаты (если оставить пустым, берется текущая дата)| | reference | нет| string |Название референса| | income |да, если type=10| price |Поступление (Заполняется если type = 10)| | outcome |да, если type=20| price |Расход(Заполняется если type = 20)| | reference_id |нет | int |Идентификатор сущности с которой связана транзакция (связь)| | type | да | int |10 - Поступление, 20 - Расход| | status | нет | int |10 - Оплачена, 0 - Не оплачена. По умолчанию - 0 | | project_id | нет | int |Идентификатор проекта, с которым связана транзакция| | invoice_id | нет | int |Идентификатор счета, с которым связана транзакция| | org_id | да | int |Идентификатор вашей организации| | org_account_id | да | int |Расчетный счет вашей организации| | crm_account_id | нет | int |Расчетный счет контрагента| | manager_id | нет | int |Идентификатор ответственного пользователя| | category_id | нет | int |Категория По умолчанию - 0 | | is_generated | нет | boolean |Автоматически сгенерированная транзакция: По умолчанию - 0 | | ordering | нет | int |Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2 | | created_by | да | int |Пользователь создавший транзакцию | | created_date | нет, устанавливается автоматически | datetime |Дата создания транзакции| | updated_by | нет | int |Пользователь обновивший транзакцию| | updated_date | нет, устанавливается автоматически | datetime |Дата обновления транзакции| | ref | нет | string |Название внешней системы(интеграция) | | ref_id | нет | string |Идентификатор внешней системы в БД(интеграция)| | ref_uuid | нет | string |Уникальный идентификатор внешней системы (интеграция)| | uuid | нет, устанавливается автоматически | string |Уникальный идентификатор для внешней системы(интеграция)| | project_money_stage_id | нет | int |Идентификатор планового поступления | | project_expense_id | нет | int |Идентификатор плановой затраты | ## Предложение **(entity_name: estimate)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:----------------------- |:------------ |:-------- |:---------------------------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален| | active | нет | boolean | 1 - Активен, 0 - Не активен. По умолчанию - 0 | | estimate_number | нет, устанавливается автоматически | int | Номер предложения | | estimate_number_print | нет, устанавливается автоматически | string | Номер предложения для печати | | reference_number | нет | string | Референс | | company_phone | нет, устанавливается автоматически | text |Телефон контрагента| | company_phone2 | нет, устанавливается автоматически | text |Дополнительный телефон контрагента| | company_vat | нет, устанавливается автоматически | text |ИНН контрагента| | company_vat2 | нет, устанавливается автоматически | text |КПП контрагента| | contact_person | нет | string |Ф.И.О первого контакта| | contact_person_position | нет, устанавливается автоматически | string | Должность первого контакта| | expire_date | нет | datetime | Дата окончания предложения | | template_id | нет | int |Идентификатор шаблона по которому был создан счет| | currency_id | нет, устанавливается автоматически | int |Идентификатор валюты, в которой выставляется счет| | currency_code | нет, устанавливается автоматически | string |Код валюты, в которой выставляется счет| | sub_total | нет, устанавливается автоматически | price |Сумма предложения| | tax_total | нет | price |Сумма налога| | total | нет, устанавливается автоматически | price |Итого| | shipping_charge | да | price |Сбор за поставку| | adjustment | нет | price |Коректировка| | adjustment_description | нет | text |Описание корректировки| | discount | нет, устанавливается автоматически | price |Скидка до применения налога| | discount_before_tax | нет, устанавливается автоматически | boolean |Применять скидку до применения налога. 1 - Да, 0 - Нет| | tax1 | нет, устанавливается автоматически | price |Ставка налога 1 (%)| | tax1_included | нет, устанавливается автоматически | boolean |1 - Включать в цену, 0 - Добавлять в цену| | tax2 | нет, устанавливается автоматически | price |Ставка налога 2 (%)| | tax2_included | нет, устанавливается автоматически | boolean |1 - Включать в цену, 0 - Добавлять в цену| | estimate_emailed_date | нет, устанавливается автоматически | datetime |Дата отправки email по предложению| | | org_id | да | int |Идентификатор организации выставившей счет| | org_phone | нет, устанавливается автоматически | text |Телефон организации| | org_phone2 | нет, устанавливается автоматически | text |Дополнительный телефон организации| | org_vat | нет, устанавливается автоматически | text |ИНН организации| | org_vat2 | нет, устанавливается автоматически | text |КПП организации| | created_date | нет, устанавливается автоматически | datetime |Дата создания предложения| | updated_by | нет | int |Идентификатор пользователя , который внес изменения в счет| | updated_date | нет, устанавливается автоматически | datetime |Дата изменения предложения| | module | нет | string |Название модуля | | model | нет | string |Название модели| | model_id | нет | int |Идентификатор модели| | group_id | нет | int | | | ref | нет | string |Название внешней системы(интеграция)| | ref_id | нет | string |Идентификатор внешней системы (интеграция)| | pricelist_id | нет | int | Связь с сущностью "прайслисты" в модели "Продукты" | | uuid | нет, устанавливается автоматически | string |Уникальный идентификатор | | assignee_id | нет | int |Идентификатор ответственного пользователя по счету| | customer_id | да | int |Идентификатор контрагента| | customer_name | нет, устанавливается автоматически | string |Имя/Название контрагента| | invoice_date | нет | date |Дата в счете. По умолчанию ставится текущая | | status_id | нет | int |5 - Пусто, 10 - Новый, 12 - Необходимо подтверждение, 13 - Поддтвержден, 20 - Частично оплачен, 30 - Переплачен, 40 - Оплачен| | invoice_footer_text | нет | text |Текстовая подпись к счету| | invoice_terms_text | нет | text |Условия оплаты предложения| | bill_from_address | нет, устанавливается автоматически | text |Адрес организации| | | bill_from_country_id | нет, устанавливается автоматически | int |Идентификатор страны| | ## Товар предложения **(entity_name: estimate_item)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:--------------------------- |:------------ |:------- |:-------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | estimate_id | да | int |Идентификатор счета| | ordering | нет | int |Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2 | | item_id | нет | int |Идентификатор товара| | name | да | string |Название | | description | нет | text |Описание товара | | unit_price | да | price |Цена за единицу товара| | quantity | да | float |Колличество товара | | tax1 | нет | float |Процент налога| | tax1_included | нет | boolean |Включен ли в стоимость| | tax1_amount | нет | price |Стоимость налога| | tax2 | нет | float |Процент налога| | tax2_included | нет | boolean |Включен ли в стоимость| | tax2_amount | нет | price |Стоимость налога| | discount_amount | нет | price |Стоимость скидки| | discount | нет | string |Скидка| | discount_is_percent | нет | int |1 - Скидка в процентах, 0 - Скидка в валюте. По умолчанию - 1| | sub_total | нет, устанавливается автоматически | price |Итого| | tax_total | нет, устанавливается автоматически | price |В том числе НДС| | total | нет, устанавливается автоматически | price |Итого к оплате| | ref | нет | string |Название внешней системы(интеграция)| | ref_id | нет | string |Идентификатор внешней системы (интеграция)| ## Контакты по предложению **(entity_name: estimate_contacts)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:-------------------- |:------------ |:-------- |:------------------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален| | estimate_id | да | int | Идентификатор предложения| | contact_id | да | int | Идентификатор контакта| | estimate_emailed | нет | boolean |Отправлен ли email. 1 - Да, 0 - Нет| | estimate_emailed_date| нет, устанавливается автоматически | datetime |Дата отправки email| | extra_fields | нет | text |Дополнительные поля| # Акты **(module_name: finacts)** ## Акт **(entity_name: act)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:-------------------- |:------------ |:-------- |:------------------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | created_by | да | int | Идентификатор пользователя создавшего акт| | updated_by | нет | int | Идентификатор пользователя , который внес изменения в акт| | created_date | нет, устанавливается автоматически |datetime| Дата создания счета| | updated_date | нет, устанавливается автоматически |datetime| Дата изменения счета| | manager_id | нет | int | Идентификатор ответственного пользователя| | crm_account_id | нет | int | Идентификатор контрагента| | template_id | нет | int | Идентификатор шаблона по которому был создан счет | | person1 | нет | string | ФИО ответственного лица Исполнителя| | person1_position | нет | string | Должность ответственного лица Исполнителя| | person2 | нет | string | ФИО ответственного лица Заказчика | | person2_position | нет | string | Должность ответственного лица Заказчика| | reason | нет | text | Причина составления акта | | number | нет | int | Номер акта| | number_print | нет | string | Номер акта для печати| | date | нет | date | Дата акта| | status_id | нет | int | Идентификатор статуса акта| | email_status | нет | int | Статус отправки email| | address1_address | нет | string | Адрус организации| | address1_city | нет | string | Город организации| | address1_state | нет | string | Штат/Область организации| | address1_zip | нет | string | Zip/индекс организации| | address1_country_id | нет | int | Идентификатор страны организации| | address2_address | нет | string | Юридический адрес контрагента| | currency_id | нет, устанавливается автоматически | int | Идентификатор валюты| | sub_total | нет, устанавливается автоматически | price | Сумма акта| | tax_total | нет, устанавливается автоматически | price | Налог по товарам| | total | нет, устанавливается автоматически | price | Итоговая сумма| | shipping_charge | нет | price | Сбор за поставку| | adjustment | нет | price | Корректировка| | adjustment_description | нет | text | Описание корректировки| | terms | нет | text | Текстовая подпись к акту| | uuid | нет, устанавливается автоматически | string | Уникальный идентификатор| | vat1_vat1 | нет, устанавливается автоматически | string | ИНН организации| | vat1_vat2 | нет, устанавливается автоматически | string | КПП организации| | vat1_vat3 | нет, устанавливается автоматически | string | ОГРН организации| | vat2_vat1 | нет, устанавливается автоматически | string | ИНН контрагента| | vat2_vat2 | нет, устанавливается автоматически | string | КПП контрагента| | vat2_vat3 | нет, устанавливается автоматически | string | ОГРН контрагента| | org_id | нет, устанавливается автоматически | int | Идентификатор организации| | company_name | нет, устанавливается автоматически | string | Юридическое наименование контрагента по реквизитам| | company_legal_name | нет, устанавливается автоматически | string | Полное юридическое наименование контрагента по реквизитам | | company_phone | нет, устанавливается автоматически | string | Телефон контрагента| | company_phone2 | нет, устанавливается автоматически | string | Дополнительный телефон контрагента| | tax1 | нет, устанавливается автоматически | price | Ставка налога 1 (%)| | tax1_included | нет, устанавливается автоматически | boolean| 1 - Включать в цену, 0 - Добавлять в цену| | tax2 | нет, устанавливается автоматически | price | Ставка налога 2 (%)| | tax2_included | нет, устанавливается автоматически | boolean| 1 - Включать в цену, 0 - Добавлять в цену| | exported_1c | нет | boolean| Экспортирован из 1С: 1 - Да, 2 - Нет| | ref | нет | string | Название референса| | ref_id | нет | string | Идентификатор референса| | type | нет | int |10 - Акт, 20 - Накладная| | pricelist_id | нет | int || | account_id | да | int | Идентификатор контрагента| | account_name | нет, устанавливается автоматически | string | Имя/Название контрагента| | status_name | нет, устанавливается автоматически | string | Название статуса (Берется по status_id)| | organization_name | нет, устанавливается автоматически | string | Название организации| | organization_id | нет, устанавливается автоматически | int | Идентификатор организации| | invoice_id | нет, устанавливается автоматически | int | Идентификатор счета по которому был создан акт| | invoice_ref | нет, устанавливается автоматически | string | Название референса счета по которому был создан акт| | invoice_ref_id | нет, устанавливается автоматически | string | Идентификатор референса счета по которому был создан акт| ## Товар акта **(entity_name: item)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:------------------- |:------------ |:----- |:------------------------------------ | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | act_id | | int |Идентификатор акта| | invoice_item_id | | int |Идентификатор товара из счетов| | product_item_id | | int |Идентификатор товара из каталога товаров| | name | да | string |Название | | description | нет | text |Описание товара | | unit_price | да | price |Цена за единицу товара| | quantity | да | float |Колличество товара | | tax1 | нет | float |Процент налога| | tax1_included | нет | boolean|Включен ли в стоимость| | tax1_amount | нет | price |Стоимость налога| | tax2 | нет | float |Процент налога| | tax2_included | нет | boolean|Включен ли в стоимость| | tax2_amount | нет | price |Стоимость налога| | discount_amount | нет | price |Стоимость скидки| | discount | нет | string |Скидка| | discount_is_percent | нет | int |1 - Скидка в процентах, 0 - Скидка в валюте. По умолчанию - 1| | sub_total | нет, устанавливается автоматически | price |Итого| | tax_total | нет, устанавливается автоматически | price |В том числе НДС| | total | нет, устанавливается автоматически | price |Итого к оплате| | uuid | нет, устанавливается автоматически | string | Уникальный идентификатор | | ref | нет | string |Название внешней системы(интеграция)| | ref_id | нет | string |Идентификатор внешней системы (интеграция)| | extra_fields | нет | text |Дополнительные поля| ## Статус **(entity_name: status)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:------------ |:------------ |:--- |:------------------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | created_date | нет, устанавливается автоматически |datetime| Дата создания статуса| | created_by | да | int | Идентификатор пользователя, который создал статус| | updated_by | нет | int | Идентификатор пользователя, который изменил статус| | updated_date | нет, устанавливается автоматически |datetime| Дата изменения статуса | | name | да |string| Название статуса | | ordering | нет | int |Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | ref | нет | string |Название внешней системы(интеграция)| | ref_id | нет | string |Идентификатор внешней системы (интеграция)| ## Связь **(entity_name: relation)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:------------ |:------------ |:-------- |:-------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален | | act_id | да | int | Идентификатор акта| | module | да | string | Название модуля с которым связан акт| | model | да | string | Название модели с которой связан | | model_id | да | int | Идентификатор модели с которой связан акт| | created_date | нет, устанавливается автоматически | datetime | Дата создания связи| | updated_date | нет, устанавливается автоматически | datetime | Дата изменения связи| | created_by | да | int | Идентификатор пользователя, который создал связь| | updated_by | нет | int | Идентификатор пользователя, который изменил связь| | extra_fields | нет | text | Дополнительные поля| ## Контакты по актам **(entity_name: contacts)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | |:-------------------- |:------------ |:-------- |:------------------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален| | act_id | да | int | Идентификатор акта| | contact_id | да | int | Идентификатор контакта| | act_emailed | нет | boolean |Отправлен ли email. 1 - Да, 0 - Нет| | act_emailed_date| нет, устанавливается автоматически | datetime |Дата отправки email| | extra_fields | нет | text |Дополнительные поля| # Задачи **(module_name: task)** ## Задача **(entity_name: task)** ### Описание Модуль «Задачи» позволит организовать совместную работу, делегировать дела, контролировать работу коллег и дедлайны. ### Описание полей | Поле | Обязательное | Тип | Описание | | -------------------- | ------------ | -------- | --------------------------| | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален| | name | да | string | Название| | description | нет | text | Описание| | report | нет | text | Отчет| | parent_id | нет | int | Задача-родитель| | prev_task_id | нет | int | Задача-предшественник| | deadline | нет | datetime | Крайний срок выполнения задачи| | deadline_allowchange | нет | boolean | Можно ли изменять deadline в процессе выполнения задачи.0 - Нет, 1 - Да, по умолчанию = 0.| | plan_start_date | нет | datetime | Плановая дата начала задачи| | plan_end_date | нет | datetime | Плановая дата завершения задачи| | priority | нет | int | Приоритет: 1 - Низкий,2 - Средний, 3 - Высокий| | responsible_id | да | int | Ответственный задачи| | time_estimate | нет | int | Плановое время выполнения задачи| | time_spent | нет | int | Затраченное время на задачу| | created | нет, устанавливается автоматически | datetime | Дата создания задачи| | created_by | да | int | Идентификатор постановщика задачи| | changed | нет, устанавливается автоматически | datetime | Дата изменения задачи| | changed_by | нет | int | Идентификатор пользователя который изменил задачу| | deadline_reason | нет | text | Причина по которой задачи был назначен deadline| | status_firstviewdate | нет | datetime | Дата первого просмотра| | status_expired | нет | boolean | Срок задачи истек: 0 - Нет, 1 - Да.| | status | нет | int | 1 - Новая задача, 3 - Задача выполняется, 4 - Ожидает проверки постановщика, 5 - Задача завершена| | start_date | нет | datetime | Дата начала выполнения задачи| | start_by | нет | int | Идентификатор пользователя, который начал выполнять задачу| | closed_date | нет | datetime | Дата закрытия задачи| | first_closed_date | нет | datetime | Дата первого закрытия задачи| | closed_by | нет | int | Идентификатор пользовтеля, который закрыл задачу| | return_count | нет | int | Колличество возвращений к задаче| | rating | нет | int |Оценка задачи: 1 - Плохо, 3 - Нормально, 5 - хорошо| | status_changed_date | нет | datetime | Дата смены статуса у задачи| | status_changed_by | нет | int | Пользователь, который изменил статус задачи| | ref | нет | string | Название внешней системы(интеграция)| | ref_id | нет | string | Идентификатор внешней системы| | module | нет | string | Модуль системы к которому привязана задача| | model | нет | string | Модель системы к которому привязана задача| | model_id | нет | int | Идентивикатор модели системы к которому привязана задача| | group_id | нет | int | Дополнительное поле для привязки| | group2_id | нет | int | Дополнительное поле для привязки| | type | нет | int |Тип задачи: 0 - Задача; 1 - Входящие, 10 - Веха; 20 - Событие, 21 - Событие "звонок", 22 - Событие "письмо", 23 - Событие "встреча", 30 - Шаблон задачи| | crm_company_id | нет | int | Идентификатор контрагента(Используется для связи задачи)|| all_day | нет | boolean | Флаг задачи, который означает что задача назначена на весь день. 0 - Не весь день, 1 - Весь день. По умолчанию = 0| | ordering | да | float | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | uuid | нет, устанавливается автоматически | string | Уникальный идентификатор задачи| | progress | нет | int | Прогресс выполнения задачи:1 - 0%, 2 - 25%, 3 - 50%, 4 - 75%, 5 - 100%.| | public_template | нет | int |1 - Публичный шаблон, 0 - Не публичный шаблон| | template_id | нет | int | Идентификатор шаблона по которому была создана задача| | is_repeat | да | boolean | Регулярная задача: 0 - Не регулярная, 1 - Регулярная. По умолчанию - 0| | event_location | нет | string | Расположение события к задаче| | event_color | нет | string | Цвет события в формате HEX| | event_busy_status | нет | int | Статус события| | event_access_type | нет | int | Тип прав доступа события| | event_calendar_id | нет | int | Идентификатор календаря события| | event_type | нет | int | Тип события| | event_etag | нет | string | Уникальный идентификатор события для Google| | event_sync_type | нет | int | Синхронизация события c Google| | stage | нет | int | Этапы выполнения задачи на доске задач: 1 - Новая задача, 3 - Задача в работе, 4 - Условно завершена (ждёт контроля постановщика), 5 - Задача завершена | | archive_status | да | int | Находится ли задача в архиве:0 - Задача активна, 10 - Задача в архиве. По умолчанию - 0| ## Примеры ### Создание задачи Для создания задачи необходимо с методом create передать название задачи,id ответственного задачи и id постановщика задачи. Так же, по желанию, можно добавить наблюдателей задаче по полю collaborator_id[ ].Ответственный(исполнитель) и наблюдатели получат уведомление о том, что для них создана задача. ```console curl -H "application/x-www-form-urlencoded" -X POST -d "name=<Название задачи>&responsible_id=<id ответственного задачи>&created_by=<id постановщика задачи>&collaborator_id[]=<id наблюдателя>&collaborator_id[]=<id наблюдателя>" https://<account_code>.flowlu.ru/api/v1/module/task/task/create?api_key=<api_key> ``` Получаем ответ от сервера о том , что запись успешна создана и ее id ```json { "response": { "id":21 } } ``` Найдем задачу по id ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/task/task/21?api_key=<api_key> ``` Ответ ```json { "response": { "id": 21, "name": "test3", "description": "", "report": "", "parent_id": 0, "prev_task_id": 0, "deadline": "", "deadline_allowchange": 0, "plan_start_date": "", "plan_end_date": "", "priority": 2, "task_checkbyowner": 0, "responsible_id": 146594, "time_estimate": 0, "time_spent": 0, "created": "2020-08-26 09:31:16", "created_by": 146594, "changed": "2020-08-26 09:31:42", "changed_by": 146594, "status_firstviewdate": "2020-08-25 22:00:00", "status_expired": 0, "status": 1, "start_date": "", "start_by": 0, "closed_date": "", "first_closed_date": "", "closed_by": 0, "return_count": 0, "rating": 0, "status_changed_date": "", "status_changed_by": 0, "ref": "", "ref_id": "", "module": "", "model": "", "model_id": 0, "group_id": 0, "group2_id": 0, "type": 0, "report_complete": "", "crm_company_id": 0, "all_day": 0, "ordering": 787520, "uuid": "be75486e-e765-11ea-a00c-fa163e7d9ee1", "progress": 0, "public_template": 0, "template_id": 0, "is_repeat": 0, "event_location": "", "event_color": "", "event_busy_status": 0, "event_access_type": 0, "event_calendar_id": 0, "event_type": 0, "event_etag": "", "event_sync_type": 0, "extra_fields": null, "stage": 1, "archive_status": 0 } } ``` ### Привязка задачи Задачу можно привязывать к сделкам, проектам и контрагентам. Привязка к сделкам и к проектам осуществляется по полям module, model, model_id. К контрагенту - crm_company_id = id контрагента. Пример привязки задачи к module = st, model = project, crm_company_id = 1. ```console curl -H "application/x-www-form-urlencoded" -X POST -d "module=st&model=project&crm_company_id=1" https://<account_code>.flowlu.ru/api/v1/module/task/task/create?api_key=<api_key> ``` # Проекты > **Обратите внимание что module проекты называется st!** **(module_name: st)** > Мы еще работаем над описаниями и примерами ## Проект **(entity_name: project)** ### Описание Проект - это запись в module ST, отражающая информацию о проектах , которыми занимается ваша компания. У проектов есть этапы, команда, которая занимается проектом, сотрудник ответственный за проект. Проект может быть привязан к сделке. ### Описание полей | Поле | Обязательное | Тип | Описание| | ------------------------------------- | ------------ | -------- |:---------| | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален| | name | да | string | Название проекта| | contract_sum | нет | price | Планируемая выручка (для billing_type = 0)| | expense_sum | нет | price | Планируемые затраты (для billing_type = 0)| | startdate | нет | date | Дата начала проекта| | enddate | нет | date | Дата завершения проекта| | manager_id | да | int | Идентификатор ответственного пользователя| | comment | нет | text | Описание проекта| | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | stage_id | нет | int | Идентификатор этапа на котором сейчас находится проект, этапы создаются вручную в проектах.| | project_type_id | нет | int | Идентификатор шаблона проекта| | is_archive | нет | int | Находится ли проект в архиве: 0 - Проект активна, 10 - Проект в архиве. По умолчанию - 0| | archive_date | нет | date | Дата архивирования проекта| | priority | нет | int | Приоритет: 1 - Низкий,2 - Средний, 3 - Высокий| | customer_crm_company_id | нет | int | Идентификатор контрагента типа компания| | customer_crm_contact_id | нет | int | Идентификатор контрагента типа контакт| | workspace_id | нет | int | Идентификатор workspace| | crm_lead_id | нет | int | Идентификатор сделки привязанной к данному проекту| | uuid | нет, устанавливается автоматически | string | Уникальный идентификатор проекта(uuid_v4)| | ref | нет | string | Название внешней системы(интеграция)| | ref_id | нет | string | Идентификатор внешней системы| | created_by | нет, устанавливается автоматически | int | Идентификатор создателя проекта| | created_date | нет, устанавливается автоматически | datetime | Дата создания проекта| | updated_by | нет | int | Идентификатор пользователя , который внес изменения в проект| | updated_date | нет, устанавливается автоматически | datetime | Дата изменения проекта| | billing_type | да | int | Режим управления финансами: 0 - Фиксированные значения плана выручки и расходов, 20 - Планирование денежного потока, 30 - Не учитывать финансы. По умолчанию - 0| | default_billing_rate | нет | price | Стандартная стоимость одного часа работ по умолчанию| | default_bill_time_type | нет | string | Выбрать тип оплаты, который определяет по какому времени выставлять счет(Реальное потраченое время или планируемое потраченое время) выставленное по умолчанию на весь проект | | use_default_invoice_split_type | да | boolean | Использовать в проекте модуль формирования строк счета: 1 - Использовать, 0 - не использовать. По умолчанию - 0| | default_invoice_split_type_in_project | нет | int | Способ формирования строк счета: 10 - Одной строкой,20 - По задачам,30 - По записям времени| | default_invoice_item_format| нет | string |Формат счета на оплату| ## Шаблон проектов **(entity_name: type)** ### Описание Благодаря шаблонам вы сможете быстро создавать проекты с заранее определенной структурой работ и автоматизировать контроль за прогрессом этих проектов. В шаблоне можно задать этапы, вехи (контрольные точки), набор стандартных задач. ### Описание полей | Поле | Обязательное | Тип | Описание | | ------------------------ | ------------ | ------- | ---------------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален.| | name | да | string | Название шаблона проекта.| | description | нет | text | Описание шаблона проекта.| | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2.| | report | нет | text | Отчет по проекту.| | нет, устанавливается автоматически_startdate_plus_days | да | int | При создании нового проекта дата начала проекта будет расчитываться как текущая дата + нет, устанавливается автоматически_startdate_plus_days. По умолчанию - 0. | | нет, устанавливается автоматически_enddate_plus_days | да | int | При создании нового проекта дата конца проекта будет расчитываться как текущая дата + нет, устанавливается автоматически_enddate_plus_days. По умолчанию - 0. | | ref | нет | string |Название внешней системы(интеграция).| | ref_id | нет | string |Идентификатор внешней системы.| | create_tasks_next_stage | да | boolean |Режим создания задач. 1 - Создавать задачи только для текущего этапа. 0 - Создавать все задачи при создании проекта. По умолчанию - 0. | | manual_close_checkitems | да | boolean |Закрывать вехи вручную. Разрешить пользователям вручную отмечать веху как завершенную, даже если у нее есть незавершенные задачи. 1 - Разрешить, 0 - Запретить. По умолчанию - 1. | | is_active | да | boolean | Активен ли шаблон.1 - Активен, 0 - Не активен. По умолчанию - 0. | | description_project | нет | text |Описание проекта. | ## Этапы разработки проекта **(entity_name: stages)** ### Описание > Если проект создается по шаблону проекта, то этап привязывается по полю project_type_id. Если проект создается "чисто", то этап привязывается по полю project_id. ### Описание полей | Поле | Обязательное | Тип | Описание | | --------------- | ------------ | ------ | -------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален.| | name | да | string | Название этапа| | ordering | нет | int | Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2. | | project_type_id | нет | int | Идентификатор проекта в шаблоне проектов к которому привязан этап | | color_class | нет | string | *В разработке* | | description | нет | text |Описание проекта| | fullname | нет | string |Полное название (используется в отчётах)| | project_id | нет | int |Идентификатор проекта в котором находится этап| | ref | нет | string |Название внешней системы(интеграция).| | ref_id | нет | string |Идентификатор внешней системы. | | color | нет | string | *В разработке* | ## Вехи этапа проекта **(entity_name: checkitem)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | | ----------------- | ------------ |:-------- | ------------------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален.| | name | да | string |Название вехи | | ordering | нет | int |Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2.| | stage_id | да | int |Идентификатор этапа в котором расположена веха| | active | нет | boolean |1 - Активна, 0 - Неактивна. По умолчанию - 1| | description | нет | text |Описание вехи| | report | нет | text |Отчет по вехе| | project_id | да | int |Идентификатор проекта в котором находится этап в котором находится веха| | checked | нет | boolean |1 - Завершена, 0 - Не завершена. По умолчанию - 0| | from_checkitem_id | нет | int | Идентификатор родительской вехи в шаблоне проектов(используется если проект был создан из шаблона) | | enddate | нет, устанавливается автоматически | datetime |Если веха завершена, здесь показывается дата завершения | | responsible_id | нет | int |Идентификатор ответственного по вехе| | created_by | нет | int |Идентификатор пользователя, который создал веху| | updated_by | нет | int |Идентификатор пользователя, который внес изменения в веху| | created_date | нет, устанавливается автоматически | datetime |Дата создания вехи | | updated_date | нет, устанавливается автоматически | datetime |Дата обновления вехи | ## Ответственные по вехе **(entity_name: сheckitemresponsible)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | | ------------------ |:------------ |:--- |:------------------------ | | project_id | да | int | Идентификатор проекта | | stage_checkitem_id | да | int | Идентификатор вехи | | user_id | да | int | Идентификатор пользователя | ## Команда проекта **(entity_name: projectobservers)** ### Описание ### Описание полей | Поле | Обязательное | Тип | Описание | | ---------- |:------------ |:--- |:------------------------ | | project_id | да | int | Идентификатор проекта | | user_id | да | int | Идентификатор пользователя | ## Плановая выручка **(entity_name: projectmoneystage)** ### Описание > Перед тем как добавлять плановую выручку проекту, проверьте что выбран режим управления финансами "Планирование денежного потока" ### Описание полей | Поле | Обязательное | Тип | Описание | | ---------------- |:------------ |:-------- |:-------- | | id | нет, устанавливается автоматически | int |Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален. | | project_id | да | int | Идентификатор проекта | | name | да | string | Названиие этапа оплаты | | total | да | price | Сумма оплаты | | status_paid | нет, устанавливается автоматически | int |0 - Не оплачен,10 - Оплачен, 20 - Переоплачен, 30 - Частично оплачен.| | paid_date | нет | date | Дата создания этапа оплаты | | plan_paid_date | нет | date |Плановая дата оплаты | | org_id | нет | int |Идентификатор организации откуда поступает оплата | | category_id | нет | int |Финансовая статья| | manager_id | нет | int |Идентификатор ответственного за этап пользователя| | description | нет | text |Описание | | project_stage_id | нет | int |Идентификатор этапа проекта к которому привязана сущность| | created_by | нет | int |Идентификатор пользователя создавшего этап оплаты| | created_date | нет, устанавливается автоматически | datetime |Дата создания| | updated_by | нет | int |Идентификатор пользователя изменившего этап оплаты| | updated_date | нет, устанавливается автоматически | datetime |Дата изменения | | org_account_id | нет | int | Идентификатор счета организации откуда поступает оплата | | ordering | нет | int |Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | crm_company_id | нет | int |Идентификатор контрагента| | invoice_id | нет | int |Идентификатор счета на оплату| ## Плановые затраты **(entity_name: projectexpense)** ### Описание > Перед тем как добавлять плановые затраты проекту, проверьте что выбран режим управления финансами "Планирование денежного потока" ### Описание полей | Поле | Обязательное | Тип | Описание | |:---------------- | ------------ |:-------- |:------------------- | | id | нет, устанавливается автоматически | int | Идентификатор записи в базе данных вашего аккаунта. Служебное поле, присваивается инкрементно автоматически при создании записи. Не может быть изменен, удален.| | project_id | да | int | Идентификатор этапа проекта к которому привязан этап оплаты| | name | да | string | Название этапа затрат | | total | да | price | Сумма затраты | | status_paid | нет | int |0 - Не оплачен,10 - Оплачен, 20 - Переоплачен, 30 - Частично оплачен| | date | нет | datetime | Плановая дата оплаты | | org_id | нет | int | Идентификатор организации куда поступает затрата | | category_id | да | int | Статья | | manager_id | да | int |Идентификатор ответственного за этап пользователя| | description | нет | text |Описание | | project_stage_id | нет | int |Идентификатор этапа проекта к которому привязан этап оплаты| | created_by | нет | int |Идентификатор пользователя создавшего этап оплаты| | created_date | нет, устанавливается автоматически | datetime |Дата создания| | updated_by | нет | int |Идентификатор пользователя изменившего этап оплаты| | updated_date | нет, устанавливается автоматически | datetime |Дата изменения | | org_account_id | нет | int | Идентификатор счета организации куда поступает затрата | | ordering | нет | int |Индекс сортировки, система сортирует от меньшего к большему. Например: запись со значением поля 1, будет выше записи со значением поля 2| | crm_company_id | нет | int |Идентификатор контрагента| ## Примеры ### Создание задачи Для создания проекта необходимо с методом create передать название проекта, id пользователя(менеджер по проекту). ```console curl -H "application/x-www-form-urlencoded" -X POST -d "name=<Название проекта>&manager_id=<id пользователя>" https://<account_code>.flowlu.ru/api/v1/module/st/project/create?api_key=<api_key> ``` Получаем ответ от сервера о том , что запись успешна создана и ее id ```json { "response": { "id":5 } } ``` Найдем проект по id ```curl curl -X GET https://<account_code>.flowlu.ru/api/v1/module/st/project/1?api_key=<api_key> ``` Ответ от сервера ```json { "response": { "id": 5, "name": "test1", "contract_sum": 0, "expense_sum": 0, "contract_signed": 0, "startdate": "2020-08-26", "enddate": "", "manager_id": 146594, "comment": "", "ordering": 0, "stage_id": 0, "project_type_id": 0, "is_archive": 0, "archive_date": "", "priority": 0, "customer_crm_company_id": 0, "customer_crm_contact_id": 0, "extra_fields": "{\"not_create_chat\":1}", "workspace_id": 0, "crm_lead_id": 0, "uuid": "", "ref": "", "ref_id": "", "created_by": 0, "created_date": "2020-08-26 11:44:47", "updated_by": 0, "updated_date": "", "billing_type": 0, "default_billing_rate": 0, "default_bill_time_type": "", "use_default_invoice_split_type": 0, "default_invoice_split_type_in_project": 0, "default_invoice_item_format": "" } } ``` ### Создаем событие по проекту > В разработке ### Получение списка шаблонов проекта ```console GET https://company.flowlu.ru/api/v1/module/st/project/list?api_key=<api_key> ``` # Тайм трекер **(module_name: timetracker)** ### Сущность агрегирующая все временные записи по задаче/agile-задаче (entity_name: timesheet) ### Детальная запись времени (entity_name: timelog) # Списки **(module_name: customlists)** ### Список (entity_name: lists) ### Элемент списка (entity_name: items) > Имена полей списка формируются по шаблону cf_<id поля> > Для фильтрации по пользовательскому полю имя фильтра нужно формировать по шаблону cf.field_<id поля> # System **(module_name: system)** ### Комментарий (entity_name: comments) ### Файл (entity_name: files) # Core **(module_name: core)** ## Пользователь **(entity_name: user)** ### Просмотреть список всех сотрудников ```curl curl -X GET https://<account_code>.flowlu.ru/api/v1/module/core/user/list?api_key=<api_key> ``` ### Получить конкретного пользователя по id ```curl curl -X GET https://<account_code>.flowlu.ru/api/v1/module/core/user/get/<id>?api_key=<api_key> ``` # Примеры ### Фильтрация по пользовательским полям ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/<module_name>/<entity_name>/list?search=flowlu&page=1&api_key=<api_key>&filter[cf.field_<field_id>]=<filter_value> ``` ### Получение списка элементов конкретного пользовательского списка ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/customlists/lists/<customlist_id>/items?api_key=<api_key> ``` ### Получение списка комментариев конкретной сущности ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/<module_name>/<entity_name>/<entity_id>/comments/list?api_key=<api_key> ``` ### Получение конкретного комментария ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/system/comments/<comment_id>/?api_key=<api_key> ``` ### Получение списка файлов конкретной сущности ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/<module_name>/<entity_name>/<entity_id>/files/list?api_key=<api_key> ``` ### Получение конкретного файла ```console curl -X GET https://<account_code>.flowlu.ru/api/v1/module/system/files/<file_id>/?api_key=<api_key> ``` ### Создание комментария для конкретной сущности ```console curl --request POST \ --url 'https://<account_code>.flowlu.com/api/v1/module/<module_name>/<entity_name>/<entity_id>/comments/create?api_key=<api_key>' \ --header 'content-type: application/x-www-form-urlencoded' \ --data 'text=<p>comment</p>' ``` ### Получение тэгов конкретной сущности ```console curl --location --request GET 'https://<account_code>.flowlu.ru/api/v1/module/<module_name>/<entity_name>/<entity_id>/entity_tags/list?api_key=<api_key>' ``` # Примеры использования