Интеграция AmoCRM + 1C + Формы на сайтах + Телефония

Сегодня мы хотим рассказать о нашем опыте внедрения AmoCrm.

Перед нами стояли следующие задачи:

  1. Интеграция форм на сайтах клиента со сбором аналитики о визите посетителя
  2. Интеграция с сервисом Alloka для сбора аналитики по звонкам с сайтов на номера виртуальной АТС Mango Office
  3. Создание виджета для AmoCRM, который позволяет создавать сметы из номенклатуры 1С прямо при просмотре сделки
  4. Двусторонний обмен данными с 1С
    1. Заявки могут быть изменены (поля сделки, контактов, компаний, переход заявки на новый этап в воронке) как в AmoCRM так и в 1С
    2. Создание и редактирование смет возможно как через виджет так и на стороне 1С

У компании уже было запущено несколько лендингов и один основной сайт. Лендинги написаны на чистом html с обработчиками форм на php.

Было принято решение не усложнять эти сайты, поэтому каждый обработчик просто передавал необходимые данные в наше API.

Дальнейшая обработка ведется на стороне написанного нами сервиса “прокладки”.

Список подключенных сайтов:

r-septik.ru/new

1-tank.ru

new-mesto.ru/otoplenie

novoe-mesto.ru

rpi-septik.ru


Немного подробнее о сервисе.

Сервис синхронизируется с AmoCRM - слушает webhook’и и хранит на своей стороне все данные которые заводятся в AmoCRM, также принимает данные из сторонних приложений, например, получение заявки с лендинга по API, производит двусторонний обмен данными с 1С. Синхронизация должна происходить с минимальными задержками, поэтому стандартный подход с использованием расписания (CRON) не подходил, мы написали демона, который постоянно следит за изменениями и синхронизируется с AmoCRM.

В работе мы использовали Yii2, конечно же мы не разрабатывали все с нуля, ведь у нас есть наш любимый Yupe2. А вот при выборе базы данных пришлось изменить старым привычкам и совместно с MySQL использовать MongoDB. Дело в том, что интерфейс AmoCRM позволяет создавать неограниченное количество пользовательских полей для всех сущностей системы (сделки, контакты, компании) и их очень удобно хранить в MongoDB.

screenshot-pipe.amylabs.ru-2017-02-06-13-40-42.png

Как видно мы храним и другие данные, а именно статусы и воронки продаж.

Есть возможность подтягивать изменения этих данных из AmoCRM как по кнопке из панели управления, так и по расписанию.

2.png

Все это необходимо для манипуляций недоступных из коробки с сущностями CRM.

Вот некоторые примеры из технического задания.

Скрипт отображения ID сделки

  1. При создании или редактировании сделки в amoCRM скрипт проверяет значение в поле «ID».
    1. Если поле не пустое, скрипт переходит к пункту 2.
    2. Если поле пустое, скрипт записывает ID сделки в поле «ID» и переходит к пункту 2.
  2. Скрипт проверяет наличие ID в названии сделки
    1. Если название сделки начинается с ID, скрипт прекращает работу
    2. Если ID отсутствует в названии сделки, скрипт автоматически переименовывает сделку, ставя перед существующим названием сделки ID, двоеточие и пробел.

Скрипт создания сделки в воронке «Сервисное обслуживание»

  1. После перехода сделки в статус «Успешно реализовано» ИЛИ указания причины отказа «Поставил кольца» ИЛИ «Конкуренты (Договор/Монтаж)», скрипт создает новую сделку с полями:
    1. Название = Сервисное обслуживание
    2. Воронка = Сервисное обслуживание
    3. Статус = Активная заявка
    4. Ответственный = Руководитель сервисного отдела
  2. Скрипт прикрепляет сделку к контакту закрытой сделки.
  3. Скрипт создает для ответственного сотрудника задачу, прикрепленную к новой сделке:
    1. Для статуса «Успешно реализовано»:
      1. Текст = Предложить сервис. Успешно реализовано
      2. Дата выполнения = Текущее время + 3 месяца.
    2. Для статуса «Отказ»
      1. Текст = Предложить сервис. Был отказ
      2. Дата выполнения = Текущее время + 3 месяца

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

whours.png

Виджет создания смет в 1С.

Виджет представляет собой каталог товаров и позволяет менеджерам в процессе разговора с клиентом быстро “накидать” заказ (смету). Затем сметы уходят в 1С, где могут быть уточнены. Обмен работает в двух направлениях.s2.png

s1.png


Телефония

Как мы писали выше, перед нами так же стояла задача интеграции с сервисом Alloka для сбора аналитики по звонкам с сайтов на номера виртуальной АТС Mango Office. Работает все почти так же как с AmoCRM, слушаем webhook'и, ищем или создаем контакт, заводим сделку и подтягиваем аналитическую информацию (utm метки, источник и так далее) в AmoCRM.

Систематизация бизнес-процессов компании

Систематизация бизнес-процессов не наша специализация, лучше когда каждый занимается тем, что умеет лучше всего, поэтому этим занимались ребята из http://kpicontrol.ru/. Они же написали для нас замечательное техническое задание и держали руку на пульсе на всех стадиях разработки и запуска данной интеграции.