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 - неверные параметры запроса

Внимание!

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

Внимание!

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

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

Для корректной обработки рекомендуем использовать кодировку UTF-8 для всех параметров запроса.
Для более быстрого старта работы с 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 Гео координата 55.753366 37.620908
integer_range Диапазон целых от - до
decimal_range Диапазон вещественных от - до
date_range Диапазон даты от - до
time_range Диапазон времени от - до
datetime_range Диапазон дата+время от - до

Внимание !

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

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

    Загрузка вариантов выбора привязанных к конкретному значению (для зависимых полей)
  • При использовании библиотеки - метод: getBindedSelectVariants
  • URL: http://domainname.intrumnet.com:81/sharedapi/utils/binded
    Параметры:
    bind - id варианта выбора
    Что такое статьи и внутренний корпоративный портал (интранет) можно ознакомиться WIKI справочнике CRM INTRUM
    Получение списка статей. Статьи могут быть вложены друг в друга.
  • Пример скрипта на PHP
  • При использовании библиотеки - метод: getArticlesList
  • 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 - отметка о наличии вложенных статей
    Получение отдельной статьи
  • При использовании библиотеки - метод: getArticleContent
  • 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
  • При использовании библиотеки - метод: getStockTypes
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/types
    Параметры: нет
    Ответ: [
      {
        id: "1",
        name: "Жилая недвижимость",
        groups: ["149","150"]
      },
      {
        id: "2",
        name: "Загородная недвижимость",
        groups: ["150"]
      }
    ]
    • id - id типа объекта
    • name - название
    • groups - список групп менеджеров имеющих доступ
    Запрос доступных категорий объектов
  • При использовании библиотеки - метод: getStockCategory
  • 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
  • При использовании библиотеки - метод: getStockFields
  • 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
  • При использовании библиотеки - метод: getStockByFilter
  • Примеры скриптов с использованием библиотеки: фильтр по полям, фильтр по дате создания, выборка всех объектов
  • 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 менеджера
    groups - массив групп менеджеров
    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 - {from: "2015-10-29 09:45:23", to: "2015-11-19 13:05:12"} выборка за определенный период
    date_field - если в качестве значения указать stock_activity_date выборка по параметру активности
    page - номер страницы выборки (например, 2 страница с limit 500 на каждой)
    publish - 1 - активные, 0 - удаленные, ignore - вывод всех, по умолчанию 1
    limit - число записей в выборке, по умолчанию 20, макс. 500
    group_id - ID группы для группированных объектов
    object_groups - число записей в выборке, по умолчанию 20, макс. 500
    count_total - подсчет общего количества найденых записей, 1 - считать, 0 - нет (по умолчанию 0)
    Ответ: {
      list: [
        {
          //id объекта
          id: "106015",
          //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)
    Получение списка групп объектов
  • При использовании библиотеки - метод: getStockGroups
  • Примеры скриптов с использованием библиотеки: фильтр по полям, фильтр по дате создания, выборка всех объектов
  • 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
  • При использовании библиотеки - метод: insertStock
  • Примеры скриптов с использованием библиотеки: добавление нового объекта
  • 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: 'имя загруженого файла на сервере'
          }
        ]
      },
      {
        //аналогично предыдущему элементу
      }
    ]
    Пример загрузки файлов в разделе Утилиты / Загрузка файлов
    Ответ: //ответ содержит массив добавленных объектов
    [19321,19322,...]
    Редактирование CRM объектов (для выполнении данной операции должен быть разрешен доступ на редактирование)
  • Пример скрипта на PHP
  • При использовании библиотеки - метод: updateStock
  • Примеры скриптов с использованием библиотеки: редактирование одного объекта, редактирование списка объектов с сверкой/обновлением фотографий
  • 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: 'Значение свойства'
            mode: 'Для типа файл, указывается значение insert для добавления, delete для удаления'
          },
        ]
      },
      {
        //аналогично предыдущему элементу
      }
    ]
    Групповое редактирование CRM объектов. Редактирование групп полей, выбранной по фильтру (для выполнении данной операции должен быть разрешен доступ на редактирование)
  • Пример скрипта на PHP
  • При использовании библиотеки - метод: updateStockByFilter
  • Примеры скриптов с использованием библиотеки: редактироание группы объектов по фильтру
  • 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
  • При использовании библиотеки - метод: addStockComment
  • Примеры скриптов с использованием библиотеки: добавление комментария
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/addComment
    Параметры: [
      {
        entity_id : 'ID существующего объекта',
        text : 'Строка комментария',
        author : 'ID автора'
      }
    ]
    Удаление CRM объектов (для выполнении данной операции должен быть разрешен доступ на удаление)
  • Пример скрипта на PHP
  • При использовании библиотеки - метод: deleteStock
  • Примеры скриптов с использованием библиотеки: удаление объекта
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/delete
    Параметры: // для удаления объектов необходимо послать массив их ID [10234,10432,10342,...]
    Получение прикреплений объекта
  • Пример скрипта на PHP
  • При использовании библиотеки - метод: getStockAttach
  • URL: http://domainname.intrumnet.com:81/sharedapi/stock/attach
    Параметры: {
      id: [67107,67108,67109]
    }
    Ответ: {
      "67107": {
        "sales": ["3996","5849","6220","6487"]
      }
    }
    Получение перечня дополнительных полей для сотрудника
  • При использовании библиотеки - метод: getBindedSelectVariants
  • URL: http://domainname.intrumnet.com:81/sharedapi/worker/fields
    Параметры: нет
    Ответ: [
      {
        id: "6",
        name: "Результаты аттестаций",
        datatype: "text"
      },
      {
        id: "7",
        name: "История перемещений",
        datatype: "text"
      },
      {
        ;id: "8",
        name: "Предыдущее место работы",
        datatype: "text"
      }
    ]
    Аналогично полям в объектах
    Получение списка отделов
  • При использовании библиотеки - метод: getDepartment
  • 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 - порядок сортировки
    Получение списка филиалов
  • При использовании библиотеки - метод: getFiliation
  • 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
  • При использовании библиотеки - метод: filterEmployee
  • Примеры скриптов с использованием библиотеки: все сотрудники, сотрудники отделов, сотрудники CRM группы
  • URL: http://domainname.intrumnet.com:81/sharedapi/worker/filter
    Параметры:
    group - id группы менеджеров
    id - массив id сотрудников
    division_id - массив id отделов
    suboffice_id - массив id филиалов
    surname - фамилия
    name - имя
    email - email
    phone - телефон
    fields - массив условий для дополнительных свойств (аналогично объектам)
    Ответ: {
      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: "0000-00-00 00: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 филиала
    post - должность
    boss - отметка "начальник отдела"
    name - имя
    surname - фамилия
    secondname - отчество
    internalemail,externalemail - внутренняя, внешняя почта
    internalphone,externalphone,mobilephone - внутренний, внешний, мобильный телефон
    birthday - дата рождения
    address - адрес
    about - описание
    hobby - хобби
    created_at - дата регистрации
    gender - пол male, female
    fields - дополнительные поля (аналогично объектам)
    asterisk_short_number - Короткие номера Asterisk
    Получение списка доступных групп менеджеров
  • При использовании библиотеки - метод: getAvailGroups
  • URL: http://domainname.intrumnet.com:81/sharedapi/managergroup
    Параметры: нет
    Ответ: [
      {
        id: "149",
        name: "Автосалон №1"
      },
      {
        id: "150",
        name: "Автосалон №2"
      }
    ]
    id - id группы менеджеров
    name - название группы
    Получение дополнительных полей контакта
  • Пример скрипта на PHP сходный с объектами
  • При использовании библиотеки - метод: getCustomerFields
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/fields
    Параметры: нет
    Ответ: (см. получение полей объектов)
    Поиск в контактах
  • Пример скрипта на PHP
  • При использовании библиотеки - методы:filterCustomers , getListCustomers
  • Примеры скриптов с использованием библиотеки: выборка всех контактов с файлами, выборка контактов за диапазон дат, выборка контактов по фильтру
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/filter
    Параметры:
    groups - массив id групп менеджеров
    manager - id менеджера
    customer_creator_id - id создателя
    byid - id контакта
    marktype - массив id типов
    nattype - одно из значений подтипа physface - Юрлицо, jurface - Физлицо, по умолчанию выводятся все
    search - поисковая строка (может содержать фамилию или имя, email, телефон)
    fields - массив условий для дополнительных свойств (аналогично объектам)
    index_fields - индексировать массив полей по id свойства, 1 - да, 0 - нет, (по умолчанию 0)
    order - направление сортировки asc - по возрастанию, desc - по убыванию
    order_field - если в качестве значения указать customer_activity_date выборка будет сортироваться по дате активности
    date - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период
    date_field - если в качестве значения указать customer_activity_date выборка по параметру активности
    page - номер страницы выборки
    publish - 1 - активные, 0 - удаленные, по умолчанию 1
    limit - число записей в выборке (макс. 500)
    count_total - подсчет общего количества найденых записей, 1 - считать, 0 - нет (по умолчанию 0)
    Ответ: {
      list: [
        {
          //id контакта
          id: "10607",
          //id группы менеджеров
          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
  • При использовании библиотеки - метод: insertCustomers
  • Примеры скриптов с использованием библиотеки: добавление, добавление только уникальных из списка, добавление уникальных, обновление добавленных используя ключ синхронизации
  • 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)'], ...]

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

    Редактирование карточки контакта аналогично редактированию объектов
  • Пример скрипта на PHP
  • При использовании библиотеки - метод: updateCustomers
  • Примеры скриптов с использованием библиотеки: редактирование контактов, массовое обновление только изменившихся полей списка контактов
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/update
    Добавление комментариев к контактам (для выполнении данной операции должен быть разрешен доступ на редактирование)
  • Пример скрипта на PHP сходный с объектами
  • При использовании библиотеки - метод: addCustomersComment
  • Примеры скриптов с использованием библиотеки: добавление комментария
  • URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/addComment
    Параметры: [
      {
        entity_id : 'ID существующего контакта',
        text : 'Строка комментария',
        author : 'ID автора'
      }
    ]
    Аналогично удалению объектов      (PHP библиотека метод: deleteCustomers)
    URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/delete
    Получение прикрепленных к контакту сущностей
  • Пример скрипта на PHP сходный с объектами
  • При использовании библиотеки - метод: getCustomerAttaches
  • 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"]
      }
    }
    Получение списка типов активностей
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/types
    PHP библиотека метод: getRequestTypes
    Параметры: нет
    Ответ: [
      {
        id: "1",
        name: "Заявка на аренду",
        service: "0",
        groups: ["149"]
      },
      {
        id: "2",
        name: "Заявка на подбор",
        service: "0",
        groups: ["149","150","151"]
      }
    ]
    id - id активности
    name - имя
    service - пометка "сервисный"
    groups - список групп имеющих доступ к данному типу
    Получение списка полей активности
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/fields
    PHP библиотека метод: getRequestFields
    Параметры: нет
    Ответ: (См. получение полей объектов)
    Поиск в активности
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/filter
    PHP библиотека метод: filterRequests
    Примеры скриптов на Github Выборка активностей, изменивших статус за период времени
    Параметры:
    search - поисковая строка (может содержать фамилию контакта или слова из комментария или названия активности)
    groups - массив групп менеджеров
    manager - id менеджера
    request_creator_id - id создателя
    byid - id активности
    by_ids - массив ids активностей
    customer - id контакта
    fields - массив условий для дополнительных свойств (аналогично объектам)
    types - массив id типов
    order - направление сортировки asc - по возрастанию, desc - по убыванию
    order_field - если в качестве значения указать request_activity_date выборка будет сортироваться по дате активности
    date - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период
    date_field - если в качестве значения указать request_activity_date выборка по параметру активности
    statuses - массив id статусов
        unselected - Не выбран
        mustbeprocessed - Требует обработки
        processnow - Требует срочной обработки
        processed - Обработан
        postponed - Отложен
        malformed - Неверен
        cancelled - Отменен
        reprocess - Требует доработки
    page - номер страницы выборки
    publish - 1 - активные, 0 - удаленные, по умолчанию 1
    limit - число записей в выборке (макс. 50)
    count_total - подсчет общего количества найденых записей, 1 - считать, 0 - нет (по умолчанию 0)
    Ответ: {
      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",
          //комментарий
          comment: "На обработку",
          //название активности
          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 библиотека метод: insertRequests)
    Доступные поля
    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 типа активности (обязательное поле)

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

    Добавление в базу CRM контакта и активности к нему (для выполнения данной операции требуется разрешение на добавление контактов и активностей)
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/addCustomer
    PHP библиотека метод: addRequestAndCustomer
    Примеры скриптов на Github добавление контакта с активностью
    Параметры: {
      "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 заявки
    {
      "customer" : 98576,
      "request" : 18641
    }
    Аналогично редактированию объектов      (PHP библиотека метод: updateRequests)
    Примеры скриптов на Github
    Добавление комментариев к активности (для выполнении данной операции должен быть разрешен доступ на редактирование)
    URL: http://domainname.intrumnet.com:81/sharedapi/applications/addComment
    PHP библиотека метод: addRequestComment
    Примеры скриптов на Github Добавление комментария
    Параметры: [
      {
        entity_id : 'ID существующего объекта',
        text : 'Строка комментария',
        author : 'ID автора'
      }
    ]
    Аналогично удалению объектов       (PHP библиотека метод: deleteRequests)
    Получение списка типов сделок
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/types
    PHP библиотека метод: getSaleTypes
    Параметры: нет
    Ответ: [
      {
        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
    PHP библиотека метод: getSaleFields
    Параметры: нет
    Ответ: {
      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
    PHP библиотека метод: filterSales
    Параметры:
    search - поисковая строка
    type - массив id типов сделок
    stage - массив id стадий сделок
    customer - id контакта
    manager - id ответственного менеджера
    fields - массив условий для дополнительных свойств (аналогично объектам)
    sale_creator_id - id создателя
    page - номер страницы выборки
    publish - 1 - активные, 0 - удаленные, по умолчанию 1
    limit - число записей в выборке (макс. 50)
    byid - получение сделки по ее id
    by_ids - получение сделок по массиву id [1, 2, 3, ...]
    order - направление сортировки asc - по возрастанию, desc - по убыванию
    order_field - если в качестве значения указать sale_activity_date выборка будет сортироваться по дате активности
    date - {from: "2015-10-29", to: "2015-11-19"} выборка за определенный период
    date_field - если в качестве значения указать sale_activity_date выборка по параметру активности
    count_total - подсчет общего количества найденых записей, 1 - считать, 0 - нет (по умолчанию 0)
    Ответ: {
      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 стадии
          sales_status_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
    PHP библиотека метод: getSalesChangeStage
    Примеры скриптов на Github Получение сделок, стадия которых поменялась в период от %Y-%m-%d - до %Y-%m-%d
    Параметры:
    date_start - Начало периода, в формате %Y-%m-%d
    date_end - Конец периода в формате %Y-%m-%d
    Получение дополнительных данных о связях с другими сущностями
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/details
    PHP библиотека метод: getSaleDetails
    Параметры:
    ids - массив id сделок
    Ответ: {
      //id сделки
      468: {
        //список id сопокупателей
        cocustomers: [],
        //список id связанных активностей
        corequests: [],
        //список id связанных объектов
        costock: [],
        //список id объектов
        costockprimary: [],
        //список id связанных сделок
        cosales: [],
        //список id счетов
        bills: [],
        //список id бланков
        blanks: []
      }
    }
    Аналогично добавлению объектов      (PHP библиотека метод: insertSales)
    Доступные поля
    customers_id - id контакта
    employee_id - id ответственного менеджера
    additional_employee_id - массив id дополнительных менеджеров
    sales_type_id - id типа сделки
    sales_status_id - id стадии сделки
    sale_name - название сделки
    fields - массив данных полей
    Примеры скриптов на Github
    Добавление в базу CRM контакта и сделки к нему (для выполнения данной операции требуется разрешение на добавление климентов и сделок)
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/addCustomer
    PHP библиотека метод: addSaleAndCustomer
    Примеры скриптов на Github добавление контакта со сделкой
    Параметры: {
      "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
    }
    Аналогично редактированию объектов       (PHP библиотека метод: updateSales)

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

    Примеры скриптов на Github
    Добавление комментариев к сделкам (для выполнении данной операции должен быть разрешен доступ на редактирование)
    URL: http://domainname.intrumnet.com:81/sharedapi/sales/addComment
    PHP библиотека метод: addStockComment
    Примеры скриптов на Github Добавление комментария
    Параметры: [
      {
        entity_id : 'ID существующего объекта',
        text : 'Строка комментария',
        author : 'ID автора'
      }
    ]
    Аналогично удалению объектов       (PHP библиотека метод: deleteSales)
    Запрос -постраничная выборка счетов с использованием фильтра и поиска
    URL: http://domainname.intrumnet.com:81/sharedapi/accounts/get
    PHP библиотека метод: billsGet
    Примеры скриптов на Github Выборка счётов, с оплатой за период
    Параметры:
    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 - Номер страницы выборки
    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
    PHP библиотека метод: billsGetFull
    Параметры:
    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
    Примеры скриптов на Github Добавление счёта
    Параметры:
    [
      {
        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
    PHP библиотека метод: billsUpdate
    Параметры:
    [
      {
        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
    PHP библиотека метод: billsEdit
    Параметры:
    {
      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
    PHP библиотека метод: billsSetPay
    Примеры скриптов на Github Оплата счёта
    Параметры:
    {
      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
    PHP библиотека метод: actsGet
    Параметры:
    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
    PHP библиотека метод: actsAdd
    Параметры:
    [
      {
        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
    PHP библиотека метод: actsUpdate
    Параметры:
    [
      {
        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
    PHP библиотека метод: actsEdit
    Параметры:
    {
      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
    PHP библиотека метод: ActsSetPay
    Параметры:
    {
      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
    PHP библиотека метод: checksGet
    Параметры:
    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
    PHP библиотека метод: checksAdd
    Параметры:
    [
        {
            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
    PHP библиотека метод: checksUpdate
    Параметры: Параметры те же что при добавлении выписки, плюс id выписки
    Ответ: Аналогичен ответу, при добавлении выписки
    API для загрузки файловых данных
    Пример скрипта на PHP
    URL: http://domainname.intrumnet.com:81/sharedapi/utils/upload
    PHP библиотека метод: uploadFile
    Параметры:
    object - один из возможных вариантов: stock (объекты, продукты), applications (заявки), purchaser (контакты), sale (продажи)
    upload - имя поля загружаемого файла, поддерживает множественную загрузку
    Ответ: {
      name: "54cf4e91db8ba.jpg"// имя загруженного файла или массив значений при множественной загрузке
    }
    Чтобы запросить коментарии используйте следующий запрос
    URL: http://domainname.intrumnet.com:81/sharedapi/[тип_объекта]/comments
    Тип объекта должен быть одним из значений: stock, applications, purchaser, sales
    PHP библиотека метод: getComments, например getStockComments
    Параметры:
    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
    sender = имя_отправителя
    destination = номер_назначения
    message = текст_смс
    Ответ В случае успешной постановки смс в очередь на отправку в ответе должны содержаться поля: {
      "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
    PHP библиотека метод: callsGetTrunks
    Параметры Без параметров
    Ответ Перечисление всех соединений в системе: {
      "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
    PHP библиотека метод: getCallsPhones
    Параметры Без параметров
    Ответ Перечисление всех номеров для входящих и исходящих вызовов в системе: {
      "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
    PHP библиотека метод: callsGetList
    Примеры скриптов на Github Звонки за период
    Параметры fromPhone   Фильтр по номеру с которого звонили
    toPhone   Фильтр по номеру на который звонили
    dateFrom   Искать звонки после даты
    dateTo   Искать звонки до даты
    type   Тип звонков: in, out
    limit   Ограничить ответ количеством записей (макс. 1000)
    page   Совместно с ограничением, определяет страницу выдачи
    orderField   Сортировать по полю (по-умолчанию поле даты)
    orderType   Направление сортировки: ASC, DESC (по-умолчанию DESC)

    Ответ Список звонков из истории, по указанным фильтрам: {
      "status":"success",
      "data":[{
          "id":"27402",
          "date_time":"2016-07-21 12:11:47",
          "user_id":"52",
          "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..."
        },
          ...
        }]
    }
    В случае ошибки: {
      "status":"fail",
    }
    Записи разговора могут быть в моно и стерео форматах. В зависимости от настроек, любая из них или обе сразу могут отсутствовать, в этом случае вместо ссылки в соответствующем поле будет передана пустая строка.
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/import
    PHP библиотека метод: callsAdd
    Примеры скриптов на Github Добавление нового звонка
    Параметры
    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 назначенного звонку статуса, список доступных статусов
    Ответ в случае успеха операции, вовзращается ID добавленного звонка, в CRM звонок появится через екоторое время: {
      "result": "1",
      "callId": "fd701d48bffba9713c38cf4631577ee5"
    }
    В случае ошибки: {
      "status":"fail",
    }
    URL: http://domainname.intrumnet.com:81/sharedapi/calls/importall
    PHP библиотека метод: callsAddList
    Примеры скриптов на Github Импорт истории звоноков
    Параметры
    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
    PHP библиотека метод: callsUpdate
    Примеры скриптов на Github Редактирование звонка
    Параметры
    uniqueId Уникальный идентификатор звонка. 32-х символьная строка
    timestamp Время совершения звонка. Unix Timestamp * 1000
    url url записи звонка. Звонок будет скачан и сохранён в CRM системе через некоторое время
    callDuration Длительность звонка в секундах
    isAnswered Был ли ответ на звонок
    customStatus ID назначенного звонку статуса, список доступных статусов
    Ответ в случае успеха операции, вовзращается ID добавленного звонка, в CRM звонок появится через некоторое время: {
      "result": "1",
      "callId": "fd701d48bffba9713c38cf4631577ee5"
    }
    В настройках телефонии можно создать виртуальное соединение, назначить ему исходящий номер, и закрепить этот номер за сотрудниками. При звонке сотрудника через данное виртуальное соединение, CRM-система отправит запрос call на указанный url.
    Параметры action = call
    phone_to   На какой номер позвонить
    phone_from   Какой номер использовать для звонка
    user_id   ID пользователя в CRM системе
    key   Ключ, указанный при создании соединения

    Ответ Ответ сервера в 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 - (строка) Уникальный идентефикатор события. Например для регулярных событий
    Ответ
    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 для dtstart" ,
          "dtendoffset"     : "целое - смещение в секундах от UTC для dtend" ,
          "allday"          : "1 - Событие на весь день, 2 - событие на указанный интервал" ,
          "is_reg"          : "1 - Повторяющееся событие, 0 - одиночное событие" ,
          "bg-color"        : "hex - цвет фона события" ,
          "b-color"         : "hex - цвет рамки события" ,
          "t-color"         : "hex - цвет текста события" ,
          "alarms"        : "json string - Уведомления события" ,
        }
      ]
    }
    Список пропущенных уведомлений по событиям
    [подтип] 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 для dtstart" , "dtendoffset" : "целое - смещение в секундах от UTC для dtend" , "allday" : "1 - Событие на весь день, 2 - событие на указанный интервал" , "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 для dtstart
    dtendoffset - (целое) - смещение в секундах от UTC для dtend (если не указан то используется dtoffset)
    author_id - (целое) - автор (id сотрудника)
    allday - 1 - Событие на весь день, 2 - событие на указанный интервал
    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 - номер страницы выборки
    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 - номер страницы выборки
    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
    }
    Для включения сервиса Webhook должен быть активирован функционал бизнес процессов
    Далее после настройки адреса url и выбора событий, на которые осуществяется подписка, на url будет отправляться post запрос c параметрами произошедшего в системе события в режиме реального времени.
    Метод в библиотеке
    webhookPut
    Примеры скриптов на Github

    Тело пост запроса, содержит массив данных, в формате 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 группы менеджеров
      "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 группы менеджеров
      "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"
    }