plumbing api v 2.9

Документация API INTRUM CRM

Основное
Данное API предоставляет доступ к данным CRM и Интранет.
Запросы отправляются на адрес: http://domainname.intrumnet.com:81/sharedapi/[тип_объекта]/[подтип] где domainname заменяется на имя вашего домена CRM.
Все запросы должны содержать ключ доступа длинной 32 символа. Ключ вы должны активировать в административной понели CRM INTRUM. Пример запроса: {
  apikey: /* 32 значный ключ */,
  params: /* ассоциативный массив параметров */
}
Ответ доступен в формате JSON. При успешно выполненном запросе ответ будет в следующем виде: {
  status: "success",
  data: /* объект */
}
В случае ошибки придет ответ: {
  status: "fail",
  message: /* код ошибки */
}
Возможные коды ошибок:
  • ACCESS_DENY - нет доступа
  • LIMIT_EXCEEDED - превышен лимит запросов
  • BAD_REQUEST - неверный запрос объекта
  • BAD_PARAMS - неверные параметры запроса
  • SERVER_IS_OVERLOADED - сервер перегружен

Внимание!

По умолчанию действуют следующие ограничения:
  • - Число запросов по умолчанию не более 200 в час (может быть увеличен индивидуально)
  • - Число элементов массива в запросе с учетом вложенных не более 1000

Внимание!

Если возникли ошибки подключения, Вы можете попробовать использовать альтернативный порт 80

Кодировка запросов UTF-8

Для корректной обработки рекомендуем использовать кодировку UTF-8 для всех параметров запроса.

Информация при написании кода не на PHP

Заголовок должен содержать "Content-Type": "application/x-www-form-urlencoded" и тело запроса должно быть в формате "PHP_QUERY_RFC1738"
Для более быстрого старта работы с API вы можете использовать готовые примеры скриптов, а также PHP библиотеку со всеми необходимыми методами на github (также можете установить библиотеку через composer - имя пакета intrum/api)
Что такое типы данных и поля в CRM можно ознакомиться здесь.
Формат данных
radio Выбор Да(1) Нет(0)
select Выбор одного
multiselect Выбор нескольких
date Дата 2014-03-14
datetime Дата 2014-03-14 21:34:05
time Время 21:34:05
integer Целое
decimal Вещественное
text Текст
price Цена (в формате, например: 10.52)
file Ссылка на файл
- Для объектов
    изображения
        /files/crm/product/$filename - оригинал
        /files/crm/product/resized200x200/$filename - маленькое
        /files/crm/product/resized800x600/$filename - большое
    прочие
        /files/crm/product/$filename
- Остальные файлы
    /files/crm/$filename
point Гео координата // передается в формате array('lat'=>"35.013116",'lon'=>"41.906049")
integer_range Диапазон целых от - до // передается в формате array('from' => 1,'to' => 2)
decimal_range Диапазон вещественных от - до // передается в формате array('from' => 1.1,'to' => 2.1)
date_range Диапазон даты от - до
time_range Диапазон времени от - до
datetime_range Диапазон дата+время от - до
attach Прикрепление

Внимание !

Для типов запрашиваемых сущностей "Объекты" и "Заявки" ("Активности"), поля с типом select и multiselect, зависящие от варианта выбора родителя (nested_selects) по умолчанию не отдаются, их нужно загружать отдельно, т.к. количество вариантов может достигать нескольких тысяч.

Загрузка вариантов выбора
URL: http://domainname.intrumnet.com:81/sharedapi/utils/variants
Параметры:
property_id - id поля выбора

Загрузка вариантов выбора привязанных к конкретному значению (для зависимых полей)
URL: http://domainname.intrumnet.com:81/sharedapi/utils/binded
Параметры:
bind - id варианта выбора
Константы настраиваются в Административной панели в разделе "Настройки полей для отчетов"
URL: http://domainname.intrumnet.com:81/sharedapi/constants
Параметры: нет
Что такое статьи и внутренний корпоративный портал (интранет) можно ознакомиться WIKI справочнике CRM INTRUM
Получение списка статей. Статьи могут быть вложены друг в друга.
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/publication/list
    Параметры:
    parent_id - id родителя (обязательное поле, корень = 0)
    Ответ: {
      1: {
        id: "1",
        description: "",
        news: "1",
        date_news: "2011-06-01 00:00:00",
        title: "Новости",
        publ: "1",
        childs: true
      },
      2: {
        id: "2",
        description: "",
        news: "0",
        date_news: "2011-06-01 00:00:00",
        title: "Продукт",
        publ: "1",
        childs: true
      }
    }
    • id - id статьи
    • description - короткое описание
    • news - отметка, является ли разделом новостей
    • title - заголовок
    • publ - отметка о публикации
    • childs - отметка о наличии вложенных статей
    Получение отдельной статьи
    URL: http://domainname.intrumnet.com:81/sharedapi/publication/single
    Параметры:
    id - id статьи (обязательное поле)
    Ответ: {
      871: {
        id: "871",
        title: "Приказ № 73 от 22.07.2014г.",
        description: "О результатах проведения оценки",
        parent_id: "1",
        body: "",
        publ: "1",
        created_at: "2014-07-23 09:15:54",
        files: {
          2484: {
            title: "73_2014.pdf",
            url: "/file/load/2484"
          }
        },
        images: {
          382: {
            title: "Название",
            description: "Описание",
            width: 600,
            height: 400,
            url: "/images/article/382.jpg",
            preview: "/images/article/382_250x250.jpg"
          }
        },
        childs: [ ]
      }
    }
    • id - id статьи
    • title - заголовок
    • description - короткое описание
    • parent_id - id родителя
    • body - текст статьи
    • created_at - дата создания
    • files - прикрепленные файлы
    • images - прикрепленые фото
    • childs - массив вложенных статей
    Запрос данных полей формы, все запросы должны быть посланы методом POST
    URL: http://domainname.intrumnet.com:81/onlineforms
    справочник примеры интеграции форм
    Параметры:
    action - передать значение getform
    form - ID запрашиваемой формы
    host - если используется AJAX запрос, необходимо указать имя сайта, с которого происходит запрос в формате sitename.com
    Ответ: {
      //ID формы
      formtype: "1",
      //Имя мормы
      name: "Заявка на кредит",
      //Описание
      description: "Вы можете оставить заявку на кредит",
      //Текст показываемый пользователю после заполнения
      feedback: "Спасибо, мы свяжемся с Вами в ближайшее время",
      //Основные поля контакта, состав свойст аналогичен составу допполей
      def_customer: {
        //Фамилия
        surname: {...},
        //Имя
        name: {...},
        //Отчество
        secondname: {...},
        //Email адрес
        email: {...},
        //Телефон
        phone: {...}
      },
      //Дополнительные поля контакта
      ext_customer: {
        //ID дополнительного поля
        31: {
          //ID дополнительного поля
          id: "31",
          //Название поля
          name: "Статус контакта",
          //Имя поля при отображении
          placeholder: "Статус контакта",
          //Обязательность
          require: "0",
          //Подсказка к дополнительному полю формы
          tip: "",
          //Подсказка к дополнительному полю CRM
          hint: "",
          //Тип данных
          type_data: "select",
          //Для полей с типом select и multiselect, если есть связь с родительским полем
          parent: "30",
          //Для полей с типом select и multiselect варианты выбора
          variants: [
          //Аналогично объектам
          ]
        },
      },
      //Дополнительные поля запроса
      ext_request: {
        //Аналогично полям контакта
      },
      //Основные поля объектов
      def_stock: {
        name: {...},
        parent: {
          ...
          //Список категорий
          variants: [],
        }
      },
      //Дополнительные поля объектов
      ext_stock: {
        //Аналогично полям контакта
      }
    }
    Отправка заполненной формы
    URL: http://domainname.intrumnet.com:81/onlineforms
    справочник примеры интеграции форм
    Параметры:
    action - значение fillform
    formtype - ID типа формы
    host - если используется AJAX запрос, необходимо указать имя сайта, с которого происходит запрос в формате sitename.com
    data - данные полей
    def_customer - массив с основными данными по контакту (surname,name, secondname, email, phone)
    ext_customer - массив с данными дополнительных полей по контакту (массив вида: {'id поля':{ value: 'значение'}, 'id поля':{ value: 'значение'})
    ext_request - массив с данными дополнительных полей по прикрепеленной активности/заявки (массив вида: {'id поля':{ value: 'значение'}, 'id поля':{ value: 'значение'})
    def_stock - массив с основными данными по прикрепеленному объекту (name, parent)
    ext_stock - массив с данными дополнительных полей по прикрепеленному объекту (массив вида: {'id поля':{ value: 'значение'}, 'id поля':{ value: 'значение'})
    {
      //Основные поля контакта
      def_customer: {
        //Фамилия
        surname: '',
        //Имя
        name: '',
        //Отчество
        secondname: '',
        //Email
        email: 'from@gmail.com',
        //Телефон
        phone: '+79432100000'
      },
      //Дополнительные поля контакта
      ext_customer: {
        //ID дополнительного поля
        '24':{
          //Значение
          value: ''
        }
      },
      ext_request: {
        //ID дополнительного поля
        '67':{
          //Значение
          value: ''
        }
      },
      def_stock: {
        //Наименование
        name: '',
        //ID категории
        parent: '',
      },
      ext_stock: {
        //Наименование
        '24':{
          //Значение
          value: ''
        }
      }
    }
    Ответ: {
      //Статус
      status: "success",
      //ID заполненой формы
      form: "34"
    }
    Запрос всех доступных типов объектов:
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/types
    Параметры: нет
    Ответ: [
      {
        id: "1",
        name: "Жилая недвижимость",
        groups: ["149","150"]
      },
      {
        id: "2",
        name: "Загородная недвижимость",
        groups: ["150"]
      }
    ]
    • id - id типа объекта
    • name - название
    • groups - список CRM групп, имеющих доступ
    Запрос доступных категорий объектов
    URL: http://domainname.intrumnet.com:81/sharedapi/stock/category
    Параметры: нет
    Ответ: {
      14: [
        {
          id: "1",
          tree_id: "1",
          tree_parent: "0",
          name: "РАДИАТОРЫ ОТОПЛЕНИЯ"
        },
        {
          id: "2",
          tree_id: "2",
          tree_parent: "1",
          name: "GLOBOL"
        },
        {
          id: "3",
          tree_id: "3",
          tree_parent: "1",
          name: "GABI SYPER"
        },
        {
          id: "4",
          tree_id: "4",
          tree_parent: "1",
          name: "GABI ELITE"
        }
      ]
    }
    • 14 - id типа объекта
    • id - id категории объекта
    • tree_id - id потомок для вложенных категории объекта
    • tree_parent - id родитель для вложенных категорий
    • name - название категории объекта
    Получение перечня и структуры дополнительных полей для типов объекта
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/fields
    Параметры: нет
    Ответ: {
      35: {
        groups: [
          {
            id: "0",
            name: "",
            childs: ["387","346","343","342","440","341","442","426"],         order: "0"
          },
          {
            id: "10",
            name: "Цена",
            order: "1",
            childs: ["340","339"]
          },
        ],
        fields: {
          338: {
            id: "338",
            name: "Артикул",
            datatype: "text"
          },
          339: {
            id: "339",
            name: "Цена(в рублях)",
            datatype: "price"
          },
          723: {
            id: "723",
            name: "Дочернее",
            datatype: "select",
            variants: [
              {
                id: "1619",
                value: "Dean",
                bind: "1614",
                default: "0",
                highlight: "#336699",
                sort: "0"
              },
              {
                id: "1617",
                value: "Fender",
                bind: "1614",
                default: "0",
                highlight: "#327788",
                sort: "0"
              },
              {
                id: "1616",
                value: "Gibson",
                bind: "1614",
                default: "0",
                highlight: null,
                sort: "0"
              }
            ]
          }
        },
        nested_selects: {
          617: ["618","443"],
          618: ["695"],
          695: ["697"],
          722: ["723"]
        },
        deleted_fields: ["943","944","945"],
        disabled_fields: ["1023","1024","1025"]
        }
      }
    }
    • 35 - id типа объекта
    • groups - группы свойств
    •     id - id группы (если == 0 - негруппированные свойства)
    •     name - название
    •     childs - массив id свойств входящих в группу
    •     order - порядок
    • fields - свойства
    •     id - id свойства
    •     name - название
    •     datatype - тип данных
      для полей с типом select,multiselect доступно свойство         variants с перечнем все возможных вариантов выбора
                id - id варианта
                value - значение
                bind - для вложенных привязка в id варианта родителя
                default - отметка о выбранности по умолчанию
                highlight - цвет
                sort - порядок сортировки
    • nested_selects - вложенные свойства с типом select, multiselect
    • deleted_fields - массив удаленных полей
    • disabled_fields - массив закрытых полей
    Поиск в объектах по различным критериям
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/filter
    Параметры:
    type - id типа объекта (обязательное поле, если не указаны byid/by_ids)
    byid - id объекта
    by_ids - массив id объектов, все объекты из массива должны быть одного типа
    category - id категории объекта
    nested - значение true или false, включить вложенные категории
    search - поисковая строка может содержат имя объекта или вхождения в поля с типами text,select,multiselect (полнотекстовый поиск)
    manager - id ответственного или массив с несколькими id
    groups - массив CRM групп
    stock_creator_id - id создателя
    fields - массив условий поиска по полям [{id:id свойства,value: значение},{...}] для полей с типом integer,decimal,price,time,date,datetime возможно указывать границы:
        value: '>= значение' - больше или равно
        value: '<= значение' - меньше или равно
        value: 'значение_1 & значение_2' - между значением 1 и 2
    index_fields - индексировать массив полей по id свойства, 1 - да, 0 - нет, (по умолчанию 0)
    related_with_customer - связанный с объектом контакт (например, собственник объекта недвижимости)
    order - направление сортировки asc - по возрастанию, desc - по убыванию
    order_field - id поля, по которому нужно сделать сортировку (если в качестве значения указать stock_activity_date выборка будет сортироваться по дате активности; date_add - по дате создания, date_delete - по дате удаления, id - по id)
    date - {from: "2015-10-29 09:45:23", to: "2015-11-19 13:05:12"} выборка за определенный период
    date_field - если в качестве значения указать stock_activity_date, то выборка по параметру последней активности (в этом случае период выборки нужно передавать в параметре date)
    page - номер страницы выборки (например, 2 страница с limit 500 на каждой, нумерация page начиная с 1)
    publish - 1 - активные, 0 - удаленные, ignore - вывод всех, по умолчанию 1
    limit - число записей в выборке, по умолчанию 20, макс. 500
    group_id - ID группы для группированных объектов
    copy - ID Родителя группы для группированных объектов
    object_groups - число записей в выборке, по умолчанию 20, макс. 500
    count_total - подсчет общего количества найденых записей, 1 - считать, 0 - нет (по умолчанию 0)
    only_primary_id - 1 - вывести в ответе только id объектов, 0 - стандартный вывод (по умолчанию 0)
    only_count_field - 1 - вывести в ответе только количество, 0 - стандартный вывод (по умолчанию 0)
    slice_fields - массив id дополнительных полей, которые будут в ответе (по умолчанию если не задано то выводятся все)
    sum_field - id поля, которое нужно просуммировать. В ответе будет сумма значений поля результатов выборки (переменная: sum_field) и их число (count_field). Опция работает только для числовых полей (целое, число, цена)
    log - фильтр по истории изменений
    Ответ: {
      list: [
        {
          //id объекта
          id: "106015",
          //id типа объекта
          type: "1",
          //id категории
          parent: "1",
          //наименование
          name: "Ford Fusion",
          //дата создания
          date_add: "2014-09-19 12:54:34",
          //id ответственного
          author: "47",
          //массив id дополнительных ответственных
          additional_author: [48,49,50],
          //отметка о публикации
          publish: 1,
          //дата последнего редактирования
          last_modify: "2014-10-04 11:21:43",
          //id контакта
          customer_relation: "12643",
          //тип последней активности
          stock_activity_type: "edit",
          //дата последней активности
          stock_activity_date: "2015-11-20 11:34:54",
    nbsp;     //Объект оригинал, если group_id = 0, или родитель для сгруппированных объектов
          copy: 0,
          //ID группы для сгруппированных объектов
          group_id: 0,
          //данные полей
          fields: [
            {
              id: "342",
              type: "text",
              value: "43"
            },
            {
              id: "343",
              type: "decimal",
              value: null
            }
          ]
        }
      ],
      count: "369"
    }
    list - массив выбранных данных
    count - общее число найденных записей (или false если не передан параметр count_total)
    Получение списка групп объектов
    URL: http://domainname.intrumnet.com:81/sharedapi/stock/groups
    Параметры: нет
    Ответ: [
      {
        "id": "1",
        "name": "Колосс",
        "type": "9",
        "fields": ["433", "806", "807", "430", "429"],
        "publish": "1"
      }
    ]
    id - ID группы объектов
    name - Название группы объектов
    type - Тип объектов относящихся к группе
    fields - Уникальные ( отличающиеся у прикреплённых и у родителя ) поля объектов
    Добавление в базу CRM новых объектов (для выполнении данной операции должен быть разрешен доступ на запись)
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/insert
    Параметры: // массив добавляемых записей
    [
      {
        parent: 'ID Категории объекта(обязательное поле)'
        name: 'Наименование',
        author: 'ID ответственного или 0',
        //массив id дополнительных ответственных
        additional_author: [48,49,50],
        //id контакта, прикрепеленного к объекту
        related_with_customer: 10643,
        //cвязь с группой объектов (подробнее о группах https://www.intrumnet.com/wiki/gruppirovka_produktov___obektov__zhilye_kompleksy__kottedzhnye_poselki_-207)
        //id группы
        group_id: 4,
        //родительский объект группы
        copy: 536924,
        //дополнительные поля
        fields:[
          {
            id: 'ID свойства',
            value: 'Значение свойства'
          },
          {
          //для полей с типом "множественный выбор"
          {
            id: 'ID свойства',
            value: 'Значение свойства 1,Значение свойства 2, Значение свойства3' // перечисление через запятую без пробела
          },
          {
          //гео координата
            id: 'ID свойства',
        nbsp;    value: {
              lat: 'широта',
              lon: 'долгота'
            }
          },
          {
          //диапазон значений
            id: 'ID свойства',
            value: ['значение от','значение до']
          },
          //файл, если файлов несколько блок дублируется
          {
            id: 'ID допполя с типом файл',
            value: 'имя загруженого файла на сервере'
          }
          //прикрепление
          {
            id: 'ID допполя с типом прикрепление',
            value: [
              [
                attach_count: 5,
                attach_id: 620845,
                attach_type: 'stock',
                attach_comment: 'Текст комментария'
              ],
              [...]
            ]
          }
        ]
      },
      {
        //аналогично предыдущему элементу
      }
    ]
    Пример загрузки файлов в разделе Утилиты / Загрузка файлов
    Ответ: //ответ содержит массив добавленных объектов
    [19321,19322,...]
    Редактирование CRM объектов (для выполнении данной операции должен быть разрешен доступ на редактирование)
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/update
    Параметры: //обновление записей аналогично вставке, в список параметров добавляется ID объекта
    [
      {
        id:'ID существующего объекта',
        parent: 'ID Категории объекта'
        name: 'Наименование',
        author: 'ID ответственного или 0',
        //массив id дополнительных ответственных или false для удаления
        additional_author: [48,49,50],
        //id контакта, прикрепленного к объекту
        related_with_customer: 10643,
        //cвязь с группой объектов (подробнее о группах https://www.intrumnet.com/wiki/gruppirovka_produktov___obektov__zhilye_kompleksy__kottedzhnye_poselki_-207)
        //id группы
        group_id: 4,
        //родительский объект группы
        copy: 536924,
        //дополнительные поля
        fields:[
          {
            id: 'ID свойства',
            value: 'Значение свойства'
          },
          {
            id: 'ID свойства',
            value: 'Значение свойства',
            Для типа файл, указывается значение insert для добавления, delete для удаления, order - для изменения порядка файлов
            mode: 'insert',
            если mode указано как order, целочисленное значение порядкового номера файла
            order: 5
          },
        ]
      },
      //прикрепление
      {
        id: 'ID допполя с типом прикрепление',
        value: [
          [
            attach_count: 5,
            attach_id: 620845,
            attach_type: 'stock',
            attach_comment: 'Текст комментария'
            Для типа прикрепление, указывается значение insert для добавления, delete для удаления
            mode: 'insert'
          ],
          [...]
         ]
      },
      {
        //аналогично предыдущему элементу
      }
    ]
    Групповое редактирование CRM объектов. Редактирование групп полей, выбранной по фильтру (для выполнении данной операции должен быть разрешен доступ на редактирование)
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/updateByFilter
    Параметры: //Метод принимает два параметра, filter = аналогичный getStockByFilter и values, содержимое values для разных типов
    [
      {
        'property' => 870,
        'type' => 'radio',
        'value' => "1", //Возможные ""-не выбрано, "1" - Да, "0"-Нет
      },
      //text
      {
        'property' => 878,
        'type' => 'text',
        'value' => "Новое описание",
      },
      //integer //float //price
      {
        'property' => 876,
        'type' => 'integer',
        'value' => '15', //Увеличит свойство объектов на 15%
        "option" => {
          "mode"   => "update", // set Установить значение , update - установить значение в процентах от текущего,
          "percent_mode" => 1   // >0 = Увеличить, <0 - Уменьшить
        }
      },
      //attach
      {
        'property' => 882,
        'type' => 'attach',
        'value' => {
         {
          'attach_id' => "32915", //ID прикрепляемого объекта,
          'attach_type' => "stock", //Тип прикрепляемого объекта, stock, customer, sale, request, employee,
          'comment' => "", //Комментарий к связи,
          'count' => 1 , //Кол-во, 1 по умолчанию
          'ext'   => 882 //Extproperty
         }
        },
        "option" => {
          "mode" => "rewrite" // add Установить значение если его нет, rewrite - установить значение в любом случае
        }
      },
      //file
      {
        'property' => 880,
        'type' => 'file',
        'value' => [
          {
          "name" => "597071f8ebcbc.jpg",
          "title" => "Без названия (1}.jpg"
          }
        ],
        "option" => {
         "filemode" => "del" //add - Добавить к существующим, del - Заменить существующие
        }
      },
      //point
      {
        "property" => 881,
        "type" => "point",
        "value" => "55.763634 37.613068 12"
      },
      //select
      {
        "property" => 871,
        "type" => "select",
        "value" => "two"
      },
      //multiselect
      {
        "property" => 872,
        "type" => "multiselect",
        "option" => {
          "multiselect_write_mode" => "append"
          // append - Добавить к текущим,
          // rewrite - заменить,очистьть поле перед вставкой,
          // delete - удалить выбранные значения из поля
        },
        "value" => {
          "two"
        }
      },
      //Date
      {
        "property" => 873,
        "type" => "date",
        "value" => "2017-07-21"
      },
      //Datetime
      {
        "property" => 874,
        "type" => "datetime",
        "value" => "2017-07-21 08:20:19"
      },
      //time
      {
        "property" => 874,
        "type" => "time",
        "value" => "08:20:19"
      }
    ]
    Добавление комментариев к объектам (для выполнении данной операции должен быть разрешен доступ на редактирование)
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/addComment
    Параметры: [
      {
        entity_id : 'ID существующего объекта',
        text : 'Строка комментария',
        author : 'ID автора'
      }
    ]
    Удаление CRM объектов (для выполнении данной операции должен быть разрешен доступ на удаление)
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/delete
    Параметры: // для удаления объектов необходимо послать массив их ID [10234,10432,10342,...]
    Восстановление CRM объектов (для выполнении данной операции должен быть разрешен доступ на удаление)
    URL: http://domainname.intrumnet.com:81/sharedapi/stock/alive
    Параметры: // для восстановления объектов необходимо послать массив их ID [10234,10432,10342,...]
    Получение прикреплений объекта
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/attach
    Параметры: {
      id: [67107,67108,67109]
    }
    Ответ: {
      "67107": {
        "sales": ["3996","5849","6220","6487"]
      }
    }
    Получение косвенных прикреплений объекта
    URL: http://domainname.intrumnet.com:81/sharedapi/stock/attach-indirect
    Параметры: {
      //id объекта
      object_id: 753585
    }
    Ответ: [{
      //id поля
      property_id: "1830",
      //субъект прикрепления
      object_type: "sale",
      //id субъекта прикрепления
      object_id: "176",
      //объект прикрепления
      attach_type: "stock",
      //id объекта прикрепления
      attach_id: "753585"
    }]
    Получение статусов Объект в Заявках (тэги избранного)
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/favorite-tags
    Параметры: {
      ids: [557651]
    }
    Ответ: {
      //id объекта
      557651: {
        //id заявки
        456: {
          //дата назначенного показа
          showing_date: "2020-04-12 01:02:07",
          //id тэга
          favtag: "5",
          //дата тэга
          favorite_added_at: "2020-04-12 01:02:07",
          //id сотрудника назначившего тэг
          favorite_added_by: "2",
          //флаг первичного добавления
          is_startup_add: true,
          //история переходов
          history: [
            {
              tag: "8",
              status_tag_date: "2020-04-11 20:16:58",
              tag_employee_id: "2"
            }
          ]
        }
      }
    }
    Информация о списке статусов-тэгов для избранного Объект/Заявка
    URL: http://domainname.intrumnet.com:81/sharedapi/stock/favorite-tags-info
    Ответ: {
      0: {
        color: '#fdcb6e',
        label: 'Неразобранные'
      },
      8: {
      color: '#74b9ff',
      label: 'Первичный контакт'
      },
      ...
      13: {
        color: '#fd79a8',
        label: 'Уточнение'
      },
      14: {
        color: '#d63031',
        label: 'Отложен'
      }
    }
    Установка статусов-тэгов для избранного Объект/Заявка
    URL: http://domainname.intrumnet.com:81/sharedapi/stock/set-favorite-tags
    Параметры: {
      //ID Заявки (обязательное поле)
      request_id: 519,
      //ID Объекта (обязательное поле)
      stock_id: 675432,
      //ID Статуса-тэга (обязательное поле)
      favtag: 9,
      //Комментарий
      message: "Комментарий",
      //ID Ранее созданного напоминания (если данный статус тег отмечен как "Показ")
      event_id: 123
    }

    См. также История добавления в избранное и движение по стадиям

    Получение перечня дополнительных полей для сотрудника
    URL: http://domainname.intrumnet.com:81/sharedapi/worker/fields
    Параметры: нет
    Ответ: [
      {
        id: "6",
        name: "Результаты аттестаций",
        datatype: "text"
      },
      {
        id: "7",
        name: "История перемещений",
        datatype: "text"
      },
      {
        id: "8",
        name: "Предыдущее место работы",
        datatype: "text"
      }
    ]
    Аналогично полям в объектах
    Получение списка отделов
    URL: http://domainname.intrumnet.com:81/sharedapi/worker/department
    Параметры: нет
    Ответ: [
      {
        id: "1",
        parent_id: "0",
        name: "Руководство",
        description: "",
        order: "1"
      },
      {
        id: "2",
        parent_id: "0",
        name: "Управление по работе с персоналом",
        description: "",
        order: "2"
      },
      {
        id: "3",
        parent_id: "0",
        name: "Управление маркетинга",
        description: "",
        order: "3"
        }
    ]
    id - id отдела
    parent_id - id родителя для вложенных отделов
    name - имя отдела
    description - описание
    order - порядок сортировки
    Получение списка филиалов
    URL: http://domainname.intrumnet.com:81/sharedapi/worker/filiation
    Параметры: нет
    Ответ: {
      id: "1",
      name: "Москва Восток",
      description: "",
      city: "Екатеринбург",
      adress: "ул. Красноармейская, дом 127, офис 810",
      phone: "201-68-03",
      email: "moscow-east@mail.ru"
    }
    id - id филиала
    name - название
    description - описание
    adress - адрес
    phone - телефон
    email - email
    Поиск сотрудников по различным критериям
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/worker/filter
    Параметры:
    group - id CRM группы
    id - массив id сотрудников
    division_id - массив id отделов
    suboffice_id - массив id филиалов
    surname - фамилия
    name - имя
    email - email
    phone - телефон
    fields - массив условий поиска по полям [{id:id свойства,value: значение},{...}] для полей с типом integer,decimal,price,time,date,datetime возможно указывать границы:
        value: '>= значение' - больше или равно
        value: '<= значение' - меньше или равно
        value: 'значение_1 & значение_2' - между значением 1 и 2
    publish - 1 - активные, 0 - удаленные, ignore - вывод всех, по умолчанию 1
    slice_fields - массив id дополнительных полей, которые будут в ответе (по умолчанию, если не задано, то выводятся все)
    Ответ: {
      47: {
        id: "47",
        avatars: {
          original: "/images/avatars/d0e2c1bb.jpg",
          170: "/images/avatars/d0e2c1bb170.jpg",
          55: "/images/avatars/d0e2c1bb55.jpg",
          40: "/images/avatars/d0e2c1bb40.jpg",
          30: "/images/avatars/d0e2c1bb30.jpg"
        },
        type: "admin",
        division_id: "1",
        suboffice_id: "1",
        post: "Руководитель",
        boss: "0",
        name: "Иванов",
        surname: "Алексей",
        secondname: "Викторович",
        internalemail: [
          {
            email: "igor@7meridian.ru",
            comment: ""
          }
        ],
        externalemail: [
          {
            email: "igor@7meridian.ru",
            comment: ""
          }
        ],
        internalphone: [ ],
        externalphone: [ ],
        mobilephone: [
          {
            phone: "79370041660",
            comment: "",
            link: ""
          }
        ],
        birthday: "1968-08-09",
        address: null,
        about: null,
        hobby: null,
        created_at: "2015-03-09 09:00:00",
        fired_at: "2017-07-25 18:00:00",
        gender: "male",
        fields: {
          1: {
            id: "1",
            datatype: "date",
            value: "2014-09-29"
          },
          12: {
            id: "12",
            datatype: "radio",
            value: "1"
          }
        },
        asterisk_short_number: ["100","101","103"]
      }
    }
    id - id сотрудника
    avatars - массив аватаров разных размеров включая оригинал
    type - может примать значения admin,hr,generalmanager,simple
    division_id - id отдела
    suboffice_id - id филиала
    group_id - массив id групп
    post - должность
    boss - отметка "начальник отдела"
    name - имя
    surname - фамилия
    secondname - отчество
    internalemail,externalemail - внутренняя, внешняя почта
    internalphone,externalphone,mobilephone - внутренний, внешний, мобильный телефон
    birthday - дата рождения
    address - адрес
    about - описание
    hobby - хобби
    created_at - дата регистрации
    created_at - дата увольнения
    gender - пол male, female
    fields - массив условий поиска по полям [{id:id свойства,value: значение},{...}] для полей с типом integer,decimal,price,time,date,datetime возможно указывать границы:
        value: '>= значение' - больше или равно
        value: '<= значение' - меньше или равно
        value: 'значение_1 & значение_2' - между значением 1 и 2
    asterisk_short_number - Короткие номера Asterisk
    Редактирование данных полей сотрудников (для выполнении данной операции должен быть разрешен доступ на редактирование)
    URL: http://domainname.intrumnet.com:81/sharedapi/worker/update
    Параметры: [
      {
        //ID сотрудника
        id: 2,
        //ID отдела
        division_id: 5,
        //ID филиала
        suboffice_id: 7,
        //Должность
        post: 'Старший менеджер',
        //Фамилия
        surname: 'Иванов',
        //Имя
        name: 'Иван',
        //Отчество
        secondname: 'Иванович',
        //Email
        internalemail: [{email: 'ivanov@gmail.com',comment: 'для писем'},...],
        //Телефон
        mobilephone: [{phone:'+78980000000',comment: 'основной'},...],
        //Дата рождения
        birthday: '1985-09-03',
        //Пол (Одно из значений 'male' или 'female')
        gender: 'male',
        //Дополнительные поля (аналогично объектам)
        fields: [...]
        //Группы (аналогично методу добавления сотрудника) за исключением - если нужно убрать определенные группы, то передаваить groups[*тип групп*]=empty
        groups: [...]
      }
    ]
    Добавление сотрудников в систему (для выполнении данной операции должен быть разрешен доступ на редактирование)
    Example: Пример скрипта на PHP
    URL: [POST] http://domainname.intrumnet.com:81/sharedapi/worker/add
    Параметры: { type : "Тип сотрудника" // Тип. Строго ограниченные значения /** simple - Сотрудник (по умолчанию) admin - Администратор hr - HR-специалист generalmanager- менеджер */ status : "Статус" // Статус. Строго ограниченные значения /** new - Новый (по умолчанию) onstate - В штате outstate - Вне штата */ suboffice_id: "ID филиала" // (Обязательно) ID филиала к которму прикрепить сотрудника division_id : "ID отдела" // (Обязательно) ID отдела к которму прикрепить сотрудника name : "Имя" // (Обязательно) Имя surname : "Фамилия" // (Обязательно) Фамилия secondname : "Отчество" // Отчество login : "login" // (Обязательно) Логин для входа password : "Пароль" // (Опционально) пароль для входа, если не указано, то пароль будет сгенерирован и отправлен на почту указанную в соответствующем поле gender : "Пол" // (Обязательно) пол сотрудника. Строго ограниченные значения /** male - мужской female - женский */ birthday : "Дата рождения" // Дата рождения в формате YYYY-MM-DD post : "Должность" // Должность boss : "Начальник отдела" // Начальник отдела. Строго ограниченные значения /** 1 - да 0 - нет */ is_callcenter: "0" // Сокращенный интерфейс колл-центра. Строго ограниченные значения /** 1 - да 0 - нет */ emails : "Emails" // (Обязательно хотябы 1) Email адреса сотрудника в формате JSON /** Example: [{"email":"info@intrumnet.com","comment":"Комментарий к email адресу"},..] */ phones : "Телефоны" // (Обязательно хотябы 1) номера телефонов сотрудника в формате JSON /** Example: [{"phone":"+7 (495) 225-50-24","comment":"Комментарий к номеру","messengers":["telegram","whatsapp","viber"]},..] */ groups: { crm_management: [CRM группы] // Массив ID CRM групп email : [Почтовые группы] // Массив ID Почтовых групп blank : [Администраторы бланков] // Массив ID групп Администраторов бланков blank_users : [Пользователи бланков] // Массив ID групп Пользователей бланков blank_chargers: [Ответственные за бланки] // Массив ID групп Ответственных за бланки } extproperties:{ /** Ассоциативный массив, где ключ ID поля, а значение ключа - значение поля. значение зависит от типа поля */ } send_notice : "1" // Отправить уведомление о регистрации на указанную почту. Строго ограниченные значения /** 1 - Да (по умолчанию) 0 - Нет */ }
    Ответ: В случае успеха: { "status": "success", "data":{ "employee_id": ID,// ID добавленного сотрудника "password": "Пароль"// Пароль } } В случае ошибки: { "status": "fail", "message":[// Массив строк с ошибками "Some error" ] }
    Получение списка доступных CRM групп
    URL: http://domainname.intrumnet.com:81/sharedapi/managergroup
    Параметры: нет
    Ответ: stdClass Object
    (
      [status] => success
      [data] => Array
        (
          [0] => stdClass Object
            (
              [id] => 178
              [name] => Общая группа
            )
        )
    )
    id - id CRM группы
    name - название группы
    Получение дополнительных полей контакта
    URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/types
    Параметры: нет
    Получение дополнительных полей контакта
  • Пример скрипта на PHP сходный с объектами
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/fields
    Параметры: нет
    Ответ: (см. получение полей объектов)
    Поиск в контактах
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/filter
    Параметры:
    groups - массив id CRM групп
    manager - id ответственного или массив с несколькими id
    additional_manager_id - массив ID дополнительных ответственных
    customer_creator_id - id создателя
    byid - id контакта или массив id контактов
    marktype - массив id типов
    nattype - одно из значений подтипа physface - Юрлицо, jurface - Физлицо, по умолчанию выводятся все
    search - поисковая строка (может содержать фамилию или имя, email, телефон)
    fields - массив условий поиска по полям [{id:id свойства,value: значение},{...}] для полей с типом integer,decimal,price,time,date,datetime возможно указывать границы:
        value: '>= значение' - больше или равно
        value: '<= значение' - меньше или равно
        value: 'значение_1 & значение_2' - между значением 1 и 2
    index_fields - индексировать массив полей по id свойства, 1 - да, 0 - нет, (по умолчанию 0)
    order - направление сортировки asc - по возрастанию, desc - по убыванию
    order_field - если в качестве значения указать customer_activity_date выборка будет сортироваться по дате активности; create_date - по дате создания, delete_date - по дате удаления, id - по id
    date - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период
    date_field - если в качестве значения указать customer_activity_date выборка по параметру активности
    page - номер страницы выборки (нумерация с 1)
    publish - 1 - активные, 0 - удаленные, по умолчанию 1
    limit - число записей в выборке (макс. 500)
    count_total - подсчет общего количества найденых записей, 1 - считать, 0 - нет (по умолчанию 0)
    only_count_field - 1 - вывести в ответе только количество, 0 - стандартный вывод (по умолчанию 0)
    slice_fields - массив id дополнительных полей, которые будут в ответе (по умолчанию если не задано то выводятся все)
    Ответ: {
      list: [
        {
          //id контакта
          id: "10607",
          //id CRM группы
          group_id: "149",
          //фамилия
          surname: "Белякова",
          //имя
          name: "Мария",
          //отчество
          secondname: "Сергеевна",
          //id ответственного
          manager_id: "47",
          //массив id дополнительных ответственных
          additional_manager_id: [48,49,50],
          //дата создания
          create_date: "2014-08-29 12:11:35",
          //тип контакта
          marktype: "0",
          //имя типа контакта
          markname: "Не выбран",
          //подтип physface - Физлицо, jurface - Юрлицо
          nattype: "physface",
          //тип последней активности
          customer_activity_type: "manager",
          //дата последней активности по контакту
          customer_activity_date: "2015-11-20 11:08:51",
          //список email адресов
          email: [
            {
              mail: "customer@mail.ru",
              comment: ""
            }
          ],
          //список телефонов
          phone: [
            {
              phone: "89650054332",
              comment: "Первый"
            },
            {
              phone: "54234532253",
              comment: "Второй"
            }
          ],
          //данные полей
          fields: {
            25: {
              id: "25",
              datatype: "integer",
              value: "34"
            }
          }
        }
      ],
      count: "1"
      }
    }
    list - массив выбранных данных
    count - общее число найденных записей (или false если не передан параметр count_total)
    Аналогично добавлению объектов
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/insert
    Доступные поля
    name - Имя
    surname - Фамилия
    secondname - Отчество
    manager_id - ID ответственного
    additional_manager_id - Массив ID дополнительных ответственных
    marktype - Тип
    email - массив email адресов [[mail: 'customer@email.com', comment: '(optional)'], ...]
    phone - массив номеров телефонов [[phone: '84955599000', comment: '(optional)', messengers: ['whatsapp', 'viber', 'telegram']], ...], где 'messengers' - это опциональное перечисление мессенджеров, в которых доступен номер телефона. Значки мессенджеров будут отображаться под номером телефона в карточке контакта.

    Для добавления комментриев используйте отдельный метод

    Редактирование карточки контакта аналогично редактированию объектов
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/update
    Добавление комментариев к контактам (для выполнении данной операции должен быть разрешен доступ на редактирование)
  • Пример скрипта на PHP сходный с объектами
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/addComment
    Параметры: [
      {
        entity_id : 'ID существующего контакта',
        text : 'Строка комментария',
        author : 'ID автора'
      }
    ]
    Аналогично удалению объектов
    URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/delete
    Аналогично восстановлению объектов
    URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/alive
    Получение прикрепленных к контакту сущностей
  • Пример скрипта на PHP сходный с объектами
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/attach
    Параметры:
    ids - массив id контактов или единичное значение
    Ответ: {
      //id контакта
      "278056": {
        //прикрепленные объекты
        "stock":["280959","280960","280961"],
        //прикрепленные объекты (архив)
        "stock_archive":["280957","280958"],
        //прикрепленные заявки
        "request":["1969","1970","1971"],
        //прикрепленные сделки
        "sale":["522","527","528","529"]
      }
    }
    Получение списка типов заявок
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/applications/types
    Параметры: нет
    Ответ: [
      {
        id: "1",
        name: "Заявка на аренду",
        service: "0",
        groups: ["149"]
      },
      {
        id: "2",
        name: "Заявка на подбор",
        service: "0",
        groups: ["149","150","151"]
      }
    ]
    id - id заявки
    name - имя
    service - пометка "сервисный"
    groups - список групп имеющих доступ к данному типу
    Получение списка полей заявки
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/applications/fields
    Параметры: нет
    Ответ: (См. получение полей объектов)
    Поиск в заявке
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/applications/filter
    Параметры:
    search - поисковая строка (может содержать фамилию, телефон контакта или название заявки)
    groups - массив CRM групп
    manager - id ответственного или массив с несколькими id
    request_creator_id - id создателя
    byid - id заявки
    by_ids - массив ids заявок
    customer - id контакта
    fields - массив условий поиска по полям [{id:id свойства,value: значение},{...}] для полей с типом integer,decimal,price,time,date,datetime возможно указывать границы:
        value: '>= значение' - больше или равно
        value: '<= значение' - меньше или равно
        value: 'значение_1 & значение_2' - между значением 1 и 2
    types - массив id типов
    order_field - если в качестве значения указать request_activity_date выборка будет сортироваться по дате активности
    order - направление сортировки asc - по возрастанию, desc - по убыванию (сортировка только по дате последней активности)
    date - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период
    date_field - если в качестве значения указать request_activity_date выборка по параметру заявки, create_date - по дате создания, delete_date - по дате удаления, id - по id
    statuses - массив id статусов
        unselected - Не выбран
        mustbeprocessed - Требует обработки
        processnow - Требует срочной обработки
        processed - Обработан
        postponed - Отложен
        malformed - Неверен
        cancelled - Отменен
        reprocess - Требует доработки
    page - номер страницы выборки (нумерация с 1)
    publish - 1 - активные, 0 - удаленные, по умолчанию 1
    log - фильтр по истории изменений
    limit - число записей в выборке (макс. 500)
    count_total - подсчет общего количества найденых записей, 1 - считать, 0 - нет (по умолчанию 0)
    only_count_field - 1 - вывести в ответе только количество, 0 - стандартный вывод (по умолчанию 0)
    slice_fields - массив id дополнительных полей, которые будут в ответе (по умолчанию, если не задано, то выводятся все)
    Ответ: {
      list: [
        {
          //id заявки
          id: "1355",
          //id ответственного
          employee_id: "47",
          //массив id дополнительных ответственных
          additional_employee_id: [48,49,50],
          //id контакта
          customer_id: "14739",
          //тип заявки
          request_type_id: "1",
          //имя заявки
          request_type_name: "Первая тестовая",
          //источник
          source: "help_manager",
          //дата создания
          date_create: "2013-09-16 16:49:15",
          //название заявки
          request_name: "Заявка на кредит",
          //статус заявки
          status: "mustbeprocessed"
          //тип последней активности
          request_activity_type: "stage",
          //дата последней активности заявки
          request_activity_date: "2015-11-20 10:36:29",
          //данные полей
          fields: { ... }
        }
      ],
      count: "460"
    }
    list - массив выбранных данных
    count - общее число найденных записей (или false если не передан параметр count_total)
    Аналогично добавлению объектов
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/applications/insert
    Параметры:
    source - один из вариантов ('online_consult','none','help_manager','online_form')
    customers_id - ID контакта (обязательное поле)
    employee_id - ID ответственного
    additional_employee_id - Массив ID дополнительных ответственных
    comment - Комментарий *
    request_name - Название заявки
    status - один из вариантов ('unselected','mustbeprocessed','processnow','processed','postponed','malformed','cancelled','reprocess')
    request_type - ID типа заявки (обязательное поле)
    date_create - Дата создания
    stock_id - ID объекта или массив ID прикрепляемых объектов

    * данный тип комментарием устаревший, используйте

    Добавление в базу CRM контакта и заявок к нему (для выполнения данной операции требуется разрешение на добавление контактов и заявок)
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/addCustomer
    Параметры: {
      "customer" : {
        "name" : "Тест",
        "surname" : "Тестов",
        "secondname" : "Тестович",
        "manager_id" : 1,
        "additional_manager_id" : [2,3],
        "marktype" : 1,
        "email" : [
          {
            "mail" : "test@test.ru",
            "comment" : "Тестовый адрес"
          }
        ],
        "phone" : [
          {
            "phone" : "8800200002",
            "comment" : "Первый номер телефона"
          }
        ],
        "fields" : [
          {
            "id" : 99,
            "value" : "Тест"
          }
        ]
      },
      "request" : {
        "request_type" : 10,
        "source" : "online_form",
        "employee_id" : 1,
        "additional_employee_id" : [1,2],
        "request_name" : "Тестовая заявка",
        "status" : "unselected",
        "fields" : [
          {
            "id" : 99,
            "value" : "Тест"
          }
        ],
        //ID объекта или массив ID прикрепляемых объектов
        "stock_id": 680826
      }
    }
    Пример загрузки файлов в разделе Утилиты / Загрузка файлов
    Ответ: //ответ содержит ID контакта и ID заявки
    {
      "customer" : 98576,
      "request" : 18641
    }
    Аналогично редактированию объектов
  • Пример скрипта на PHP
  • Добавление комментариев к заявке (для выполнении данной операции должен быть разрешен доступ на редактирование)
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/applications/addComment
    Параметры: [
      {
        entity_id : 'ID существующего объекта',
        text : 'Строка комментария',
        author : 'ID автора'
      }
    ]
    Аналогично удалению объектов
    Аналогично восстановлению объектов
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/favorite-add
    Параметры: {
      request_id: 'ID существующей заявки',
      stock_id: 'ID существующего объекта'
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/favorite-del
    Параметры: {
      request_id: 'ID существующей заявки',
      stock_id: 'ID существующего объекта'
    }
    Получение стадий объекта (тэги избранного) в Заявке
  • Пример скрипта на PHP
  • URL: http://domainname.intrumnet.com:81/sharedapi/applications/favorite-tags
    Параметры: {
      ids: [456]
    }
    Ответ: {
      //id заявки
      456: {
        //id объекта
        557651: {
          //дата назначенного показа
          showing_date: "2020-04-12 01:02:07",
          //id тэга
          favtag: "5",
          //дата тэга
          favorite_added_at: "2020-04-12 01:02:07",
          //id сотрудника назначившего тэг
          favorite_added_by: "2",
          //флаг первичного добавления
          is_startup_add: true,
          //история переходов
          history: [
            {
              tag: "8",
              status_tag_date: "2020-04-11 20:16:58",
              tag_employee_id: "2"
            }
          ]
        }
      }
    }
    Информация о списке статусов-тэгов для избранного Объект/Заявка
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/favorite-tags-info
    Ответ: {
      0: {
        color: '#fdcb6e',
        label: 'Неразобранные'
      },
      8: {
      color: '#74b9ff',
      label: 'Первичный контакт'
      },
      ...
      13: {
        color: '#fd79a8',
        label: 'Уточнение'
      },
      14: {
        color: '#d63031',
        label: 'Отложен'
      }
    }
    Установка статусов-тэгов для избранного Объект/Заявка
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/set-favorite-tags
    Параметры: {
      //ID Заявки (обязательное поле)
      request_id: 519,
      //ID Объекта (обязательное поле)
      stock_id: 675432,
      //ID Статуса-тэга (обязательное поле)
      favtag: 9,
      //Комментарий
      message: "Комментарий",
      //ID Ранее созданного напоминания (если данный статус тег отмечен как "Показ")
      event_id: 123
    }
    Получение списка типов сделок
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/types
    Параметры: нет
    Ответ: [
      {
        id: 1,
        name: "Продажа объекта",
        stages: [
          {
            id: 1,
            name: "Подписание договора",
            color: "#EDF18A",
            order: 10,
            is_success: true
          },
          {
            id: 2,
            name: "На регистрации",
            color: "#B5D67D",
            order: 11,
            is_fail: true
          }
          {
            id: 3,
            name: "Внесен аванс",
            color: "#AEEBE6",
            order: 12
          }
        ]
      }
    ]
    id - id типа сделки
    name - название
    stages - список стадий сделки
    •   id - id стадии сделки
    •   name - имя стадии сделки
    •   color - цветовая опция стадии
    •   order - порядковый номер в списке
    •   is_success - отметка является ли стадия успешной
    •   is_fail - отметка является ли стадия неуспешной
    Получение списка полей для всех типов сделок
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/fields
    Параметры: нет
    Ответ: {
      34: {
        stages: {
          0: [374,843,123,432],
          1: [765,245,155],
          2: [760,876,543,164,518]
        },
        price_fields: [339,340,341],
        fields: {
          338: {
            id: "338",
            name: "Артикул",
            datatype: "text"
          },
          339: {
            id: "339",
            name: "Цена(в рублях)",
            datatype: "price"
          },
          723: {
            id: "723",
            name: "Дочернее",
            datatype: "select",
            variants: [
              {
                id: "1619",
                value: "Dean",
                bind: "1614",
                default: "0",
                highlight: "#336699",
                sort: "0"
              },
              {
                id: "1617",
                value: "Fender",
                bind: "1614",
                default: "0",
                highlight: "#327788",
                sort: "0"
              },
              {
                id: "1616",
                value: "Gibson",
                bind: "1614",
                default: "0",
                highlight: null,
                sort: "0"
              }
            ]
          }
        },
        nested_selects: {
          422: [421],
          737: [738,739]
        }
      }
    }
    34 - id типа сделки
    stages - группы полей для стадий, id = 0 для общих полей сделки
    price_fields - поля являющиеся ценой сделки
    fields - список полей
    nested_selects - вложенные свойства с типом select, multiselect
    Получение списка сделок
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/filter
    Параметры:
    search - поисковая строка
    type - массив id типов сделок
    stage - массив id стадий сделок
    customer - id контакта
    manager - id ответственного или массив с несколькими id
    groups - массив CRM групп
    fields - массив условий поиска по полям [{id:id свойства,value: значение},{...}] для полей с типом integer,decimal,price,time,date,datetime возможно указывать границы:
        value: '>= значение' - больше или равно
        value: '<= значение' - меньше или равно
        value: 'значение_1 & значение_2' - между значением 1 и 2
    sale_creator_id - id создателя
    page - номер страницы выборки (нумерация с 1)
    publish - 1 - активные, 0 - удаленные, по умолчанию 1
    limit - число записей в выборке (макс. 500)
    byid - получение сделки по ее id
    by_ids - получение сделок по массиву id [1, 2, 3, ...]
    order - направление сортировки asc - по возрастанию, desc - по убыванию
    order_field - если в качестве значения указать sale_activity_date выборка будет сортироваться по дате активности, create_date - по дате создания, delete_date - по дате удаления, id - по id
    date - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период
    date_field - если в качестве значения указать sale_activity_date выборка по параметру активности
    count_total - подсчет общего количества найденых записей, 1 - считать, 0 - нет (по умолчанию 0)
    only_count_field - 1 - вывести в ответе только количество, 0 - стандартный вывод (по умолчанию 0)
    slice_fields - массив id дополнительных полей, которые будут в ответе (по умолчанию, если не задано, выводятся все)
    Ответ: {
      list: [
        {
          //id сделки
          id: 420,
          //id контакта
          customers_id: 238515,
          //id ответственного
          employee_id: 47,
          //массив id дополнительных ответственных
          additional_employee_id: [48,49,50],
          //дата создания
          date_create: "2015-11-19 16:44:45",
          //id типа активности
          sales_type_id: 8,
          //id стадии
          sale_stage_id: 12,
          //название сделки
          sale_name: "На складе",
          //тип последней активности
          sale_activity_type: "stage",
          //дата последней активности сделки
          sale_activity_date: "2015-11-19 17:17:11",
          //данные полей
          fields: { ... }
        }
      ],
      count: 1
    }
    list - массив выбранных данных
    count - общее число найденных записей (или false если не передан параметр count_total)
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/getbychangestage
    Параметры:
    date_start - Начало периода, в формате %Y-%m-%d
    date_end - Конец периода в формате %Y-%m-%d
    stage - Стадия сделки на которую был переход, id или массив id (если не указана - берутся все)
    Получение дополнительных данных о связях с другими сущностями
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/details
    Параметры:
    ids - массив id сделок
    Ответ: {
      //id сделки
      468: {
        //список id сопокупателей
        cocustomers: [],
        //список id связанных заявок
        corequests: [],
        //список id связанных объектов
        costock: [],
        //список id объектов
        costockprimary: [],
        //список id связанных сделок
        cosales: [],
        //список id счетов
        bills: [],
        //список id бланков
        blanks: []
      }
    }
    Аналогично добавлению объектов

    Пример скрипта на PHP
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/insert
    Параметры:
    customers_id - id контакта
    employee_id - id ответственного
    additional_employee_id - массив id дополнительных ответственных
    sales_type_id - id типа сделки
    sales_status_id - id стадии сделки
    sale_name - название сделки
    date_create - дата создания
    fields - массив данных полей
    Добавление в базу CRM контакта и сделки к нему (для выполнения данной операции требуется разрешение на добавление климентов и сделок)
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/addCustomer
    Параметры: {
      "customer" : {
        "name" : "Тест",
        "surname" : "Тестов",
        "secondname" : "Тестович",
        "manager_id" : 1,
        "additional_manager_id" : [2,3],
        "marktype" : 1,
        "email" : [
          {
            "mail" : "test@test.ru",
            "comment" : "Тестовый адрес"
          }
        ],
        "phone" : [
          {
            "phone" : "8800200002",
            "comment" : "Первый номер телефона"
          }
        ],
        "fields" : [
          {
            "id" : 99,
            "value" : "Тест"
          }
        ]
      },
        "sale" : {
        "employee_id" : 1 ,
        "additional_employee_id" : [2,3],
        "sales_type_id" : 2,
        "sales_status_id" : 23,
        "sale_name" : "Тестовая сделка",
        "fields" : [
          {
            "id" : 99,
            "value" : "Тест"
          }
        ]
      }
    }
    Пример загрузки файлов в разделе Утилиты / Загрузка файлов
    Ответ: //ответ содержит ID контакта и ID сделки
    {
      "customer" : 98576,
      "sale" : 18641
    }
    Аналогично редактированию объектов

    Добавляется обязательный параметр id - id сделки в CRM


    Пример скрипта на PHP
    Добавление комментариев к сделкам (для выполнении данной операции должен быть разрешен доступ на редактирование)
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/addComment
    Параметры: [
      {
        entity_id : 'ID существующего объекта',
        text : 'Строка комментария',
        author : 'ID автора'
      }
    ]
    Аналогично удалению объектов
    Аналогично восстановлению объектов
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/favorite-add
    Параметры: {
      sale_id: 'ID существующей сделки',
      stock_id: 'ID существующего объекта'
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/favorite-del
    Параметры: {
      sale_id: 'ID существующей сделки',
      stock_id: 'ID существующего объекта'
    }
    Выборка истории изменения полей CRM Сущностей
    URL: http://domainname.intrumnet.com:81/sharedapi/history/log
    Параметры:
    object_type - тип объекта (одно из значений: stock, customer, sale, request - обязательное поле)
    object_id - id объекта (или массив id объектов)
    employee_id - id сотрудника производившего изменения (или массив id сотрудников)
    date - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период
    log - массив условий: [
      [
        {
          date: - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период,
          property_id: - ID свойства,
           Для запроса даных по фиксированным полям вместо id допустимы следующие параметры:
            для объектов: related_with_customer, publish, parent, name, deldouble_merge, count, author
            для сделок: sale_name, publish, employee_id, date_create, customer
            для заявок: stock, status, request_name, request_comment, publish, employee_id, date_create, customer
            для контактов: comment, create_date, email, group_id, manager_id, marktype, name, phone, publish, secondname, surname
          value: - предыдущее значение (так же доступны @any, @empty, @not-empty),
          current: - текущее значение (так же доступны @any, @empty, @not-empty),
        },
        {
        ... массив условий И ...
        },
      ],
      ... массив условий ИЛИ 1 ...,
      ... массив условий ИЛИ 2 ...,
      ... массив условий ИЛИ N ...
    ]
    Выборка истории избранного и движение по стадиям связки объект\заявка
    URL: http://domainname.intrumnet.com:81/sharedapi/history/favorites
    Параметры:
    date - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период
    Ответ: [
      {
        //ID Заявки
        request_id: "515",
        //ID Типа заявки
        request_type: "1",
        //ID Объекта
        stock_id: "753599",
        //ID Типа объекта
        stock_type: "1",
        //Дата
        status_tag_date: "2022-01-18 16:21:12",
        //Статус-тэг
        tag: "9",
        //Сотрудник, производивший действие
        tag_employee_id: "2",
        //Тип (favorites - избранное, move - смена тега)
        type: "move",
        //флаг первичного добавления
        is_startup_add: true
      },
      ...
    ]
    Запрос -постраничная выборка счетов с использованием фильтра и поиска
    URL: http://domainname.intrumnet.com:81/sharedapi/accounts/get
    PHP библиотека метод: billsGet
    Параметры:
    type - Тип счёта (in,out)
    date_start - Счёт создан в данную дату или позже (формат dd.mm.YYYY / YYYY-mm-dd)
    date_start - Счёт создан в данную дату или раньше (формат dd.mm.YYYY / YYYY-mm-dd)
    active - Активые / неактивные счета (1,0)
    pay_status - Статус оплаты (not,part,full)
    client_id - ID контакта в CRM
    search - Строка поиска, поиск осуществляется : по номеру счёта, фамилии контакта, названию компании
    act_id - ID связанного акта если не 0, иначе без связанных актов
    author - ID сотрудника создавшего акт
    company_id - ID реквизитов контакта
    sale_id - ID связанной сделки в CRM
    not_sale_id - Выборка записей не связанных с указанной сделкой, при указании в фильтре sale_id и not_sale_id, not_sale_id - игнорируется
    ids - Выборка записей входящих массив / строку(разделеную ",") ID счетов , применение этого фильтра, очищает фильтр по умолчанию
    orderType - Сортировка по убыванию / возрастанию (ASC,DESC)
    order - Поле сортировки ('b.id' - номер счёта, "b.date_create" - дата создания счёта)
    limit - Количество результатов в одном (постарничном) запросе по умолчанию 1000
    page - Номер страницы вывода
    period_pay - Период полаты счёта, выодить счета по которам совершалась оплата в указанный период {date_start: YYYY-mm-dd, date_end: YYYY-mm-dd}
    Фильтр по умолчанию: {
      page : 1,
      limit : 1000,
      order : 'b.id',
      orderType : 'DESC',
      type : 'all',
      bill_active : 1,
      client_id : 0
    }
    Ответ: {
      filter: {},
      limit: 1000,
      page: 1,
      total: 6000,
      list: [
        {
          act_id: "0"
          author: "1"
          author_name: "CRM Т. "
          bill_active: "1"
          client_company_id: "84"
          client_id: "10475"
          date_create: "2015-10-06"
          hash: "23d86626b1673482dc74e93431883300"
          id: "112"
          my_company_id: "2"
          nds: "0"
          outer_id: ""
          pay: "0.00"
          pay_status: "not"
          payer: " Т."
          payment_date: "0000-00-00"
          recipient: "Реквизиты Центральные"
          sale_id: "0"
          stockgroup_id: "199"
          summ: "5000.00"
          type: "out"
        }
      ]
    }
    filter - Массив настроек фильтра
    limit - Кол-во результатов
    page - Номер страницы выборки (нумерация с 1)
    total - Общее кол-во записей удовлетворяющих фильтру
    list - Массив записей
      act_id - ID связанного акта
      author - ID создавшего сотрудника
      author_name - Имя создавшего сотрудника
      bill_active - Статус публикации
      client_company_id - ID Реквизиов контакта
      client_id - ID контакта
      date_create - Дата создания в формате YYYY-mm-dd
      hash - Уникальный ХЕШ для печати бланка
      id - ID счёта
      my_company_id - ID реквизитов компании
      nds - ризнак НДС ( 1 / 0 )
      outer_id - Внешний ключ
      pay - Оплачено по счёту
      pay_status - Статус оплаты ( "not" - неоплачено,'part'-частично оплачено,'full'-оплачено )
      payer - Имя плательщика
      payment_date - Дата оплаты
      recipient - Имя получателя
      sale_id - ID связанной сделки
      stockgroup_id - ID списка товаров
      summ - Суммма
      type - Тип 'out' - исходящий/ 'in' - входящий
    Выборка полной информации по счетам, по списку id счетов
    URL: http://domainname.intrumnet.com:81/sharedapi/accounts/get_full
    Параметры:
    ids - Массив ID счетов
    Ответ: {
       act_id: "0"
       author: "1"
       author_name: "CRM Т."
       bill_active: "1"
       client: {
         id: "10440"
         logo: "10"
         name: "Рика"
         secondname: ""
         surname: "Окамуро"
       }
       client_company: {
        bank_name: "АО КОМБАНК "АРЗАМАС""
        bank_sity: "АРЗАМАС"
        bik: "042204757"
        email: ""
        id: "11"
        inn: "2311111067"
        kpp: ""
        ks: "30101810300000000757"
        legal_addres: ""
        mail_addres: ""
        name: "ООО "Девелопмент-Недвижимость"1"
        ogrn: ""
        phone: ""
        rs: ""
        sity: ""
        type: "0"
       }
       date_create: "2015-10-06"
       hash: "23d86626b1673482dc74e93431883300"
       id: "112"
       my_company: {
        bank_name: "Самарский"
        bank_sity: "Самара"
        bik: "046311854"
        email: "test@test.ru"
        id: "2"
        inn: "6311102704"
        kpp: "631101001"
        ks: "65464654646545"
        legal_addres: "ул.Урицкого, д1"
        mail_addres: "4305117"
        name: "Реквизиты Центральные"
        ogrn: "54645645"
        phone: "(846)336-42-87"
        rs: "40702810711030001415"
        sity: "Самара"
        type: "ООО"
       }
       nds: "0"
       outer_id: ""
       pay: "0.00"
       pay_status: "not"
       payer: {
         client: "client"
         company: "client_comapny"
         name: "ООО ЛК "ТК Лизинг""
       }
       payment_date: "0000-00-00"
       products: [
       {
         count: "10"
         id: "254"
         name: "Канцтовары"
         price: "500.00"
         stockgroup_id: "199"
         summary: "5000.00"
       }
       ]
       recipient: {
         client: "firm"
         company: "my_company"
         name: "Реквизиты Центральные"
         type: "legal"
       }
       sale_id: "0"
       stockgroup_id: "199"
       summ: "5000.00"
       to_pay: "5000.00"
       total: "5000.00"
       type: "out"
    }
    act_id - ID связанного акта в CRM
    author - ID сотрудника создавшего акт
    author_name - Имя сотрудника создавшего акт
    bill_active - Статус публикации
    client - Массив данных о контакте
        id - Уникальный номер в CRM
        logo - Логотип типа пользователя в системе
        name - Имя
        secondname - Фамилия
        surname - Отчество
    client_company - Реквизиты контакта
        bank_name - Название банка
        bank_sity - Город банка
        bik - БИК
        email - Электронная почта
        id - Уникальный номер в CRM
        inn - ИНН
        kpp - КПП
        ks - КС
        legal_addres - Юридический адрес
        mail_addres - Почтовый адрес
        name - Название
        ogrn - ОГРН
        phone - Телефон
        rs - РС
        sity - Город
        type - Тип
    date_create - Дата создания
    hash - Уникальная строка индентификатор, для печати бланков
    id - Уникальный номер в CRM
    my_company - Массив прикреплёных реквизитов фирмы (поля совпадают с реквизитами контакта)
    nds - Признак НДС
    outer_id - Внешний (синхронизационный) Уникальный идентификатор
    pay - Оплачено
    pay_status - Статус оплаты
    payer - Массив ссылок на плательщика
    payment_date - Дата оплаты
    products - Массив объектов
    recipient - Массив ссылок на получателя
    sale_id - Уникальный идентификатор связанной сделки в CRM
    stockgroup_id - Идентификатор списка товаров
    summ - Сумма счёта
    to_pay - К оплате (с учётом НДС)
    type - Тип счёта
    API для добавления счетов, счета для добавления передаются в виде массива обьектов,за раз можно добавить не более 1000 счетов.

    Ответ возвращается так-же в виде массива, с результатом по кажому обьекту, и с ключом и описанием ошибок, если вставка обьекта не удалась.

    URL: http://domainname.intrumnet.com:81/sharedapi/accounts/add
    PHP библиотека метод: billsAdd
    Параметры:
    [
      {
        act_id - ID прикреплёного акта
        date_create - Дата создания
        product - Массив объектов
            count - Кол-во объекта
            name - Название объекта
            price - Цена объекта
        sale_id - ID связанной сделки
        client_company_id - ID реквизитов контакта
        client_id - ID контакта
        my_company_id - ID реквизитов фирмы
        nds - Наличие ндс
        type - Тип счёта входящий / исходящий(in/out)
      }
    ]
    Ответ:   [
         0:{
           id: 113,
           stat: 1
         },
         1:{
           stat:0,
           error: [
             {
               key: 1,
               mes: "Не заполнен контакт"
             },
             {
               key: 4,
               mes: "Нет списка объектов"
             }
           ]
        
         }
      ]
    stat - Результат (1 - успех,0 - ошибка)
    id - Уникальный идентификатор созданного счёта
    error - Массив ошибок
        key - Ключ ошибки
    1. Не заполнен контакт
    2. Не выбраны реквизиты компании
    3. Не заполнена дата
    4. Нет списка объектов
    5. Нет ни одного валидного объекта (должны быть заполнены name, count, price)
        mes - Описание ошибки
    API для обновления счетов, счета для обновления передаются в виде массива обьектов,за раз можно обновить не более 1000 счетов.

    Ответ возвращается так-же в виде массива, с результатом по кажому обьекту, и с ключом и описанием ошибок, если обновление счёта не удалось.

    URL: http://domainname.intrumnet.com:81/sharedapi/accounts/add
    Параметры:
    [
      {
        bill_id - Уникальный номер счёта
        act_id - ID прикреплёного акта
        date_create - Дата создания
        product - Массив объектов
            count - Кол-во объектов
            name - Название объекта
            price - Цена объекта
        sale_id - ID связанной сделки
        stockgroup_id - ID списка товаров
        client_company_id - ID реквизитов контакта
        client_id - ID контакта
        my_company_id - ID реквизитов фирмы
        nds - Наличие ндс
        type - Тип счёта входящий / исходящий(in/out)
      }
    ]
    Ответ: См.добавление счетов
    API для редактирования параметров счёта
    URL: http://domainname.intrumnet.com:81/sharedapi/accounts/edit
    Параметры:
    {
      bill_id - Уникальный номер счёта
      act_id - ID прикрепленного акта
      date_create - Дата создания "ГГГГ-ММ-ДД" / "ДД.ММ.ГГГГ"
      product - Массив объектов
          count - Кол-во объектов
          name - Название объекта
          price - Цена объекта
      sale_id - ID связанной сделки
      outer_id - внешний ID
      client_company_id - ID реквизитов контакта
      client_id - ID контакта
      my_company_id - ID реквизитов фирмы
      nds - Наличие ндс
      is_cash - Оплата наличными
      type - Тип счёта входящий / исходящий(in/out)
    }
    Ответ: stat:0,
    error: {
       key: 1,
       mes: "Не передан обязательный параметр bill_id"
    }
    stat - Результат (1 - успех,0 - ошибка)
    error - Массив ошибок
        key - Ключ ошибки
    1. Не передан обязательный параметр bill_id
    2. Несуществующий акт
    3. Не действительная дата
    4. Несуществующая сделка
    5. Несуществующий контакт
        mes - Описание ошибки
    API для установки статуса оплаты счёта,принимает 2 параметра ID счёта в CRM и 2й необязательный = сумма оплаты (по умолчанию равен полному платежу)

    Ответ возвращается в виде массива, с параметром stat и status_pay или error - если возникла ошибка

    URL: http://domainname.intrumnet.com:81/sharedapi/accounts/set_pay
    Параметры:
    {
      id - Уникальный номер счёта
      pay - Сумма платежа (необязательный)
    }
    Ответ:    {
         stat: 0,
         status_pay: "not",
         error:{
           key:6,
           mes:"Не передан обязательный параметр ID"
         }
       }
    stat - Результат (1 - успех,0 - ошибка)
    status_pay - Актуальный статус
    •   'not' = Неоплачен
    •   'part' = Частично оплачен
    •   'full' = Оплачен
    error - Массив ошибки
      key - Ключ ошибки
    •   6 - Не заполнен обязательный параметр ID
    •   7 - Счёт не найден в системе или к нему не прикреплены товары
      mes - Описание ошибки
    Запрос -постраничная выборка счетов с использованием фильтра и поиска
    URL: http://domainname.intrumnet.com:81/sharedapi/acts/get
    Параметры:
    type - Тип счёта (in,out)
    date_start - Счёт создан в данную дату или позже (формат dd.mm.YYYY / YYYY-mm-dd)
    date_start - Счёт создан в данную дату или раньше (формат dd.mm.YYYY / YYYY-mm-dd)
    active - Активые / неактивные акты (1,0)
    pay_status - Статус оплаты (not,part,full)
    client_id - ID контакта в CRM
    search - Строка поиска, поиск осуществляется : по номеру счёта, фамилии контакта, названию компании
    bill_id - ID связанного счёта если не 0, иначе без связанных актов
    author - ID сотрудника создавшего акт
    company_id - ID реквизитов контакта
    orderType - Сортировка по убыванию / возрастанию (ASC,DESC)
    order - Поле сортировки ('b.id' - номер счёта, "b.date_create" - дата создания счёта)
    limit - Количество результатов в одном (постарничном) запросе по умолчанию 1000
    page - Номер страницы вывода
    Фильтр по умолчанию: {
      page : 1,
      limit : 1000,
      order : 'b.id',
      orderType : 'DESC',
      type : 'all',
      active : 1,
      client_id : 0
    }
    Ответ: {
      filter: {},
      limit: 1000,
      page: 1,
      total: 6000,
      list: [
        {
          active: "1"
          author: "1"
          author_name: "CRM Т. "
          bill_id: 0
          client_company_id: "84"
          client_id: "10475"
          date_create: "2015-10-06"
          hash: "23d86626b1673482dc74e93431883300"
          id: "112"
          my_company_id: "2"
          nds: "0"
          pay: "0.00"
          pay_status: "not"
          payer: " Т."
          payment_date: "0000-00-00"
          recipient: "Реквизиты Центральные"
          stockgroup_id: "199"
          summ: "5000.00"
          type: "out"
        }
      ]
    }
    filter - Массив настроек фильтра
    limit - Кол-во результатов
    page - Номер страницы результатов
    total - Общее кол-во записей удовлетворяющих фильтру
    list - Массив записей
      active - Статус публикации
      author - ID создавшего сотрудника
      author_name - Имя создавшего сотрудника
      bill_id - ID связанного счёта
      client_company_id - ID Реквизиов контакта
      client_id - ID контакта
      date_create - Дата создания в формате YYYY-mm-dd
      hash - Уникальный ХЕШ для печати бланка
      id - ID счёта
      my_company_id - ID реквизитов компании
      nds - ризнак НДС ( 1 / 0 )
      pay - Оплачено по счёту
      pay_status - Статус оплаты ( "not" - неоплачено,'part'-частично оплачено,'full'-оплачено )
      payer - Имя плательщика
      payment_date - Дата оплаты
      recipient - Имя получателя
      stockgroup_id - ID списка товаров
      summ - Суммма
      type - Тип 'out' - исходящий/ 'in' - входящий
    API для добавления актов, акты для добавления передаются в виде массива обьектов,за раз можно добавить не более 1000 актов.

    Ответ возвращается так-же в виде массива, с результатом по добавлению каждого актв, и с ключом и описанием ошибок, если добавление акта не удалось.

    URL: http://domainname.intrumnet.com:81/sharedapi/acts/add
    Параметры:
    [
      {
        bill_id - ID прикреплёного счёта
        date_create - Дата создания
        product - Массив объектов
            count - Кол-во объектов
            name - Название объекта
            price - Цена объекта
        client_company_id - ID реквизитов контакта
        client_id - ID контакта
        my_company_id - ID реквизитов фирмы
        nds - Наличие ндс
        type - Тип акта входящий / исходящий(in/out)
      }
    ]
    Ответ: Ответ такой-же, как при добавлении счетов
    API для добавления актов, акты для обновления передаются в виде массива обьектов,за раз можно обновить не более 1000 актов.

    Ответ возвращается так-же в виде массива, с результатом по кажому обьекту, и с ключом и описанием ошибок, если обновление акта не удалось.

    URL: http://domainname.intrumnet.com:81/sharedapi/acts/add
    Параметры:
    [
      {
        id - Уникальный номер акта в CRM
        bill_id - ID прикреплёного счёта
        date_create - Дата создания
        product - Массив объектов
            count - Кол-во объектов
            id - Кникальный номер объекта
            name - Название объекта
            price - Цена объекта
        stockgroup_id - ID списка товаров
        client_company_id - ID реквизитов контакта
        client_id - ID контакта
        my_company_id - ID реквизитов фирмы
        nds - Наличие ндс
        type - Тип счёта входящий / исходящий(in/out)
      }
    ]
    Ответ: См.добавление счетов
    API для редактирования акта, принимает массив параметров для акта, в том числе обязательный act_id. Возвращает stat=1 в случаее успеха, и массив с ошибкой при возникновении таковой.
    URL: http://domainname.intrumnet.com:81/sharedapi/acts/edit
    Параметры:
    {
      act_id - Уникальный номер акта в CRM
      bill_id - ID прикреплёного счёта
      date_create - Дата создания
      product - Массив объектов
          count - Кол-во объектов
          name - Название объекта
          price - Цена объекта
      client_company_id - ID реквизитов контакта
      client_id - ID контакта
      my_company_id - ID реквизитов фирмы
      nds - Наличие ндс
      type - Тип счёта входящий / исходящий(in/out)
    }
    Ответ: stat:0,
    error: {
       key: 1,
       mes: "Не передан обязательный параметр act_id"
    }
    stat - Результат (1 - успех,0 - ошибка)
    error - Массив ошибок
        key - Ключ ошибки
    1. Не передан обязательный параметр act_id
    2. Несуществующий акт
    3. Не действительная дата
    4. Несуществующий контакт
        mes - Описание ошибки
    API для установки статуса оплаты акта,принимает 2 параметра ID акта в CRM и 2й необязательный = сумма оплаты (по умолчанию равен полному платежу)

    Ответ возвращается в виде массива, с параметром stat и status_pay или error - если возникла ошибка

    URL: http://domainname.intrumnet.com:81/sharedapi/acts/set_pay
    Параметры:
    {
      id - Уникальный номер акта в CRM
      pay - Сумма платежа (необязательный)
    }
    Ответ:    {
         stat: 0,
         status_pay: "not",
         error:{
           key:6,
           mes:"Не передан обязательный параметр ID"
         }
       }
    stat - Результат (1 - успех,0 - ошибка)
    status_pay - Актуальный статус
    •   'not' = Неоплачен
    •   'part' = Частично оплачен
    •   'full' = Оплачен
    error - Массив ошибки
      key - Ключ ошибки
    •   6 - Не заполнен обязательный параметр ID
    •   7 - Счёт не найден в системе или к нему не прикреплены товары
      mes - Описание ошибки
    API для постраничного вывода выписок используя фильтр и поиск
    URL: http://domainname.intrumnet.com:81/sharedapi/checks/get
    Параметры:
    company_inn - ИНН компании фигурирующей в выписке
    search - Строка поиска, поиск осуществляется : По ИНН, ID выписки, внешнему номеру выписки, ФИО плательщика или получателя
    author - ID сотрудника создавшего счёт
    type - Тип выписки, взодящая/исходящая(in/out)
    date_start - Дата создания старше или равна переданной
    date_end - Дата создания младше или равна переданной
    orderType - Сортировка по убыванию / возрастанию (ASC,DESC)
    order - Поле сортировки ('с.id' - номер счёта, "с.date_create" - дата создания счёта)
    limit - Количество результатов в одном (постарничном) запросе по умолчанию 1000, больше 1000 передавать нельзя
    page - Номер страницы вывода
    Фильтр по умолчанию: {
      page : 1,
      limit : 1000,
      order : 'с.id',
      orderType : 'DESC',
      type : 'all'
    }
    Ответ: {
      filter: {},
      limit: 1000,
      page: 1,
      total: 6000,
      list: [
        {
          act_id: "0",
          author: "1",
          bill_id: "0",
          check_type: "01",
          comment: "Пополнение счета в информационной системе Интрум по счету № 5/1902 от 03.09.2015г. Сумма 10500-00. Без налога (НДС)",
          date: "2015-09-04",
          id: "38",
          info: null,
          nume: "242",
          outside: null,
          pay_type: "0",
          payer_bank_city: "Г САНКТ-ПЕТЕРБУРГ",
          payer_bank_name: "Ф-Л БАНКА ГПБ (АО) В Г.САНКТ-ПЕТЕРБУРГЕ",
          payer_bik: "044030827",
          payer_client_id: "10439",
          payer_id: "36",
          payer_inn: "7820334691",
          payer_kpp: "782001001",
          payer_ks: "30101810200000000827",
          payer_name: "ООО "РФН"",
          payer_rs: "40702810400000001970",
          priority: "5",
          recipient_bank_city: "Г САРАТОВ",
          recipient_bank_name: "Ф-Л СРТ ПАО "ХАНТЫ-МАНСИЙСКИЙ БАНК ОТКРЫТИЕ"",
          recipient_bik: "046311900",
          recipient_client_id: "-1",
          recipient_id: "2",
          recipient_inn: "6311102704",
          recipient_kpp: "631101001",
          recipient_ks: "30101810663110000900",
          recipient_name: "ИНН 6311102704 ООО "Седьмой Меридиан"",
          recipient_rs: "40702810711030001415",
          summ: "10500.00",
          type: "out",

        }
      ]
    }
    filter - Массив настроек фильтра
    limit - Кол-во результатов
    page - Номер страницы результата
    total - Общее кол-во записей удовлетворяющих фильтру
    list - Массив записей
      act_id - ID связанного акта
      author - ID сотрудника создавшего выписку
      bill_id - ID связанного счёта
      check_type - Вид Оплаты
      comment - Описание выписки
      date - Дата выписки
      id - Уникальный номер в CRM
      info -(необязательный) JSON массива доп.информации {status: Статус Составителя, okato: ОКАТО}
      nume - Внешний номер
      outside -(необязательный) JSON массива показателей {kbk : Показатель КБК grounds : Показатель Основания, period: Показатель Периода, nume: ПоказательНомера, date: ПоказательДаты,type: ПоказательТипа}
      pay_type - Тип оплаты
      payer_bank_city - Город банка плательщика
      payer_bank_name - Название банка плательщика
      payer_bik - БИК банка плательщика
      payer_client_id - ID контакта плательщика (для исходящих виписок)
      payer_id - ID реквизитов контакта-плательщика (для исходящих виписок)
      payer_inn - ИНН плательщика
      payer_kpp - КПП плательщика
      payer_ks - Коррекционный счёт плательщика
      payer_name - Имя плательщика
      payer_rs - Расчётный счёт плательщика
      priority - Приоритет
      recipient_bank_city - Город банка получателя
      recipient_bank_name - Название банка получателя
      recipient_bik - БИК банка получателя
      recipient_client_id - ID контакта получателя (для входящих виписок)
      recipient_id - ID реквизитов контакта-получателя (для входящих виписок)
      recipient_inn - ИНН получателя
      recipient_kpp - КПП получателя
      recipient_ks - Коррекционный счёт получателя
      recipient_name - Имя получателя
      recipient_rs - Расчётный счёт получателя
      type - Тип выписки входящая/исходящая(in/out)
    API для добавления выписок, выписки для добавления передаются в виде массива обьектов,за раз можно добавить не более 1000 выписок.

    Ответ возвращается так-же в виде массива, с результатом по кажому обьекту, и описанием ошибоки, если добавление выписки не удалось.

    URL: http://domainname.intrumnet.com:81/sharedapi/checks/add
    Параметры:
    [
        {
            bill_id - ID прикреплёного счёта
            comment - Комментарий по выписке
            date - Дата создания выписки
            nume - Внешний номер (1С) выписки
            payer_bank_city - Город банка плательщика
            payer_bank_name - Название банка плательщика
            payer_bik - БИК плательщика
            payer_client_id - ID контакта плательщика (для исходящих выписок)
            payer_id - ID реквизитов плательщика (для исходящих выписок)
            payer_inn - ИНН плательщика
            payer_kpp - КПП плательщика
            payer_ks - Коррекционный счёт плательщика
            payer_name - Имя плательщика
            payer_rs - Расчётный счёт плательщика
            recipient_bank_city - Город банка получателя
            recipient_bank_name - Название банка получателя
            recipient_bik - БИК получателя
            recipient_client_id - ID контакта получателя (для входящих выписок)
            recipient_id - ID реквизитов получателя (для входящих выписок)
            recipient_inn - ИНН получателя
            recipient_kpp - КПП получателя
            recipient_ks - Коррекционный счёт получателя
            recipient_name - Имя получателя
            recipient_rs - Расчётный счёт получателя
            summ - Сумма по выписке
            type - Тип выписки входящая/исходящая(in/out)
        }
    ]
    Ответ: [
      {
        error: ""
        id: 41
        stat: 1
      }
    ]
    error - Описание ошибки, если добавление выписки не удалось
    id - ID добавленной выписки, при успешном добавлении
    stat - Статус успеха операции добавления выписки
    API для обновления выписок, выписки для обновления передаются в виде массива обьектов,за раз можно обновить не более 1000 выписок.

    Ответ возвращается так-же в виде массива, с результатом по кажому обьекту, и описанием ошибоки, если обновление выписки не удалось.

    URL: http://domainname.intrumnet.com:81/sharedapi/checks/update
    Параметры: Параметры те же что при добавлении выписки, плюс id выписки
    Ответ: Аналогичен ответу, при добавлении выписки
    API для загрузки файловых данных
    Пример скрипта на PHP
    URL: http://domainname.intrumnet.com:81/sharedapi/utils/upload
    Параметры:
    object - один из возможных вариантов: stock (объекты, продукты), applications (заявки), purchaser (контакты), sales (продажи)
    upload - имя поля загружаемого файла, поддерживает множественную загрузку
    Ответ: {
      name: "54cf4e91db8ba.jpg"// имя загруженного файла или массив значений при множественной загрузке
    }
    Чтобы запросить коментарии используйте следующий запрос
    URL: http://domainname.intrumnet.com:81/sharedapi/[тип_объекта]/comments
    Тип объекта должен быть одним из значений: stock, applications, purchaser, sales
    Параметры:
    entity_id - id или массив id сущностей
    Ответ: Для контакта выводятся все коментарии связаных с ним объектов, заявок (активности), сделок {
      //id сущности
      273954: [
      //массив комментариев
        {
          //id внутренний
          id: "492",
          //тип сущности
          parent_type: "sale",
          //id сущности
          parent_id: "447",
          //текст комментария
          text: "Comment text",
          //дата добавления
          date: "2016-05-31 12:13:15",
          //id контакта, если есть
          customer_id: "273954",
          //id автора
          author_id: "47",
          //список прикрепленных файлов
          files: [
            {
              id: "66",
              parent: "492",
              name: "business_filter_q_2.png",
              size: "201085",
              file: "/files/crm/ribbon/574d479b30ce8.png"
            }
          ]
        }
      ]
    }
    SMS
    На странице Настройка отправки СМС добавляется Свой СМС-провайдер с типом Реализация API и следующими полями:
    - API ключ:32-символьная строка, генерируемая сервером INTRUM, потребуется при запросах;
    - Gateway Client:url скрипта примимающего запросы от INTRUM;
    - Gateway CRM:url скрипта для отправки запросов контактам;

    Затем необходимо добавить имя/номер отправителя, в качестве провайдера выбрав только что созданного. CRM INTRUM будет принимать только те входящие SMS, которые были отправлены на добавленные в админке номера.

    В поле Gateway CRM введите адрес к PHP скрипту, размещенный на Вашем хостинге. В PHP скрипт добавьте класс CustomSmsService extends IntrumSmsApi из библиотеки, там в функциях sendSms, smsStatus разместите код, отправляющий запросы на внешний адрес sms провайдера

    sendSmsотправить смс
    smsStatusполучить текущий статус отправки/доставки смс
    smsRecievedполучено новое сообщение
    Запросы посылаются методом POST к соответствующим url, а ответы возвращаются в JSON-формате. Обязательными параметрами запроса являются action и hash.
    Хеш запроса вычисляется следующим образом:
    • 1. пары ключ-значение сортируются по имени ключа;
    • 2. значения объединяются в единую строку;
    • 3. к строке добавляется API ключ;
    • 4. хешем является значение MD5 от полученной строки;
    Данные действия производятся как отправляющей, так и принимающей запрос стороной, и только если хеши совпадают, запрос считается верным.
    Параметры action = sendSms
    user = имя_пользователя, если оно было задано в настройках при добавлении провайдера
    sender = имя_отправителя, из настроек "Тел. номеров отправки"
    destination = номер_назначения
    text = текст_смс
    Ответ В случае успешной постановки смс в очередь на отправку в ответе должны содержаться поля: {
      "success":true,
      "data":97687 // уникальный id смс (> 0)
    }
    В случае ошибки: {
      "success":false,
      "data":"причина ошибки"
    }
    Параметры action = smsStatus
    sms_id = числовой_идентификатор_смс
    Ответ В случае успеха: {
      "success":true,
      "count":2 //количество отправленных смс
      "status":"new" //текущий статус отправки
    }
    В случае ошибки: {
      "success":false
    }
    В данном случае, через какое-то время сервер INTRUM повторит запрос.
    newв очереди на отправку
    inprogressотправляется
    sendотправлено
    deliveredдоставлено
    notdeliveredне доставлено
    blockedотправка невозможна (нет средств и т. п.)
    absentабонент недоступен
    notfoundсмс с переданным id не существует
    Параметры action = smsRecieved
    sms_id = числовой_идентификатор_смс (> 0)
    sender = номер_отправителя
    destination = номер_назначения
    message = текст_смс
    count = количество_сообщений_в_смс
    date = дата_получения_в_unix_timestamp (необязательный параметр)
    Ответ В случае успешного добавления sms в INTRUM, ответом будет: {
      "success":true
    }
    В случае если сервер не может обработать запрос в данный момент, и запрос следует повторить спустя какое-то время: {
      "success":false,
      "repeat":true
    }
    В случае ошибки, и когда повторять запрос не следует: {
      "success":false,
      "repeat":false,
      "error":"причина ошибки"
    }
    Для работы с телефонией, на странице Настройки - Интеграции - API v2 необходимо создать API-ключ и разрешить для него работу со Звонками. Все дальнейшие запросы производятся с указанием этого ключа.
    Запросы отправляются на адрес: http://domainname.intrumnet.com:81/sharedapi/calls/[имя_запроса] где domainname заменяется на имя вашего домена CRM.
    Пример запроса: {
      apikey: /* 32 значный ключ */,
      params: /* ассоциативный массив параметров */
    }
    Ответ доступен в формате JSON.
    trunks получить список соединений
    phoneNumbers получить список номеров для совершения входящих и исходящих вызовов
    statuses получить список доступных статусов звонков. Имеются ввиду статусы, которые назначаются пользователями вручную
    history получить историю звонков
    update редактирование звонка
    import импорт одного звонка в историю
    importall импорт нескольки звонков в историю, за один запрос
    call создать звонок
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/trunks
    Параметры Без параметров
    Ответ Перечисление всех соединений в системе: {
      "status":"success",
      "data":[{
        "trunk_id":"4",
        "name":"7 (495) 012-34-56",
        "prov":"MANGO",
        "phone":"74950123456",
        "take_input":"1"
      }]
    }
    В случае ошибки: {
      "status":"fail",
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/phoneNumbers
    Параметры Без параметров
    Ответ Перечисление всех номеров для входящих и исходящих вызовов в системе: {
      "status":"success",
      "data":{
        "in":[{
          "trunk_id":"4",
          "phone":"74950123456",
          "title":"7 (495) 012-34-56"
        }],
        "out":[{
          "trunk_id":"4",
          "phone":"74950123456",
          "title":"7 (495) 012-34-56",
          "default_landing":"1"
        }]
      }
    }
    В случае ошибки: {
      "status":"fail",
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/statuses
    PHP библиотека метод: callsGetStatuses
    Параметры Без параметров
    Ответ Перечисление всех статусов, которые могут быть назначены вонкам: {
      "status":"success",
      "data":[{
          "id":"1",
          "order":"1",
          "color":"#91C8EE",
          "text":"В обработку",
          "public":"1"
        },{
          "id":"2",
          "order":"2",
          "color":"#E9BCBA",
          "text":"Срочно",
          "public":"1"
        },{
          "id":"3",
          "order":"3",
          "color":"#BABADD",
          "text":"Перезвонить",
          "public":"1"
        }]
    }
    В случае ошибки: {
      "status":"fail",
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/history
    Параметры id   Числовой id звонка
    fromPhone   Фильтр по номеру с которого звонили
    toPhone   Фильтр по номеру на который звонили
    trunkId   Фильтр по id соединения через которое звонили
    dateFrom   Искать звонки после даты
    dateTo   Искать звонки до даты
    type   Тип звонков: in, out
    answered   Был ли звонок успешным: true, false
    customStatus   ID назначенного звонку статуса, список доступных статусов. Допускается указание знаков сравнения и частиты отрицания, например: >=5, <9, not 3
    limit   Ограничить ответ количеством записей (макс. 1000)
    page   Совместно с ограничением, определяет страницу выдачи
    orderField   Сортировать по полю (по-умолчанию поле даты)
    orderType   Направление сортировки: ASC, DESC (по-умолчанию DESC)
    count_total     Подсчет общего количества найденых записей: 1 - считать, 0 - нет (по умолчанию 0 )
    Ответ Список звонков из истории, по указанным фильтрам: {
      "status":"success",
      "data":[{
          "id":"27402",
          "date_time":"2016-07-21 12:11:47",
          "users": [
            {
              "user_id": 37,
              "bridged": false
            }, {
              "user_id": 52,
              "bridged": true
            }
          ],
          "is_incoming":"1",
          "is_answered":"0",
          "custom_status":"2",
          "from_phone":"79379998888",
          "to_phone":"74950123456",
          "trunk_id":"4",
          "call_duration":"64",
          "url_record":"https://yourdomain.intrumnet.com/files/records..."
          "url_record_stereo":"https://yourdomain.intrumnet.com/files/records..."
        },
        "conversation":
          "<метод_распознавания>":[{
              "entity":"manager",
              "channel":"1",
              "text":"авито может",
              "startTime":"8.61",
              "endTime":"8.85",
            }, {
              "entity":"client",
              "channel":"0",
              "text":"здравствуйте",
              "startTime":"9.06",
              "endTime":"10.25",
            }],
        "tags": [{
            "title":"Авито",
            "color":"yellow"
         }]
    }
    В случае ошибки: {
      "status":"fail",
    }
    Записи разговора могут быть в моно и стерео форматах. В зависимости от настроек, любая из них или обе сразу могут отсутствовать, в этом случае вместо ссылки в соответствующем поле будет передана пустая строка.
    По значению поля bridged в объектах сотрудников участвовавших в звонке, можно понять разговаривал ли определённый сотрудник (значение true), или просто находился в сценарии обработки звонка (значение false).
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/import
    Параметры
    uniqueId Уникальный идентификатор звонка. 32-х символьная строка
    from Номер, с которого совершён звонок
    to Номер, на который был совершён звонок
    userId id сотрудника, совершившего или принявшего звонок
    trunkId ID соединения, через которое был совершёл звонок, список соединений
    isIncoming Направление звонка с т.з. CRM системы: true или 1 - входящий, иначе - исходящий
    callerId Caller ID звонящего (обычно совпадает с его номером), не актуален при указанном isIncoming
    timestamp Время совершения звонка. Unix Timestamp
    url url записи звонка (mp3 и ogg формат). Звонок будет скачан и сохранён в CRM системе через некоторое время
    callDuration Длительность звонка в секундах
    isAnswered Был ли ответ на звонок
    customStatus ID назначенного звонку статуса, список доступных статусов
    Ответ в случае успеха операции, вовзращается ID добавленного звонка, в CRM звонок появится через екоторое время: {
      "result": "1",
      "callId": "fd701d48bffba9713c38cf4631577ee5"
    }
    В случае ошибки: {
      "status":"fail",
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/importall
    Параметры
    uniqueId Уникальный идентификатор звонка. 32-х символьная строка
    from Номер, с которого совершён звонок
    to Номер, на который был совершён звонок
    userId id сотрудника, совершившего или принявшего звонок
    trunkId ID соединения, через которое был совершёл звонок, список соединений
    isIncoming Направление звонка с т.з. CRM системы: true или 1 - входящий, иначе - исходящий
    callerId Caller ID звонящего (обычно совпадает с его номером), не актуален при указанном isIncoming
    timestamp Время совершения звонка. Unix Timestamp
    url url записи звонка. Звонок будет скачан и сохранён в CRM системе через некоторое время
    callDuration Длительность звонка в секундах
    isAnswered Был ли ответ на звонок
    customStatus ID назначенного звонку статуса, список доступных статусов
    Формат запроса Массив объектов call, в массиве с ключом calls {
      "calls": [
        {
          "uniqueId" : "1a6bd050b157dbddb622049084473691",
          "from" : "880020002",
          "to" : "102",
          "timestamp": "1500446673000",
          "trunkId" : 1,
          "isIncoming" : "1",
          "url" : "http://you.suite/rec.mp3",
          "callDuration" : "35",
          "isAnswered" : "1",
          "customStatus" : 1,
        }
      ]
    }
    Ответ {
      "result": "1",
      "inserted": "1",
      "error": "0"
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/update
    Параметры
    id / uniqueId Числовой id существующего звонка / Уникальный идентификатор звонка. 32-х символьная строка
    timestamp Время совершения звонка. Unix Timestamp * 1000
    url url записи звонка. Звонок будет скачан и сохранён в CRM системе через некоторое время
    callDuration Длительность звонка в секундах
    isAnswered Был ли ответ на звонок
    customStatus ID назначенного звонку статуса, список доступных статусов
    Ответ в случае успеха операции, вовзращается ID добавленного звонка, в CRM звонок появится через некоторое время: {
      "result": "1",
      "callId": "fd701d48bffba9713c38cf4631577ee5"
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/attachRequest
    Параметры
    uniqueId Уникальный идентификатор звонка. 32-х символьная строка
    requestId id заявки
    Ответ Ответ сервера в json формате {
      "success": true
    }
    В случае ошибки: {
      "success": false,
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/attachSale
    Параметры
    uniqueId Уникальный идентификатор звонка. 32-х символьная строка
    saleId id сделки
    Ответ Ответ сервера в json формате {
      "success": true
    }
    В случае ошибки: {
      "success": false,
    }
    В настройках телефонии можно создать виртуальное соединение, назначить ему исходящий номер, и закрепить этот номер за сотрудниками. При звонке сотрудника через данное виртуальное соединение, CRM-система отправит запрос call на указанный url.
    Параметры action = call
    phone_to   На какой номер позвонить
    phone_from   Какой номер использовать для звонка
    user_id   ID пользователя в CRM системе
    key   Ключ, указанный при создании соединения

    Ответ Ответ сервера в json формате {
      "success": true
    }
    В случае ошибки: {
      "success": false,
    }
    Запросить звонок с номера А на номер Б. Сначала АТС дозвонится на номер А, а после ответа, запустится дозвон на номер Б.
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/callRequest
    Параметры phoneA  -  на какой номер позвонить сначала
    phoneB  -  на какой номер позвонить, если phoneA ответил на звонок
    trunkId  -  соединение, через которое будут совершаться внешние звонки. См. список соединений

    Ответ Ответ сервера в json формате {
      "success": true
    }
    В случае ошибки: {
      "success": false,
    }
    Все API запросы связанные с внешними диалогами имеют [тип_объекта] = externaldialogs
    Пример скриптов для создания мессенджера на Github
    Запрос является многофункциональным и зависит от набора параметров
    [подтип] insert
    URL: http://domainname.intrumnet.com:81/sharedapi/externaldialogs/insert
    Параметры:
    customer - id контакта в системе INTRUM
    Опционально если необходимо прикрепить диалог к контакту
    Если нужно создать диалог без привязки к контакту в системе INTRUM то в параметре customer нужно указать 0
    dialog - Набор свойств типа диалога
    id - Заданный id типа диалога
    Опционально! Если указан этот параметр, то остальные параметры в dialog Игнорируются
    name - Название нового типа диалога
    Если необходимо создать новый диалог
    employees - Список участников диалога
    Список id сотрудников.
    Обратите внимание, чтобы не перечислять список сотрудников для каждого диалога, создайте тип диалога с заданным списком сотрудников и прикрепляйте все новые диалоги к нему.
    Ответ В любом случае в ответе будет присутствовать clientkey и client (идентификатор внешнего адресата диалога): {
      "clientkey" : "c62f4c374e28bad97ab57256aeb034b8"
      "client" : "32423"
    }

    Внимание !

    Сохраните clientkey и client для дальнейшего использования
    В случае, если не указан dialogid.id, в ответе будет содержаться dialogid - id созданного типа диалога.
    В дальнейшем можно указывать его в параметре dialogid.id, если вам необходимо создать аналогичный диалог (название, список сотрудников) с другим контактом. {
      "clientkey" : "c62f4c374e28bad97ab57256aeb034b8" ,
      "dialogid"  : 56 ,
      "client" : "32423"
    }
    Запрос для изменения типа диалога("Название" , "Состав сотрудников").
    [подтип] update
    URL: http://domainname.intrumnet.com:81/sharedapi/externaldialogs/update
    Параметры:
    id - id типа диалога (Обязательно)
    name - новое имя типа диалога (Опционально)
    Указать новое название если необходимо сменить
    employees - новый список участников (Опционально)
    Список id сотрудников (участников), если нужно изменить
    Ответ status - boolean Статус завершения операции {
      "status" : true
    }
    Запрос для постраничного получения истории сообщений.
    [подтип] history
    URL: http://domainname.intrumnet.com:81/sharedapi/externaldialogs/history
    Параметры:
    group - id типа диалога (Обязательно)
    client - id внешнего адресата (Обязательно)
    date - timestamp (Обязательно)
    Крайняя дата - отдаются все сообщения пришедшие до указанного момента
    page - номер запрашиваемой страницы (0 - первая странциа)
    Если параметр опущен то будет отдана первая страница
    История отдается начиная с последнего сообщения
    count - Количество на страницу (30 по умолчанию)
    Целое число в диапазоне 10 - 50 включительно
    Ответ list - Массив типов диалогов {
      "list"  : [// Список сообщений
        {
          "sender_type" : "intrum" ,// client - сообщение внешнего клиента | intrum - сообщение сотрудника
          "text" : "test" ,// текст сообщения (url encode)
          "author" : "1" ,// id сотрудника отправителя (только если sender_type = intrum)
          "date" : "1474635572668" ,// timestamp (milliseconds)
          "hash" : "c70512f34fd2a233427b9d00b0cdc2fb" ,// уникальный ключ сообщения
          "status" : false// флаг прочитанности сообщений
        }
      ] ,
      "total" : 10 // Сколько сообщений всего
    }
    Запрос для постраничного получения списка непрочитанных сообщений.
    [подтип] notread
    URL: http://domainname.intrumnet.com:81/sharedapi/externaldialogs/notread
    Параметры:
    groups - список id типов диалогов (Обязательно)
    client - id внешнего адресата (Обязательно)
    Ответ list - Массив типов диалогов {
      "list"  : {// Список сообщений
        "1"/* id диалога */ : ["c70512f34fd2a233427b9d00b0cdc2fb"]
      }
    }

    client -> server

    Пакет авторизации

    start#{action:login,key:/*Ключ авторизации*/,intrum:/*id интрума*/,group:/*id типа диалога*/}#end

    Пакет отправки сообщения

    start#{action:message,hash:/*Уникальный ключ сообщения string(32)*/,serverreceiverid:/*Алиас сервера получателя xxx.intrumnet.com*/,serverreceivertype:intrum,customer:/* id внешнего адресата */,group:/*id типа диалога*/,message:/* текст сообщения в urlencode */}#end

    Пакет отчета о прочтении

    start#{action:delivery,hash:/*Уникальный ключ сообщения string(32)*/,serverreceiverid:/*Алиас сервера получателя xxx.intrumnet.com*/,serverreceivertype:intrum,customer:/* id внешнего адресата */,group:/*id типа диалога*/}#end

    Запрос списка пользователей онлайн

    start#{action:onlinelist,serverreceiverid:/*Алиас сервера получателя xxx.intrumnet.com*/,serverreceivertype:intrum,customer:/* id внешнего адресата */,group:/*id типа диалога*/}#end

    Произвольные настраиваемые пакеты

    start#{action:systemnotice,/*Произвольные параметры*/}#end

    Pong пакет (ответ на ping)

    start#{action:pong}#end

    Подписка на обновление данных об онлайн статусах для сотрудников

    start#{action:subscribe,intrum:/*Алиас сервера получателя xxx.intrumnet.com*/,group:/*id типа диалога*/}#end

    Одписка от обновлений данных об онлайн статусах для сотрудников

    start#{action:unsubscribe,intrum:/*Алиас сервера получателя xxx.intrumnet.com*/,group:/*id типа диалога*/}#end

    Запрос списка подписок

    start#{action:subscribeslist,intrum:/*Алиас сервера получателя xxx.intrumnet.com*/}#end

    server -> client

    Ответ на пакет авторизации

    start#{action:login,status:/*success - при успешной авторизации, fails - в случае неудачи*/}#end

    Ping пакет (Нужно ответить пакетом pong)

    start#{action:ping}#end

    Список сотрудников онлайн

    start#{action:onlinelist,serversenderid:/*Алиас сервера получателя xxx.intrumnet.com*/,serversendertype:intrum,serverreceiverid:/* alias мобильного сервер получателя */,serverreceivertype:mobile,customer:/* id внешнего адресата */,group:/*id типа диалога*/,list:/* Список сотрудников онлайн формат [id user = on|off] например [1=on] */}#end

    Входящее сообщение

    start#{action:message,hash:/*Уникальный ключ сообщения string(32)*/,date:/* время отправки сообщения timestamp(milliseconds) */,serversenderid:/*Алиас сервера получателя xxx.intrumnet.com*/,serversendertype:intrum,serverreceivertype:mobile,customer:/* id внешнего адресата */,group:/*id типа диалога*/,manager:/* id автора сообщения */,message:/* текст сообщения в urlencode */}#end

    Отчет о доставки сообщения до сервера

    start#{action:delivery,hash:/*Уникальный ключ сообщения string(32)*/,serversenderid:/*Алиас сервера получателя xxx.intrumnet.com*/,serversendertype:intrum,serverreceiverid:/* alias мобильного сервер получателя */,serverreceivertype:mobile,customer:/* id внешнего адресата */,group:/*id типа диалога*/}#end

    Отчет о прочтении сообщения

    start#{action:managerread,hash:/*Уникальный ключ сообщения string(32)*/,serversenderid:/*Алиас сервера получателя xxx.intrumnet.com*/,serversendertype:intrum,serverreceivertype:mobile,customer:/* id внешнего адресата */}#end

    Список подписок

    start#{action:subscribeslist,list:/* Перечисление id типов диалогов через запятую */}#end

    Произвольные настраиваемые пакеты

    start#{action:systemnotice/*Произвольные параметры*/}#end
    Все API запросы связанные с органайзером имеют [тип_объекта] = org_events
    Запрос для постраничного получения списка событий
    [подтип] list
    URL: http://domainname.intrumnet.com:81/sharedapi/org_events/list
    Параметры:
    filters - Фильтры
    from - (unix timestamp) - Начало периода за который нужно получить события (по умолчанию текущее время)
    to - (unix timestamp) - Окончание периода за который нужно получить события (по умолчанию текущее время + 30 дней)
    publ - (1 - активные (по умолчанию) , 0 - удаленные , all - все) - Фильтр по опубликованности
    employee - (целое) ID Сотрудника, если нужно по всем - то параметр не указывается.
    uid - (строка) Уникальный идентефикатор события. Например для регулярных событий
    types - (массив) Список идентефикаторов (id) Типов событий
    Ответ
    list - Массив событий
    {
      "list"  : [
        {
          "id"              : "ID события (используется в методах по событию)" ,
          "queue"          : "ID очереди события (используется в методах по событию)" ,
          "publ"            : "1 (1 - Активно , 0 - удалено)" ,
          "uid"             : "Уникальный идентефикатор события" ,
          "created"         : "unix timestamp - время создания события" ,
          "last-modified"   : "timestamp - время последнего редактирования" ,
          "author_id"       : "целоа - id сотрудника (автора события)" ,
          "summary"         : "строка - краткое название события" ,
          "description"     : "строка - Описание события" ,
          "dtstart"         : "unix timestamp - Время начала события" ,
          "dtend"           : "unix timestamp - Время окончания события" ,
          "dtoffset"        : "целое - Смещение временной зоны относительно UTC в минутах (например для UTC +3 значение 180) для dtstart" ,
          "dtendoffset"     : "целое - Смещение временной зоны относительно UTC в минутах (например для UTC +3 значение 180) для dtend" ,
          "allday"          : "1 - Событие на весь день, 2 - событие на указанный интервал" ,
          "type_id"         : ID Типа событии ,
          "theme_id"        : ID Темы событии ,
          "is_reg"          : "1 - Повторяющееся событие, 0 - одиночное событие" ,
          "bg-color"        : "hex - цвет фона события" ,
          "b-color"         : "hex - цвет рамки события" ,
          "t-color"         : "hex - цвет текста события" ,
          "alarms"          : "json string - Уведомления события" ,
          "Type": { /* Если у события есть тип события то присутствует параметр с описанием Типа */
            "id"              : "целое - id типа",
            "is_system"       : "yes или no - системное или нет",
            "system_name"     : "Если системное , название системного типа (например Показ)" ,
            "title"           : "Название типа события",
            "theme_id"        : "5",
            "textColor"       : "hex - цвет текста события",
            "backgroundColor" : "hex - цвет фона события",
            "borderColor"     : "hex - цвет рамки события"
          }
        }
      ]
    }
    Запрос для постраничного получения списка событий
    [подтип] types
    URL: http://domainname.intrumnet.com:81/sharedapi/org_events/types
    Параметры: Отсутствуют
    Ответ
    Массив типов событий
    [ { "id": "целое - id типа", "is_system": "yes или no - системное или нет", "system_name": "Если системное , название системного типа (например Показ)", "title": "Название типа события", "theme_id": "ID Маркера", "textColor": "hex - цвет текста события", "backgroundColor": "hex - цвет фона события, "borderColor": "hex - цвет рамки события" } ]
    Список пропущенных уведомлений по событиям
    [подтип] missed_alarms
    URL: http://domainname.intrumnet.com:81/sharedapi/org_events/missed_alarms
    Параметры:
    employee_id - Id сотрудника
    Ответ [ /****/ { "id" : "целое - id пропущеного уведомления" , "alarm" : "целое - id уведомления" , "event_id" : "целое - id напоминания" , "queue" : "целое - id очереди напоминания" , "summary" : "строка - название события" , "description" : "строка - описание события" , "notice" : "строка - текс увемоления" , "datetime" : "unix timestamp - Время вызова уведомления" } /****/ ]
    Информация о событии
    [подтип] get
    URL: http://domainname.intrumnet.com:81/sharedapi/org_events/get
    Параметры:
    event_id - Id напоминания (Обязательно)
    queue_id - Id очереди (не обязательно) , например если уведомление регулярное то некоторые напоминания в очереди могут отличаться друг от друга и если не указать этот параметр, то вернутся общие данные для всей очереди
    Ответ { "id" : "целое - id напоминания" , "queue" : "целое - id очереди напоминания" , "uid" : "Уникальный идентефикатор события" , "publ" : "1 (1 - Активно , 0 - удалено)" , "created" : "unix timestamp - время создания события" , "last-modified" : "timestamp - время последнего редактирования" , "author_id" : "целоа - id сотрудника (автора события)" , "summary" : "строка - краткое название события" , "description" : "строка - Описание события" , "dtstart" : "unix timestamp - Время начала события" , "dtend" : "unix timestamp - Время окончания события" , "dtoffset" : "целое - Смещение временной зоны относительно UTC в минутах (например для UTC +3 значение 180) для dtstart" , "dtendoffset" : "целое - Смещение временной зоны относительно UTC в минутах (например для UTC +3 значение 180) для dtend" , "allday" : "1 - Событие на весь день, 2 - событие на указанный интервал" , "theme_id" : "ID темы события", "type_id" : "ID типа события", "is_reg" : "1 - Повторяющееся событие, 0 - одиночное событие" , "bg-color" : "hex - цвет фона события" , "b-color" : "hex - цвет рамки события" , "t-color" : "hex - цвет текста события" , "alarms" : "json string - Уведомления события" , "missed_alarms" : "null или массив id пропущенных уведомлений" , "users" : "null или массив id сотрудников" , "connections" : [ /** Список прикрепленных сущностей **/ { "substance_summary" : "строка - название сущности , если есть" "object_type" : "строка - тип сущности" "object_id" : "строка - id сущности" } /****/ ] }
    Добавление нового события в органайзер
    Не забудьте включить настройку у используемого API ключа
    [подтип] insert
    URL: http://domainname.intrumnet.com:81/sharedapi/org_events/insert
    Параметры:
    event - Массив с данными о событии
    dtstart - (unix timestamp) - Начало события
    dtend - (unix timestamp) - Окончание события
    summary - (строка) - Название события
    description - (строка) - Описание события
    dtoffset - (целое) - Смещение временной зоны относительно UTC в минутах (например для UTC +3 значение 180) для dtstart
    dtendoffset - (целое) - Смещение временной зоны относительно UTC в минутах (например для UTC +3 значение 180) для dtend (если не указан то используется dtoffset)
    author_id - (целое) - автор (id сотрудника)
    allday - 1 - Событие на весь день, 0 - событие на указанный интервал
    type_id - (целое) - Тип соыбтия
    users - (массив id сотрудников) - Если нужно добавить сотрудников в событие, автора указывать не нужно
    connections - (массив) - Прикрепленные сущности, пример можно посмотреть в ответе с информацией о событии
    bg-color - (hex) - цвет фона события
    b-color - (hex) - цвет рамки события
    t-color - (hex) - цвет текста события
    alarms - (массив) - Уведомления по событию

    trigger - (строка) - триггер в формате iCal подробнее. Например "-P10M" - за 10 минут до начала события
    notice - (строка) - Описание к напоминанию

    rrule - (строка) - Описание регулярно события в формате iCal подробнее. Если событие не повторяется то параметр не заполнять. Удобный конструктор строки
    Ответ { "event_id" : "(целое) - id созданного события" "uid" : "(строка) - уникальный идентефикатор созданного события" }
    Редактирование события в органайзере
    Не забудьте включить настройку у используемого API ключа
    [подтип] update
    URL: http://domainname.intrumnet.com:81/sharedapi/org_events/update
    Параметры:
    Параметры аналогичны параметрам при добавление за исключениями
    - в массив event добавить параметр id - id редатируемого события
    - в массив event добавить параметр queue - id очереди редатируемого события если нужно отредактировать только определенное событие из очереди
    - можно указать только те параметры которые нужно отредактировать
    - Параметр users можно не указывать если список участников не меняется
    - можно указать параметр publ = 0 для удаления , 1 - для восстановления (нужны соответствующие права)
    Ответ { "event_id" : "(целое) - id события" "changes" : [ /* Список изменени */ { "row" : "Поле" , "old" : "Старое значение" , "new" : "Новое значение" } ] }
    Удаление события в органайзере
    Не забудьте включить настройку у используемого API ключа
    [подтип] delete
    URL: http://domainname.intrumnet.com:81/sharedapi/org_events/delete
    Параметры:
    id - Id напоминания
    queue - Id очереди напоминания
    Ответ
    Пустой в случае успеха
    Получение всех типов документов
    URL: http://domainname.intrumnet.com:81/sharedapi/blanks/types
    Параметры: Без параметров
    Ответ: [
      {
        // id типа документа
        "id": "62",
        // название
        "name": "Презентация объекта",
        // описание
        "description": "Основной бланк презентации объекта",
        // связь с CRM сущностью
        "object_type": "stock",
        // id типа CRM сущности
        "object_id": "1"
      }
      ...
    ]
    Получение списка документов согласно фильтрам
    URL: http://domainname.intrumnet.com:81/sharedapi/blanks/filter
    Параметры:
    date_fill - {from: "2015-10-29 09:45:23", to: "2015-11-19 13:05:12"} выборка документов за определенный период
    blank_id - тип документа (id или массив id)
    employee_id - сотрудник (id или массив id)
    object_type - тип CRM сущности (customer,stock,request,sale)
    object_id - id сущности (id или массив id)
    page - номер страницы выборки (нумерация с 1)
    limit - число записей в выборке (по умолчанию 50)
    Ответ: {
      // список отправленных
      list: [
      [
        {
          // id документа
          id: "116",
          // id типа документа
          blank_id: "76",
          // название
          title: "ID: 557955 / Продажа Квартиры, Николая Островского ул, 70",
          // сотрудник, который создал документ
          employee_id: "2",
          // дата создания документа
          date_fill: "2019-06-10 13:41:04",
          // тип связанной CRM сущности
          object_type: "stock",
          // id связанной CRM сущности
          object_id: "557955"
        }
        ...
      ],
      // количество найденых записей
      count: 452
    }
    Получение содержимого и информации по документу
    URL: http://domainname.intrumnet.com:81/sharedapi/blanks/info
    Параметры:
    id - id документа
    Ответ: {
      // id документа
      id: "116",
      // id типа документа
      blank_id: "76",
      // название
      title: "ID: 557955 / Продажа Квартиры, Николая Островского ул, 70",
      // сотрудник, который создал документ
      employee_id: "2",
      // дата создания документа
      date_fill: "2019-06-10 13:41:04",
      // тип связанной CRM сущности
      object_type: "stock",
      // id связанной CRM сущности
      object_id: "557955",
      // содержимое
      content: "<html..."
    }
    Получение списка отправленных презентаций согласно фильтрам
    URL: http://domainname.intrumnet.com:81/sharedapi/blanks/shipping
    Параметры:
    date_send - {from: "2015-10-29 09:45:23", to: "2015-11-19 13:05:12"} выборка отправленных за определенный период
    status - статус отправки (тип или массив типов)
    • processed - принято для отправки
    • dropped - ошибка
    • delivered - доставлено
    • deferred - отложено
    • bounce - доставка невозможна
    • open - открыто
    • click - открыто
    • shipped - отправлено
    • spamreport - помечено как спам
    • unsubscribe - отписано
    • error - ошибка
    blank_id - тип документа (id или массив id)
    employee_id - сотрудник (id или массив id)
    object_type - тип CRM сущности (customer,stock,request,sale)
    object_id - id сущности (id или массив id)
    page - номер страницы выборки (нумерация с 1)
    limit - число записей в выборке (по умолчанию 50)
    Ответ: {
      // список отправленных
      list: [
        {
          // id истории отправки
          id: "225",
          // статус отправки
          status: "bounce",
          // почтовый адрес отправителя
          source_from: "source@gmail.com",
          // почтовый адрес получателя
          source_to: "dest@gmail.com",
          // дата отправки
          date_send: "2019-06-10 13:41:04",
          // id типа документа
          blank_id: "76",
          // дата отправки
          document_id: "116",
          // тип связанной CRM сущности
          object_type: "stock",
          // id связанной CRM сущности
          object_id: "557955"
        }
        ...
      ],
      // количество найденых записей
      count: 452
    }
    В случае ошибки запроса возвращается ответ {
      status: 'fail',
      message: 'BAD_REQUEST',
      error: '%error text%'
    }
    в котором в поле error указано описание ошибки
    Общие ошибки:
    unknown api method - данный метод API не реализован
    sql error - ошибка SQL при обработке запроса, обратитесь в техническую поддержку
    Получение списка задач
    URL: http://domainname.intrumnet.com:81/sharedapi/tasks/list
    Параметры:
    id - id задачи
    status - статус задачи:
    • draft - черновик
    • new - новая
    • open - ознакомлен
    • performed - в работе
    • checking - на проверке
    • verified - выполнена
    • correction - на доработке
    • removed - удалена
    • frozen - заморожена
    type - тип задачи для сотрудника, id которого указано в поле employee:
    • out - исходящая задача (сотрудник - постановщик задачи)
    • in - входящая задача (сотрудник - исполнитель или соисполнитель)
    • performer - входящая задача (сотрудник - исполнитель)
    • coperformer - входящая задача (сотрудник - соисполнитель)
    • personal - личная задача
    employee - id сотрудника для фильтра по типу задачи, или для получения типа задачи в поле type ответа, в выборке будут только задачи, в которых есть данный сотрудник
    stock - id объекта для получения задач, к которым прикреплён данный объект;
    request - id заявки для получения задач, к которым прикреплена данная заявка;
    sale -id сделки для получения задач, к которым прикреплена данная сделка;
    customer - id контакта для получения задач, к которым прикреплён данный контакт;
    search - текст для поиска в заголовке или описании задачи
    limit - лимит задач в выборке (по умолчанию - 100, макс. значение - 1000)
    page - номер страницы выдачи (по умолчанию - 0)
    fields - перечень возвращаемых полей задачи, соединенных через запятую (по умолчанию - все поля, кроме type):
    • id - id задачи
    • title - название задачи
    • description - описание задачи
    • status - статус задачи, в поле будет указано одно из значений:
      • draft - черновик задачи
      • new - новая
      • open - ознакомлен
      • performed - в работе
      • checking - на проверке
      • verified - выполнена
      • correction - на доработке
      • removed - удалена
      • frozen - заморожена
    • terms - сроки задачи
    • priority - приоритет задачи (1 - низкий приоритет, 7 - срочная задача)
    • director - id сотрудника - постановщика задачи
    • performer - id сотрудника - исполнителя задачи
    • coperformer - массив id сотрудников - соисполнителей задачи
    • author - id автора задачи
    • type - тип задачи для сотрудника, id которого указано в поле фильтра employee, в поле будет указано одно из значений:
      • out - сотрудник employee является постановщиком задачи
      • performer - сотрудник employee является исполнителем задачи
      • coperformer - сотрудник employee является соисполнителем задачи
      • personal - задача является личной для сотрудника employee
    • checklist - чеклист задачи
    • attaches - прикрепленные CRM-элементы
    • files - массив файлов-вложений
    • tags - массив тегов задачи
    Ответ: {
      tasks: [
        {
          // id задачи
          id: "2701",
          // заголовок задачи
          title: "Позвонить клиенту",
          // описание задачи
          description: "Нужно позвонить клиенту",
          // статус задачи
          status: "performed",
          // приоритет задачи (1 - низкий приоритет, 7 - срочная)
          priority: 2,
          // сроки исполнения
          terms: "2022-06-10 13:41:04",
          // постановщик
          director: 2,
          // исполнитель
          performer: 42,
          // соисполнители
          coperformer: [39,482,53],
          // тип задачи
          type: "out",
          // автор задачи
          author: 2,
          // чеклист задачи
          checklist: [
            {
              // название пункта
              title: "тестовый пункт",
              // флаг "пункт отмечен"
              checked: false,
              // флаг "пункт важный"
              important: true,
              // флаг "пункт удален"
              disabled: false
            }
            ...
          ]
          // прикрепленные CRM элементы
          attaches: [
            {
              // id сущности
              id: 536923,
              // тип сущности (stock, request, sale, customer)
              type: "stock"
            }
            ...
          ]
          // вложения в задачу
          files: [
            {
              // id файла
              id: 8789,
              // название файла
              title: "about.html"
            }
            ...
          ],
          // теги задачи
          tags: [ "тестовый тег", "тесты API" ]
        }
        ...
      ],
      // количество найденых записей
      count: 452
      // количество страниц ответа
      pages: 32
    }
    Возможные ошибки:
    unknown task status - неподдерживаемое значение поля фильтра status
    employee field is required - задан фильтр по полю фильтра type, и/или в поле fields указано поле type, но не задано поле фильтра employee
    unknown task type - неподдерживаемое значение поля фильтра type
    empty field list - в запрос передается параметр fields, но его значение пустое
    unknown task field - в параметре fields указано неподдерживаемое значение
    negative limit - в параметре limit указано отрицательное значение
    zero limit - в параметре limit указано нулевое значение
    negative page - в параметре page указано отрицательное значение
    unknown filter field - передан неподдерживаемый параметр
    no search text - пустой или невалидный текст для поиска
    Поиск задач по заголовку
    URL: http://domainname.intrumnet.com:81/sharedapi/tasks/search
    Параметры:
    title - текст для поиска в заголовке задачи, обязательное поле
    limit - лимит задач в выборке (по умолчанию - 100, макс. значение - 1000)
    page - номер страницы выдачи (по умолчанию - 0)
    Ответ: {
      tasks: [
        {
          // id задачи
          id: "2701",
          // заголовок задачи
          title: "Позвонить клиенту",
          // описание задачи
          description: "Нужно позвонить клиенту",
          // статус задачи
          status: "performed",
          // сроки исполнения
          terms: "2022-06-10 13:41:04",
          // приоритет задачи (1 - низкий приоритет, 7 - срочная)
          priority: 2,
          // постановщик
          director: 2,
          // исполнитель
          performer: 42,
          // соисполнители
          coperformer: [39,482,53],
          // тип задачи
          type: "out",
          // автор задачи
          author: 2,
          // чеклист задачи
          checklist: [
            {
              // название пункта
              title: "тестовый пункт",
              // флаг "пункт отмечен"
              checked: false,
              // флаг "пункт важный"
              important: true,
              // флаг "пункт удален"
              disabled: false
            }
            ...
          ]
          // прикрепленные CRM элементы
          attaches: [
            {
              // id сущности
              id: 536923,
              // тип сущности (stock, request, sale, customer)
              type: "stock"
            }
            ...
          ]
          // вложения в задачу
          files: [
            {
              // id файла
              id: 8789,
              // название файла
              title: "about.html"
            }
            ...
          ],
          // теги задачи
          tags: [ "тестовый тег", "тесты API" ]
        }
        ...
      ],
      // количество найденых записей
      count: 452
      // количество страниц ответа
      pages: 32
    }
    Возможные ошибки:
    no search text - пустой или невалидный текст для поиска
    negative limit - в параметре limit указано отрицательное значение
    zero limit - в параметре limit указано нулевое значение
    negative page - в параметре page указано отрицательное значение
    unknown filter field - передан неподдерживаемый параметр
    Создание задачи
    URL: http://domainname.intrumnet.com:81/sharedapi/tasks/create
    Параметры:
    title - заголовок задачи (обязательное поле, если не указано поле description)
    description - описание задачи (обязательное поле, если не указано поле title)
    director - id сотрудника - постановщика задачи (обязательное поле)
    performer - id сотрудника - исполнителя задачи (обязательное поле)
    coperformer - список id сотрудников - соисполнителей задачи, соединенных через запятую
    terms - сроки задачи
    priority - приоритет задачи (1 - низкий, 7 - срочная задача)
    checklist - массив пунктов чеклиста задачи
    attaches - список прикрепленных CRM сущностей в виде сущность#id (stock - объекты, customer - клиенты, request - заявки, sale - сделки), соединенных через запятую
    Ответ: {
      // id задачи
      id: 2639
    }
    Возможные ошибки:
    no text content - не заданы заголовок и описание задачи (поля title, description)
    no director - не задан постановщик задачи (поле director)
    no performer - не задан исполнитель задачи (поле performer)
    invalid priority - значение приоритета вне диапазона [1, 7]
    unknown entity type - неизвестный тип CRM сущности в параметре attaches, допустимые значения: stock, customer, request, sale
    invalid entity id - некорректное значение id прикрепленной CRM сущности в параметре attaches
    Редактирование задачи
    URL: http://domainname.intrumnet.com:81/sharedapi/tasks/edit
    Параметры:
    id - id задачи, обязательный параметр
    title - заголовок задачи
    description - описание задачи
    status - статус задачи:
    new - новая,
    open - просмотрена,
    performed - в работе,
    checking - на проверке,
    verified - проверена,
    correction - на доработке,
    frozen - заморожена
    terms - сроки задачи
    priority - приоритет задачи (1 - низкий, 7 - срочная задача)
    director - id сотрудника - постановщика задачи
    performer - id сотрудника - исполнителя задачи
    coperformer - список id сотрудников - соисполнителей задачи, соединенных через запятую
    Ответ: {
      // ответ пустой
    }
    Возможные ошибки:
    no task id - не передан id задачи
    no task - задача по данному id не существует
    unknown field - передан неизвестный параметр
    invalid priority - значение приоритета вне диапазона [1, 7]
    no director - не задан постановщик задачи (поле director)
    no performer - не задан исполнитель задачи (поле performer)
    no text content - не заданы заголовок и описание задачи, требуется задать параметр title или description
    Удаление задачи
    URL: http://domainname.intrumnet.com:81/sharedapi/tasks/delete
    Параметры:
    id - id задачи, обязательный параметр
    Ответ: {
      // ответ пустой
    }
    Возможные ошибки:
    no task id - не передан id задачи
    no task - задача по данному id не существует
    API для работы с приложениями
    Задать список сотрудников, имеющих доступ к функционалу приложения
    URL: https://domainname.intrumnet.com/sharedapi/app_riskscommon/setUsers
    Параметры:
    users - список id пользователей (разделённых запятыми), которым разрешён доступ к функционалу приложения. Старый список будет заменён новым.
    Ответ: {
      status: "success"
    }
    Для включения сервиса Webhook должен быть активирован функционал бизнес процессов
    Далее после настройки адреса url и выбора событий, на которые осуществяется подписка, на url будет отправляться post запрос c параметрами произошедшего в системе события в режиме реального времени.
    Метод в библиотеке
    webhookPut

    Тело пост запроса, содержит массив данных, в формате json. Общий вид массива

    {
      "subject_type" : "employee",
      "subject_type_id" : "2",
      "event" : "create",
      "object_typ" : "customer",
      "object_sub_type" : "0",
      "object_sub_id" : "10443",
      "snapshot" : {
        "merge" : []
      }
    }
    Пример скрипта, обрабатывающего webhook, в php примерах (папке example/webhook, файл changeSaleStage.php)
    subject_type - Субьект, инициировавший событие
    subject_type_id - ID Субьекта, инициировавшего событие
    event - Тип события
    object_typ - Объект события
    object_sub_type - Подтип объекта события
    object_sub_id - ID объекта события
    snapshot - Массив актуальных свойств объекта
       merge - Массив изменений в свойствах объекта
    При измении свойств объекта, в этом массиве передаются прежние значения свойств. Формат массива {
      "name" : {
        "type" : "edit",
        "value" : "Иван",
      },
      1207 : {
        "type" : "edit",
        "value" : "100000",
      }
    }
    Ключ массива - изменяемое поле. Если ключ - строка - это основное поле объекта, если ключ цифра - это дополнительное поле объекта.
    • business - Бизнес Процесс
    • system - Система
    • employee - Пользователь
    • login - Вход в систему
    • view - Просмотр
    • create - Создание
    • edit - Редактирование
    • delete - Удаление
    • export - Экспорт данных
    • import - Импорт данных
    • status - Смена статуса / стадии
    • stage - Смена статуса / стадии
    • comment - Новый комментарий
    • manager - Смена ответственного
    • answer - Ответ на вопрос-напоминание
    • messenger - Новое сообщение
    • queue - Выборка
    • other - Другое
    • customer - Контакты
    • request - Заявки (Активности)
    • stock - Объекты
    • sale - Сделки
    • task - Задачи
    • messenger - Сообщения (индивидуальные, групповые)
    • remind - Напоминания
    • email - Email
    • emailsystem - Email
    • call - Звонок
    • sms - Смс
    • delivery - Рассылка
    • comment - Комментарий
    • blank - Документ
    • app - Приложение
    Массив snapshot содержит {
      //id объекта
      "id" : "10443",
      //id автора
      "author" : "2",
      //id CRM группы
      "group_id" : "0",
      //имя
      "name" : "Иван",
      //фамилия
      "surname" : "Иванов",
      //отчество
      "secondname" : "",
      //менеджер
      "manager_id" : "2",
          //список email адресов
          email: [
            {
              mail: "customer@mail.ru",
              comment: ""
            }
          ],
          //список телефонов
          phone: [
            {
              phone: "89650054332",
              comment: "Первый"
            },
            {
              phone: "54234532253",
              comment: "Второй"
            }
          ],
      //дата создания
      "create_date" : "2017-04-06 11:27:36",
      //комментарий
      "comment" : "",
      //активен
      "publish" : "1",
      //тип контакта
      "marktype" : "0",
      //физлицо / юрлицо
      "nattype" : "physface",
      //допполя
      "extproperty" : [
        1246 : {
          "id" : "1246",
          "type" : "text",
          "value" : ""
        }
      ]
    }
    Массив snapshot содержит {
      //id заявки
      "request_id" : "455",
      //дата заявки
      "request_date" : "2017-03-27 16:56:33",
      //комментарий
      "request_comment" : "",
      //id ответственного
      "manager" : "2",
      //контакт
      "customer" : "10431",
      //email
      "email" : [
        {
          "mail" : "test@mail.ru",
          "comment" : ""
        }
      ]
      //статус заявки
      "status" : "unselected",
      //тип заявки
      "request_type" : "8",
      //активна (не удалена)
      "publish" : "1",
      //автор
      "employee_creator_id" : "2",
      //список дополнительных ответственных
      "shared_managers" : []
      //допполя
      "extproperty" : [
        1246 : {
          "id" : "1246",
          "type" : "text",
          "value" : ""
        }
      ]
    }
    Массив snapshot содержит {
      //id объекта
      "id" : "536927",
      //id CRM группы
      "group_id" : "0",
      //id раздела объектов
      "parent" : "19",
      //название раздела объектов
      "parentname" : "Продажа",
      //название
      "name" : "commercial продажа м-н Парковый улица, 28",
      //кол-во
      "count" : "1",
      //дата создания
      "date_add" : "2017-04-05 16:00:29",
      //активен
      "publish" : "1",
      //является копией / относится к группе объектов
      "copy" : "0",
      //тип объекта
      "type" : "2",
      //название типа объектов
      "typename" : "Коммерческая недвижимость",
      //тип последнего события с объектом
      "stock_activity_type" : "edit",
      //дата последнего события с объектом
      "stock_activity_date" : "2017-04-05 16:19:54",
      //объект связан с контактом
      "related_with_customer" : "",
      //автор
      "stock_creator_id" : "0   //список дополнительных ответственных
      "shared_managers" : []
      //допполя
      "extproperty" : [
        1246 : {
          "id" : "1246",
          "type" : "text",
          "value" : ""
        }
      ]
    }
    Массив snapshot содержит {
      //id сделки
      "id" : "160",
      //id контакта
      "customers_id" : "10444",
      //id сотрудника
      "employee_id" : "2",
      //Дата сделки
      "date_create" : "2017-04-06 15:24:57",
      //
      "sales_type_id" : "4",
      //
      "sales_type_name" : "Подбор для покупки и сопровождение сделки",
      //статус следки
      "sales_status_id" : "14",
      //название статуса сделки
      "sales_status_name" : "Первоначальная договоренность",
      //комментарий
      "comment" : "",
      //стоимость
      "price" : "",
      //активана/удалена
      "publish" : "1",
      //Имя контакта
      "customer_name" : "Розничные продажи",
      //Фамилия контакта
      "customer_surname" : "",
      //Отчество контакта
      "customer_secondname" : "",
      //email контакта
      "customer_email" : "",
      //Тип последнего собятия с сделкой
      "sale_activity_type" : "create",
      //Дата последнего события с сделкой
      "sale_activity_date" : "0000-00-00 00:00:00",
      //Автор сделки
      "sale_creator_id" : "2"
      //список дополнительных ответственных
      "shared_managers" : []
      //допполя
      "extproperty" : [
        1246 : {
          "id" : "1246",
          "type" : "text",
          "value" : ""
        }
      ]
    }
    Массив snapshot содержит {
      //id письма контакту
      "id" : "17",
      //id рассылки
      "delivery_id" : "10",
      //id группы подписчиков
      "group_id" : "1",
      //id smtp аккаунта
      "smtp_id" : "1",
      //контакта
      "customer_id" : "0",
      //email получателя
      "email" : "test@test.ru",
      //индификатор получателя
      "url" : "54f12091099d5c5c4cd9b055504df2c9",
      //статсус письма
      "status" : "open",
      //дата последнего изменения
      "date_change" : "2017-04-06 15:57:12",
      //лог изменений
      "log" : {,
        //статус
        "res" : "1",
        "stat" : "1",
        //описание ошибки
        "error" : "",
        //дата
        "date_send" : "2017-04-06 03:51:52",
        //Список дат открытия письма
        "check" : [
          "2017-04-06 16:01:34"
        ]",
      ]
      //id письма контакту
      "letter_id" : "17
    }
    Массив snapshot содержит {
      "id" : "33902",
      "date_time" : "2017-04-06 12:42:20",
      "intrum_user" : "79",
      "parent_type" : "direct_call",
      "parent_id" : "79",
      "call_to_type" : "crm_client",
      "call_to_id" : "60046",
      "call_id" : "4837780ff331a99d3ff76e5f7abd55cd",
      "scenario_id" : "0",
      "call_duration" : "0",
      "call_cost" : "0.00000",
      "trunk_id" : "7",
      "caller_id" : "74952255024",
      "from_number" : "108",
      "to_number" : "79379840000",
      "vox_login" : "login",
      "url" : "http://test",
      "path" : "",
      "is_downloaded" : "0",
      "answered" : "-1",
      "voicemessage" : "0",
      "fax" : "0",
      "fax_status" : "0",
      "custom_status" : "0",
      "payload" : "",
      "api_incoming" : "0",
      "is_cached" : "0",
      "record_download" : "",
      "record_play" : ""
    }
    Массив snapshot создания и просмотра содержит {
      "id" : "2536",
      "type" : "standard",
      "autor_id" : "2",
      "autor_type" : "employee",
      "created_at" : "2017-04-07 09:53:00",
      "edited_at" : "2017-04-07 10:11:17",
      "terms" : "2017-04-30 00:00:00",
      "title" : "Заголовок задачи",
      "description" : "Обзвони клиентов и поздравь их.",
      "status" : "new",
      "priority" : "2",
      "sms" : "0",
      "room" : "",
      "external" : "0",
      "last_change" : "edit",
      "changer_id" : "2",
      "changer_type" : "employee",
      "change_date" : "2017-04-07 10:11:17",
      "desciption_rev" : "3",
      "parent_task_id" : "0",
      "terms_pset" : "0",
      "files" : [
        {
          "id" : "8790",
          "type" : "task",
          "title" : "Текст поздравления.txt"
        }
      ],
      "users" : [
        {
        "id" : "2",
        "type" : "director",
        "name" : "admin",
        "surname" : "admin",
        "secondname" : "admin"
        },
        {
        "id" : "6",
        "type" : "accomplice",
        "name" : "Вася",
        "surname" : "Уткин",
        "secondname" : "",
        },
        {
        "id" : "8",
        "type" : "performer",
        "name" : "Валд",
        "surname" : "Валдим",
        "secondname" : "",
        }
      ],
      "history" : [
        {
        "task_id" : "2536",
        "change_type" : "edit",
        "change_arg0" : "3",
        "status_from" : "new",
        "status_to" : "new",
        "date" : "2017-04-07 10:11:17",
        "prev_terms" : "0000-00-00 00:00:00",
        "changer_id" : "2",
        "changer_type" : "employee"
        }
      "],
      "tags" : {
        "existTags" : []
        "taskTags" : []
      }
    }
    Массив snapshot изменеия статуса содержит {
      "action" : "change_status",
      "data" : {
        "task_id" : "2536",
        "changer_type" : "employee",
        "changer_id" : "2",
        "status_from" : "new",
        "status_to" : "frozen"
      }
    }
    Массив snapshot создания и просмотра содержит {
      // id бланка
      "blank" : "74",
      // заголовок
      "title" : "",
      "filledtype" : "shared",
      // допполя документа
      "extfields" : [
        {
        "ext" : "1195",
        "data" : "text",
        "value" : "Пр.Мира 123",
        }
      // текст документа
      "fish" : "Заполнил док",
      "object_type" : "customer",
      "object_id" : "0",
      // индетификатор бланка
      "hash" : "493b333b7d21f1ba344c3508bfa0edc9",
      // id документа
      "id" : "115"
    }