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

Внимание!

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

Внимание!

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

Так же можете установить боблиотеку через composer , имя пакета intrum/api

Формат данных
radio Выбор Да(1) Нет(0)
select Выбор одного
multiselect Выбор нескольких
date Дата 2014-03-14
datetime Дата 2014-03-14 21:34:05
time Время 21:34:05
integer Целое
decimal Вещественное
text Текст
price Цена
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) по умолчанию не отдаются, их нужно загружать отдельно т.к. количество вариантов может достигать наскольких тысяч.

Загрузка вариантов выбора
URL: http://domainname.intrumnet.com:81/sharedapi/utils/variants
PHP библиотека метод: getSelectVariants
params:
property_id - id поля выбора
Загрузка вариантов выбора привязанных к конкретному значению
URL: http://domainname.intrumnet.com:81/sharedapi/utils/binded
PHP библиотека метод: getBindedSelectVariants
params:
bind - id варианта выбора
Получение списка статей, статьи могут быть вложены друг в друга и являться разделом
URL: http://domainname.intrumnet.com:81/sharedapi/publication/list
PHP библиотека метод: getArticlesList
params:
parent_id - id родителя (обязательное поле, корень = 0)
Ответ: {
  1: {
    id: "1",
    description: "",
    news: "1",
    date_news: "2011-06-01 00:00:00",
    title: "Новости",
    publ: "1",
    childs: true
  },
  2: {
    id: "2",
    description: "",
    news: "0",
    date_news: "2011-06-01 00:00:00",
    title: "Продукт",
    publ: "1",
    childs: true
  }
}
  • id - id статьи
  • description - короткое описание
  • news - отметка, является ли разделом новостей
  • title - заголовок
  • publ - отметка о публикации
  • childs - отметка о наличии вложенных статей
Получение отдельной статьи
URL: http://domainname.intrumnet.com:81/sharedapi/publication/single
PHP библиотека метод: getArticleContent
params:
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
справочник примеры интеграции форм
params:
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
справочник примеры интеграции форм
params:
action - значение fillform
formtype - ID типа формы
host - если используются AJAX необходимо указать имя сайта с котрого происходит запрос в формате sitename.com
data - данные полей
{
  //Основные поля контакта
  def_customer: {
    //Фамилия
    surname: '',
    //Имя
    name: '',
    //Отчество
    secondname: '',
    //Email
    email: '',
    //Телефон
    phone: ''
  },
  //Дополнительные поля контакта
  ext_customer: {
    //ID дополнительного поля
    '24':{
      //Значение
      value: ''
    }
  },
  ext_request: {
    //ID дополнительного поля
    '67':{
      //Значение
      value: ''
    }
  },
  def_stock: {
    //Наименование
    name: '',
    //ID категории
    parent: '',
  },
  ext_stock: {
    //Наименование
    '24':{
      //Значение
      value: ''
    }
  }
}
Ответ: {
  //Статус
  status: "success",
  //ID заполненой формы
  form: "34"
}
Запрос всех доступных типов объектов:
URL: http://domainname.intrumnet.com:81/sharedapi/stock/types
params: нет
PHP библиотека метод: getStockTypes
Ответ: [
  {
    id: "1",
    name: "Жилая недвижимость",
    groups: ["149","150"]
  },
  {
    id: "2",
    name: "Загородная недвижимость",
    groups: ["150"]
  }
]
  • id - id типа объекта
  • name - название
  • groups - список групп менеджеров имеющих доступ
Запрос доступных категорий объектов
URL: http://domainname.intrumnet.com:81/sharedapi/stock/category
params: нет
PHP библиотека метод: getStockCategory
Ответ: {
  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 - название категории объекта
Получение перечня и структуры дополнительных полей для типов объекта
URL: http://domainname.intrumnet.com:81/sharedapi/stock/fields
PHP библиотека метод: getStockFields
params: нет
Ответ: {
  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 - массив закрытых полей
Поиск в объектах по различным критериям
URL: http://domainname.intrumnet.com:81/sharedapi/stock/filter
PHP библиотека метод: getStockByFilter
Примеры скриптов на Github фильтр по полям
фильтр по дате создания
выборка всех объектов
params:
type - id типа объекта (обязательное поле, если не указаны byid/by_ids)
byid - id объекта
by_ids - массив id объектов, все объекты из массива должны быит одного типа
category - id категории объекта
nested - значение true или false, включить вложенные категории
search - поисковая строка может содержат имя объекта или вхождения в поля с типами text,select,multiselect (полнотекстовый поиск)
manager - id менеджера
groups - массив групп менеджеров
fields - массив условий поиска по полям [{id:id свойства,value: значение},{...}] для полей с типом integer,decimal,price,time,date,datetime возможно указывать границы:
    value: '>= значение' - больше или равно
    value: '<= значение' - меньше или равно
    value: 'значение_1 & значение_2' - между значением 1 и 2
related_with_customer - связанный с объектом контакта
order_direct - направление сортировки asc - по возрастанию, desc - по убыванию
order - если в качестве значения указать stock_activity_date выборка будет сортироваться по дате активности
date - {from: "2015-10-29 09:45:23", to: "2015-11-19 13:05:12"} выборка за определенный период
date_field - если в качестве значения указать stock_activity_date выборка по параметру активности
page - страница
publish - 1 - активные, 0 - удаленные, по умолчанию 1
limit - число записей в выборке, по умолчанию 20, макс. 500
group_id - ID группы для группированных объектов
object_groups - число записей в выборке, по умолчанию 20, макс. 500
Ответ: {
  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 - общее число найденных записей
Получение списка групп объектов
URL: http://domainname.intrumnet.com:81/sharedapi/stock/groups
PHP библиотека метод: getStockGroups
Пример на github Получение списка групп и всех объектов по нему
Получение списка прикреплённых объектов к группе
Редактирование группы объектов
Ответ: [
  {
    "id": "1",
    "name": "Колосс",
    "type": "9",
    "fields": ["433", "806", "807", "430", "429"],
    "publish": "1"
  }
]
id - ID группы объектов
name - Название группы объектов
type - Тип объектов относящихся к группе
fields - Уникальные ( отличающиеся у прикреплённых и у родителя ) поля объектов
Добавление в базу CRM новых объектов (для выполнении данной операции должен быть разрешен доступ на запись)
URL: http://domainname.intrumnet.com:81/sharedapi/stock/insert
PHP библиотека метод: insertStock
Примеры скриптов на Github добавление нового объекта
params: // массив добавляемых записей
[
  {
    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 свойства',
    nbsp;    value: {
          lat: 'широта',
          lon: 'долгота'
        }
      },
      {
      //диапазон значений
        id: 'ID свойства',
        value: ['значение от','значение до']
      },
      //файл, если файлов несколько блок дублируется
      {
        id: 'ID допполя с типом файл',
        value: 'имя загруженого файла на сервере'
      }
    ]
  },
  {
    //аналогично предыдущему элементу
  }
]
Пример загрузки файлов в разделе Утилиты / Загрузка файлов
Ответ: //ответ содержит массив добавленных объектов
[19321,19322,...]
Редактирование CRM объектов (для выполнении данной операции должен быть разрешен доступ на редактирование)
URL: http://domainname.intrumnet.com:81/sharedapi/stock/update
PHP библиотека метод: updateStock
Примеры скриптов на Github Редактирование одного объекта
Редактирование списка объектов с сверкой/обновлением фотографий
params: //обновление записей аналогично вставке, в список параметров добавляется 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 объектов (для выполнении данной операции должен быть разрешен доступ на редактирование)
URL: http://domainname.intrumnet.com:81/sharedapi/stock/updateByFilter
PHP библиотека метод: updateStockByFilter
Примеры скриптов на Github Редактироание группы объектов по фильтру
params: //Метод принимает два параметра, 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"
  }
]
Добавление комментариев к объектам (для выполнении данной операции должен быть разрешен доступ на редактирование)
URL: http://domainname.intrumnet.com:81/sharedapi/stock/addComment
PHP библиотека метод: addStockComment
Примеры скриптов на Github Добавление комментария
params: [
  {
    enity_id : 'ID существующего объекта',
    text : 'Строка комментария',
    author : 'ID автора'
  }
]
Удаление CRM объектов (для выполнении данной операции должен быть разрешен доступ на удаление)
URL: http://domainname.intrumnet.com:81/sharedapi/stock/delete
PHP библиотека метод: deleteStock
Примеры скриптов на Github Удаление объекта
params: // для удаления объектов необходимо послать массив их ID [10234,10432,10342,...]
Получение перечня дополнительных полей для сотрудника
URL: http://domainname.intrumnet.com:81/sharedapi/worker/fields
PHP библиотека метод: getBindedSelectVariants
params: нет
Ответ: [
  {
    id: "6",
    name: "Результаты аттестаций",
    datatype: "text"
  },
  {
    id: "7",
    name: "История перемещений",
    datatype: "text"
  },
  {
    ;id: "8",
    name: "Предыдущее место работы",
    datatype: "text"
  }
]
Аналогично полям в объектах
Получение списка отделов
URL: http://domainname.intrumnet.com:81/sharedapi/worker/department
PHP библиотека метод: getDepartment
params: нет
Ответ: [
  {
    id: "1",
    parent_id: "0",
    name: "Руководство",
    description: "",
    order: "1"
  },
  {
    id: "2",
    parent_id: "0",
    name: "Управление по работе с персоналом",
    description: "",
    order: "2"
  },
  {
    id: "3",
    parent_id: "0",
    name: "Управление маркетинга",
    description: "",
    order: "3"
    }
]
id - id отдела
parent_id - id родителя для вложенных отделов
name - имя отдела
description - описание
order - порядок сортировки
Получение списка филиалов
URL: http://domainname.intrumnet.com:81/sharedapi/worker/filiation
PHP библиотека метод: getFiliation
params: нет
Ответ: {
  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
Поиск сотрудников по различным критериям
URL: http://domainname.intrumnet.com:81/sharedapi/worker/filter
PHP библиотека метод: filterEmployee
Примеры скриптов на Github Все сотрудники , Сотрудники отделов , Сотрудники CRM группы
params:
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
Получение списка доступных групп менеджеров
URL: http://domainname.intrumnet.com:81/sharedapi/managergroup
PHP библиотека метод: getAvailGroups
params: нет
Ответ: [
  {
    id: "149",
    name: "Автосалон №1"
  },
  {
    id: "150",
    name: "Автосалон №2"
  }
]
id - id группы менеджеров
name - название группы
Получение дополнительных полей контакта
URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/fields
PHP библиотека метод: getCustomerFields
params: нет
Ответ: (См. получение полей объектов)
Поиск в контактах
URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/filter
PHP библиотека метод: filterCustomers , getListCustomers
Примеры скриптов на Github Выборка всех контактов с файлами , Выборка контактов за диапозон дат , Выборка контактов по фильтру
params:
groups - массив id групп менеджеров
manager - id менеджера
byid - id контакта
marktype - массив id типов
nattype - одно из значений подтипа physface - Юрлицо, jurface - Физлицо, по умолчанию выводятся все
search - поисковая строка (может содержать фамилию или имя, email, телефон)
fields - массив условий для дополнительных свойств (аналогично объектам)
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)
Ответ: {
  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 - общее число найденных записей
Аналогично добавлению объектов       (PHP библиотека метод: insertCustomers)
Доступные поля
name - Имя
surname - Фамилия
secondname - Отчество
manager_id - ID менеджера
additional_manager_id - Массив ID дополнительных менеджеров
marktype - Тип
email - массив email адресов
phone - массив номеров телефонов
comment - комментарий*

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

Добавление комментариев к контактам (для выполнении данной операции должен быть разрешен доступ на редактирование)
URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/addComment
PHP библиотека метод: addCustomersComment
Примеры скриптов на Github Добавление комментария
params: [
  {
    enity_id : 'ID существующего объекта',
    text : 'Строка комментария',
    author : 'ID автора'
  }
]
Аналогично удалению объектов      (PHP библиотека метод: deleteCustomers)
Получение прикрепленных к контакту сущностей
URL: http://domainname.intrumnet.com:81/sharedapi/purchaser/attach
PHP библиотека метод: getCustomerAttaches
params:
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
params: нет
Ответ: [
  {
    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
params: нет
Ответ: (См. получение полей объектов)
Поиск в активности
URL: http://domainname.intrumnet.com:81/sharedapi/applications/filter
PHP библиотека метод: filterRequests
Примеры скриптов на Github Выборка активностей, изменивших статус за период времени
params:
search - поисковая строка (может содержать фамилию контакта или слова из комментария или названия активности)
groups - массив групп менеджеров
manager - id менеджера
byid - id активности
by_ids - массив ids активностей
customer - id контакта
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)
Ответ: {
  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 - общее число найденных записей
Аналогично добавлению объектов       (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 добавление контакта с активностью
params: {
  "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 Добавление комментария
params: [
  {
    enity_id : 'ID существующего объекта',
    text : 'Строка комментария',
    author : 'ID автора'
  }
]
Аналогично удалению объектов       (PHP библиотека метод: deleteRequests)
Получение списка типов сделок
URL: http://domainname.intrumnet.com:81/sharedapi/sales/types
PHP библиотека метод: getSaleTypes
params: нет
Ответ: [
  {
    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
params: нет
Ответ: {
  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
params:
search - поисковая строка
type - массив id типов сделок
stage - массив id стадий сделок
customer - id контакта
manager - 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 выборка по параметру активности
Ответ: {
  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 - общее число найденных записей
URL: http://domainname.intrumnet.com:81/sharedapi/sales/getbychangestage
PHP библиотека метод: getSalesChangeStage
Примеры скриптов на Github Получение сделок, стадия которых поменялась в период от %Y-%m-%d - до %Y-%m-%d
params:
date_start - Начало периода, в формате %Y-%m-%d
date_end - Конец периода в формате %Y-%m-%d
Получение дополнительных данных о связях с другими сущностями
URL: http://domainname.intrumnet.com:81/sharedapi/sales/details
PHP библиотека метод: getSaleDetails
params:
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 добавление контакта со сделкой
params: {
  "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 Добавление комментария
params: [
  {
    enity_id : 'ID существующего объекта',
    text : 'Строка комментария',
    author : 'ID автора'
  }
]
Аналогично удалению объектов       (PHP библиотека метод: deleteSales)
Запрос -постраничная выборка счетов с использованием фильтра и поиска
URL: http://domainname.intrumnet.com:81/sharedapi/accounts/get
PHP библиотека метод: billsGet
Примеры скриптов на Github Выборка счётов, с оплатой за период
params:
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
params:
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 Добавление счёта
params:
[
  {
    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
params:
[
  {
    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
params:
{
  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 Оплата счёта
params:
{
  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
params:
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
params:
[
  {
    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
params:
[
  {
    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
params:
{
  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
params:
{
  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
params:
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
params:
[
    {
        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
params: Параметры те же что при добавлении выписки, плюс id выписки
Ответ: Аналогичен ответу, при добавлении выписки
API для загрузки файловых данных
URL: http://domainname.intrumnet.com:81/sharedapi/utils/upload
PHP библиотека метод: uploadFile
params:
object - один из возможных вариантов (stock,applications,purchaser)
upload - имя поля загружаемого файла, поддерживает множественную загрузку
Ответ: {
  name: "54cf4e91db8ba.jpg"// имя загруженного файла или массив значений при множественной загрузке
}
Чтобы запросить коментарии используйте следующий запрос
URL: http://domainname.intrumnet.com:81/sharedapi/[тип_объекта]/comments
Тип объекта должен быть одним из значений: stock, applications, purchaser, sales
PHP библиотека метод: getComments, например getStockComments
params:
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 Контакта:url скрипта примимающего запросы от INTRUM;
- Gateway INTRUM:url скрипта для отправки запросов контактам;

Затем необходимо добавить имя/номер отправителя, в качестве провайдера выбрав только что созданного. CRM INTRUM будет принимать только те входящие 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   Направление сортировки: ASK, 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..."
    },
      ...
    }]
}
В случае ошибки: {
  "status":"fail",
}
URL: http://domainname.intrumnet.com:81/sharedapi/calls/import
PHP библиотека метод: callsAdd
Примеры скриптов на Github Добавление нового звонка
Параметры
uniqueId Уникальный идентификатор звонка. 32-х символьная строка
from Номер, с которого совершён звонок
to Номер, на который был совершён звонок
trunkId ID соединения, через которое был совершёл звонок, список соединений
isIncoming Направление звонка с т.з. CRM системы: true или 1 - входящий, иначе - исходящий
callerId Caller ID звонящего (обычно совпадает с его номером), не актуален при указанном isIncoming
timestamp Время совершения звонка. Unix Timestamp * 1000
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 Номер, на который был совершён звонок
trunkId ID соединения, через которое был совершёл звонок, список соединений
isIncoming Направление звонка с т.з. CRM системы: true или 1 - входящий, иначе - исходящий
callerId Caller ID звонящего (обычно совпадает с его номером), не актуален при указанном isIncoming
timestamp Время совершения звонка. Unix Timestamp * 1000
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
Запрос является многофункциональным и зависит от набора параметров
[подтип] insert
URL: http://domainname.intrumnet.com:81/sharedapi/externaldialogs/insert
params:
customer - id контакта в системе INTRUM
Опционально если необходимо прикрепить диалог к контакту
Если нужно создать диалог без привязки к контакту в системе INTRUM то в параметре customer нужно указать 0
dialog - Набор свойств типа диалога
id - Заданный id типа диалога
Опционально! Если указан этот параметр, то остальные параметры в group Игнорируются
name - Название нового типа диалога
Если необходимо создать новый диалог
employees - Список участников диалога
Список id сотрудников
Ответ В любом случае в ответе будет присутствовать clientkey: {
  "clientkey" : "c62f4c374e28bad97ab57256aeb034b8"
}

Внимание !

Сохраните clientkey для дальнейшего использования
В случае если не указан dialogid.id то в ответе будет содержаться dialogid - id созданного типа диалога {
  "clientkey" : "c62f4c374e28bad97ab57256aeb034b8" ,
  "dialogid"  : 56
}
Запрос для изменения типа диалога("Название" , "Состав сотрудников").
[подтип] update
URL: http://domainname.intrumnet.com:81/sharedapi/externaldialogs/update
params:
id - id типа диалога (Обязательно)
name - новое имя типа диалога (Опционально)
Указать новое название если необходимо сменить
employees - новый список участников (Опционально)
Список id менеджеров(участников) если нужно изменить
Ответ status - boolean Статус завершения операции {
  "status" : true
}
Запрос для постраничного получения списка типов диалогов
[подтип] groupslist
URL: http://domainname.intrumnet.com:81/sharedapi/externaldialogs/dialogtypeslist
params:
page - номер запрашиваемой страницы (0 - первая странциа)
Если параметр опущен то будет отдана первая страница
count - Количество на страницу (30 по умолчанию)
Целое число в диапазоне 10 - 50 включительно
Ответ list - Массив типов диалогов {
  "list" : []
}
Запрос для постраничного получения истории сообщений.
[подтип] history
URL: http://domainname.intrumnet.com:81/sharedapi/externaldialogs/history
params:
group - id типа диалога (Обязательно)
client - ключ контакта (Обязательно)
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
params:
groups - список id типов диалогов (Обязательно)
client - ключ клиента (Обязательно)
Ответ list - Массив типов диалогов {
  "list"  : {// Список сообщений
    "1"/* id диалога */ : ["c70512f34fd2a233427b9d00b0cdc2fb"]
  }
}
Все API запросы связанные с органайзером имеют [тип_объекта] = org_events
Запрос для постраничного получения списка событий
[подтип] list
URL: http://domainname.intrumnet.com:81/sharedapi/org_events/list
params:
filters - Фильтры
publ - Показывать удаленные (1 - не удаленные , 0 - удаленные , all - все)
page - номер запрашиваемой страницы (0 - первая странциа)
Если параметр опущен то будет отдана первая страница
count - Количество на страницу (50 по умолчанию)
Целое число в диапазоне 1 - 50 включительно
Ответ
list - Массив событий
total - Общее количество событий соответствующих указанным фильтрам
{
  "list"  : [
    {
      "id"              : "ID события" ,
      "title"           : "Название события" ,
      "publ"            : "1" ,
      "description"     : "Описание события" ,
      "allDay"          : "0" ,
      "duration"        : "15" ,
      "remind_active"   : "yes" ,
      "remind_before"   : "15" ,
      "year"            : "2017" ,
      "month"           : "04" ,
      "day"             : "27" ,
      "weekday"         : "4" ,
      "hour"            : "12" ,
      "minute"          : "00" ,
      "textColor"       : "#000000" ,
      "backgroundColor" : "#EFEFEF" ,
      "borderColor"     : "#EFEFEF" ,
    }
  ] ,
  "total" : 1
}
Информация о событии
[подтип] get
URL: http://domainname.intrumnet.com:81/sharedapi/org_events/get
params:
id - Id напоминания
Ответ
event - данные события (Как и при создании события)
users - Массив с данными об участниках события
ключ - ID пользователя
значение - флаг (simple - обычный , root - модератор(создатель))
Добавление нового события в органайзер
Не забудьте включить настройку у используемого API ключа
[подтип] insert
URL: http://domainname.intrumnet.com:81/sharedapi/org_events/insert
params:
event - Массив с данными о событии
title - Название события (Обязательно)
date - дата события в любом стандартном формате с указанием смещения времени(в случае если не указано смещение то будет установлено по Москве)(Обязательно)
Время будет преобразованное к кратному 5 минутам, например
Если передано 18:01 то будет преобразовано в 18:00
Если передано 18:03 то будет преобразовано в 18:05
Например
PHP - date("c"); «2017-04-27T10:49:48+04:00»
Javascript - new Date().toString(); «Thu Apr 27 2017 10:49:48 GMT+0400»
description - Описание события
allDay - Событие на весь день (1 - да, 0 - нет)
duration - длительность события в минутах (кратно 5 минутам, например 15)
remind_active - Уведомление активно (yes - да , no - нет)
remind_before - за сколько минут показать уведомление в минутах (кратно 5 минутам, например 15)
textColor - Стилевое оформление (цвет текста)
backgroundColor - Стилевое оформление (цвет фона)
borderColor - Стилевое оформление (цвет рамки)
users - Массив с данными об участниках события
ключ - ID пользователя
значение - флаг (simple - обычный , root - модератор(создатель))
Ответ
event - данные события
{
  "event" : {
    "id"              : "ID события" ,
    "title"           : "Название события" ,
    "publ"            : "1" ,
    "description"     : "Описание события" ,
    "allDay"          : "0" ,
    "duration"        : "15" ,
    "remind_active"   : "yes" ,
    "remind_before"   : "15" ,
    "year"            : "2017" ,
    "month"           : "04" ,
    "day"             : "27" ,
    "weekday"         : "4" ,
    "hour"            : "12" ,
    "minute"          : "00" ,
    "textColor"       : "#000000" ,
    "backgroundColor" : "#EFEFEF" ,
    "borderColor"     : "#EFEFEF" ,
  }
}
Редактирование события в органайзере
Не забудьте включить настройку у используемого API ключа
[подтип] update
URL: http://domainname.intrumnet.com:81/sharedapi/org_events/update
params:
Параметры аналогичны параметрам при добавление за исключениями
- в массив event добавить параметр id - id редатируемого события
- так же можно указать только те параметры которые нужно отредактировать
- Параметр users можно не указывать если список участников не меняется
- можно указать параметр publ = 0 для удаления , 1 - для восстановления (нужны соответствующие права)
users - Массив с данными об участниках события
ключ - ID пользователя
значение - флаг (simple - обычный , root - модератор(создатель))
Ответ
event - данные события (Как и при создании события)
Удаление события в органайзере
Не забудьте включить настройку у используемого API ключа
[подтип] delete
URL: http://domainname.intrumnet.com:81/sharedapi/org_events/delete
params:
id - Id напоминания
Ответ
event - данные события (Как и при создании события)
Для включения сервиса 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.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"
}