Большое внедрение и настройка CRM Битрикс. Внешняя интеграция

Продолжаем тему Большого внедрения Битрикс24. Это значит — вы купили коробочную версию и развиваете ее возможности.

Серьезное внедрение Битрикс24 обязательно потребует интеграции с внешними системами. Например:

  1. Загрузка базы товаров в CRM из складского или другого учетного ПО.

  2. Синхронизация компаний-контрагентов с бухгалтерской или учетной программой.

  3. Привязка лидов и сделок к заявкам на склад или производство.

  4. Создание лидов при регистрации новых обращений в других системах (сайты, почта, электронные архивы и т.п.).

  5. Получение отчетов, включающих данные из Битрикс24 и других систем

Эта статья — о любви.



Статья длинная, сначала вывод:

В Битрикс24 заложены базовые возможности для типовых задач интеграции, однако любая нетривиальная задача решается только программистом.
Сложность задач требует квалифицированного программиста с широким кругозором.
Дружественность Битрикс24 к внешнему программисту оставляет желать лучшего.

Мы оказываем услуги по сопровождению сайтов на Битриксе и много знаем о том, с какими проблемами обычно сталкиваются клиенты.


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


В сегодняшней статье — обзор задач интеграции Битрикс24, связанных с ними проблем и методов их решения.

Интеграция сайта с Битрикс24. Связь с внешними системами. Лоскутная автоматизация.

 

— Г-голубчики, — сказал Федор Симеонович озадаченно, разобравшись
в почерках. — Это же п-проблема Бен Б-бецалеля. К-калиостро же доказал, что она н-не имеет р-решения.
— Мы сами знаем, что она не имеет решения,  —  сказал  Хунта, немедленно ощетиниваясь.
— Мы хотим знать, как ее решать.

Братья Стругацкие, Понедельник начинается в субботу

У некоторых руководителей есть голубая мечта: “все — в одной программе”.

На практике получается монстр, в котором есть “почти все”. Например, нет почты. Или календарей. Или они есть, но “в аутлуке удобнее”.

На мой взгляд для большинства компаний ситуация, которую ИТ-снобы называют “лоскутная автоматизация” — норма жизни и ключ к эффективности.


Если каждый “лоскут” дешев, дружелюбен и открыт к обмену данными — то к короткой перспективе он решит задачу, а в долгой — даст гибкость.

Если же вы пытаетесь “решить все задачи” — внедрения не будет никогда, зато ИТ-департамент будет всегда загружен работой.

— А Битрикс24 — хороший “лоскут”?

С дружелюбием к пользователю и ценой у Битрикс24 все в порядке. Остается обмен данными с внешними системами и дружелюбие к программисту. 

С чем должна обмениваться CRM?

С электронным документооборотом (или хотя бы архивом), учетной программой 1С, заявками на производство, путевыми листами и тому подобным.



С точки зрения программиста это синхронизации справочников, загрузки и выгрузки записей таблиц, уведомления и напоминания. Особо богата на коллизии и потому неприятна двусторонняя синхронизация. Задача не выглядит простой. И технически, и организационно.

Начнем.


Возможности для интеграции и проблемы при работе с внешними данными в Битрикс24. Настройка интеграции 1С и Битрикс

Стандартные возможности интеграции. Интеграция сайта с Битрикс24

— Как же он стрижет? Ведь головы у всех разные.
— Ну, это только до первого раза.
Старый анекдот про изобретателя шлема для стрижки



В Битрикс24 заложены некоторые возможности для интеграции и обмена данными.


Что? Чем полезно? Какие проблемы?
CSV-Импорт и экспорт лидов, сделок, компаний и контактов CRM Табличные данные из “старой системы” можно загрузить в Битрикс 24.
Можно выгрузить данные для ручной обработки
Двустороннюю синхронизацию так не сделать.
Файлы, задачи, связанные сущности не переносятся.
Только вручную, без расписаний и автоматизации.
Создание лидов через веб-формы БУС Удобная передача данных с сайтов на Битриксе в Битрикс24. Нет механизма обработки ошибок валидации данных на стороне Битрикс24.
Списочные свойства передаются неправильно.
Файлы не передаются.
Интеграция с AD и 1С:ЗУП на уровне учетных записей пользователей, политик доступа и сквозной авторизации Единый пароль в домене Windows и КП. Очень полезно если у вас в организации работает 5000 человек, и они не очень понимают зачем им портал. “Лес доменов” не поддерживается.
Учетная запись не создается в портале, пока пользователь не попытается войти.
Интеграция с 1С:УТ на уровне справочника товаров и счетов Передача товаров из 1С в Битрикс24.
Синхронизация счетов и статусов оплаты.
Работает по https, в 1С это поддерживается с версии платформы 8.3.4.
SEND&SAVE Создание записей в CRM на основе электронных писем.
Большой плюс — файлы прикрепляются к письму.
Работает достаточно странно, передаются не все данные.
Передача заказов из интернет-магазина на БУС в Битрикс24 и работа с заказами из CRM Легко настраивается, заказы передаются как сделки, товары ИМ сохраняются локально, доступно редактирование-на-лету из CRM. Статусы заказов не связаны со стадиями сделок.
Разработка приложений “третьего типа”, работающих с данными по API
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=5378&LESSON_PATH=3913.5377...
Можно сделать почти все
Например, есть приложения для передачи базы контрагентов даже из 1С 7.7.
https://www.bitrix24.ru/apps/?app=htmls.1c77
Путь долог и суров.

Это отличный задел. Разработчики сделали самое нужное и показали, как делать все остальное.

Есть весьма неплохая документация по REST API https://dev.1c-bitrix.ru/rest_help/crm/fields.php


Для презентации Битрикс24 наличия этой функциональности более чем достаточно.

Для реального внедрения — нет.


В живом бизнесе и данные немного другие, и 1С не той версии, и это не 1С, а вовсе даже SAP.

Итак, учтем что “из коробки” больше ничего нет и будем искать решения.


Загрузка базы товаров в CRM из 1С, складского или другого учетного ПО

Если у вас 1С не ниже версии 8.3.4, конфигурация “Управление торговлей”, “Управление небольшой фирмой” или “Комплексная автоматизация” — отлично! Читайте статью и настраивайте готовую интеграцию: https://www.bitrix24.ru/blogs/howto/integration1c.php

Интеграция с 1С-Битрикс. Цена вопроса


Если у вас другая программа, есть два варианта:

  • заставить внешнюю систему сделать вид, что она — 1С;

  • сделать свой интерфейс обмена силами программистов с обеих сторон: знающих вашу систему и специалистов по Битриксу.

Без программирования к сожалению в любом случае не обойтись — по непонятным причинам в справочнике товаров отсутствует даже обычный csv-импорт.



Первый способ я рекомендую в тех случаях, когда для вашей учетной программы есть пристойные разработчики, которые способны изучить протокол обмена и поддержать его.

Слез, пота и крови будет много, но понятно куда двигаться, а схема “велосипеда” уже описана.

Если же на стороне учетного ПО никого вменяемого нет (или вы очень любите программировать сами), получите примитивную Excel-стайл выгрузку и пишите импорт.

Подобными упражнениями я рекомендую заниматься только на коробочной версии.

Придется погрузиться в API CRM, поработать с классами CCRMProduct и CCRMProductRow .

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


Структура таблиц вполне человеко-понятна.

Синхронизация компаний-контрагентов с бухгалтерской или учетной программой.

Есть готовый ручной импорт из CSV. Достоинства и недостатки описаны выше.

Для серьезной автоматизации это, разумеется, не годится.

Пути тут два:

  1. Покупка или разработка внешнего приложения “третьего типа” (работает даже в облачной версии ). Пример про 1С 7.7 я уже приводил;
    Этот путь документирован и общем понятен, хотя выглядит неудобным. Масса ограничений для выполнения простых задач.

  2. Написание модуля для прямого обмена данными на API Битрикса (годится только для коробки).

    Поскольку все большие внедрения делаются на коробочных версиях, второй путь — самое прямое решение, хотя первый — более правильный с идеологической точки зрения.

Схема примерно та же, что и с загрузкой товаров. Нам потребуются:

  • таблицы b_crm_contact и b_crm_company

  • классы модуля CRM CCRMContact и CCRMCompany

Несмотря на кажущуюся простоту, задача синхронизации с внешней системой полна неочевидных нюансов.



Привязка лидов и сделок к заявкам на склад или производство


Представьте себе — вы сделали продажу. Обычно это означает выставление и оплату счета. Затем заказ уйдет в исполнение.

Почти всегда исполнение заказа отслеживается в какой-то программе.

Например, это будет заявка на склад. Или номер договора. Или ссылка на проект (который можно вести в Битрикс24 или другой системе).


По-хорошему хочется видеть в CRM нечто вроде такого:



В Битрикс24 ничего специально не сделано для поддержки такого процесса.

Тем не менее задача привязки внешней информации — вполне решаемая.

Для этого нужно сделать три вещи:

  1. Создать поля у сделки или лида для внесения номера или ссылки на внешнюю систему.
    Внешняя система может возвращать информацию, например статус заявки или текстовое описание. Тогда для этого тоже надо сделать поля.

  2. Сделать так, чтобы внешняя система получала информацию о заявках и отвечала на запросы.
    Проще всего для этого написать обработчик события OnAfterCrmLeadUpdate для первичного обращения к внешней системе и агент для регулярного опроса статусов.

  3. Внешняя система может возвращать файл, а не просто текстовую строку.
    Для того, чтобы из карточки лида можно было удобно его просматривать, придется изменить представление поля.
    Это очень непростое изменение.

    Придется изменить шаблон компонента crm.lead ,
    который вызывает компонент crm.lead.show ,
    который вызывает компонент crm.interface.form ,
    который вызывает компонент crm.interface.form.tactile ,
    который вызывает компонент main.interface.form .


    main.interface.form является одним из наиболее низкоуровневых компонентов системы 1С-Битрикс и правильная его кастомизация — сложнейшая задача.


Создание лидов при регистрации новых обращений в других системах (сайты, почта, электронные архивы и т.п.).

Крайне рекомендуется обойтись одним из стандартных способов, описанных выше: передача данных лида из веб-форм сайта на БУС, создание лида из письма или сделки из заказа интернет-магазина.

Эти механизмы работают и не требуют к себе внимания.

Если же у вас все сложно (например, нужно создавать лиды по обращению системы электронного документооборота), приглашаем вас в волшебный мир классов модуля CRM, о котором мы уже говорили.

Это — любовь.


Схема примерно та же, что и с загрузкой товаров. Нам потребуются:

  • таблица b_crm_lead

  • класс модуля CRM CCRMLead

Казалось бы, это простая задача. В реальности создание лида и корректное наполнение его данными — непростое дело. Дубли, ссылки на компании, требования к валидации, наполнение ленты лида или создание “писем” для подгрузки файлов, управление “делами” — все это окажется сложнее чем вы думаете.

Получение отчетов, включающих данные из Битрикс24 и других систем

В CRM есть отчеты. Это и популярная “воронка продаж”, и предустановленные отчеты вроде “Объем сделок по менеджерам”


и даже конструктор отчетов.


Иногда нужно построить отчеты на основе внешних данных, которых в CRM Битрикс24 нет.

Есть два варианта: импортировать данные в Битрикс24 и пытаться получить отчетность в этой системе, или выгрузить данные для внешней обработки.


Несмотря на мои симпатии к Битрикс24, мне конструктор отчетов кажется неудобным, непрозрачным и сложным инструментом, а сами отчеты вызывают подозрения.

Я бы выгрузил данные в любую систему, хоть Excel, и работал с ними там.

Выгрузка первичных данных о сделках, лидах и счетах — задача относительно простая, и может быть корректно решена и вызовом методов классов, и просто запросами на чтение базы данных (разумеется, в случае коробочной версии).

А вот пытаться самостоятельно получить данные отчетов, которые генерирует Битрикс24, я бы крайне не советовал. Программный интерфейс для этого сложный, неочевидный и не документированный.

Вывод.

Внешняя интеграция, импорт данных и расширение функциональности Битрикс24 — сложная, но решаемая задача.

Кому поручать поддержку и сопровождение порталов Битрикс24?

Неопытные разработчики, как правило, недооценивают калибр задачи.

.

А опытных почти нет.

В ИНТЕРВОЛГЕ есть опытные аналитики и разработчики, специализирующиеся на Битрикс24. Мы решаем сложные задачи программирования для Битрикс24 и готовы вам помочь.

Оставьте заявку, мы ее проанализируем и дадим свои рекомендации.

Комментарии (3)

...
  • Александр
  • 30.06.2015 22:25:40
Приветствую.
плиз поправьте ссылки
текущая статья
http://www.intervolga.ru/blog/bitrix/bitrix24-crm-integration-import-export/
в самом начале указывает на другие статьи
"Вводная статья о том, какие пути внедрения Битрикс24 существуют
Битрикс24 — не игрушка. Внедрение корпоративного портала и CRM
....."
а вот ссылки ведут на закрытую часть вашего портала.
...
  • Никулин Роман Аркадьевич
  • 17.02.2016 00:42:04
"Сенхронизация контактов"
http://www.intervolga.ru/upload/medialibrary/39f/39fc529cb513326fcb97763dd75c6618.png
поправьте - эта мелочь очень влияет на восприятие информации в статье. Да, может быть это только на мое восприятие.
...
Обязательно исправим! Спасибо!