Главное Авторские колонки Вакансии Образование
Выбор редакции:
873 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Как мы делали первый виджет для Мегаплана

Не так давно в Мегаплане появилась возможность встраивать свои приложения. Теперь можно настраивать сценарии работы в Мегаплане под внутренние процессы вашей компании, какими бы сложными и закрытыми они ни казались, также это возможность полноценно интегрироваться с внешними сервисами. Быть идеологом нового функционала (это я о виджетах) и реализовывать бизнес-задачи на этой базе – разные вещи.
Мнение автора может не совпадать с мнением редакции

Первое полноценное приложение, которое мы решили делать на этой технологии – интеграция Мегаплана с инструментом e-mail маркетинга Unisender.

Задача: использовать возможности гибкой группировки пользователей в Мегаплане и дополнить эту функциональность автоматической синхронизацией со списками рассылок.

Основная логика передачи списков клиентов работает на языке Python 2.7, что позволяет обрабатывать большие количества данных без больших задержек в реальном времени. Виджет получает списки групп клиентов из Мегаплана, далее вам нужно указать какие группы соответствуют спискам рассылок из Unisender и все остальное за вас сделает наша интеграция.

Сам виджет работает на технологии ReactJS и в реальном времени без лишних нагрузок и запросов связывает API-интерфейсы двух сервисов. Работает быстро и легко в любом браузере.

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

Придумали основную схему работы синхронизатора. Здесь все просто: клиентов тянем из групп (сущность в Мегаплане) и синхронизируем с списками в Unisender

b_58616f33306ec.jpg

MGTSK в нашем случае это «мозги» для обработки контактов.

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

b_5861757b1ae9c.jpgПолное техзадание ушло разработчику, а мы принялись за работу по фронтенду. Спустя несколько итераций был готов дизайн и первая версия API для обмена контактов.

Не все так хорошо

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

Костыль первый и единственный

Группы клиентов получаем через DOM-модель прям со страницы в Мегаплане.

Проблему решили и стали обмениваться клиентами. Нагрузочный тест в 100 клиентов сработал хорошо, а вот больше 500 клиентов Мегаплан отказался отдавать за один раз – если вам пригодится такая информация, то опрашивайте по 200-300 клиентов за раз :)

Виджет работает только на странице модуля «Клиенты» и вызывается по кнопке «Синхронизировать».

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

Особенностью при тестировании оказалось, что после формирования списка рассылки индекс обновляется раз в три часа.

b_58617cda3d57d.jpgЭто правило в сервисе работает и при импорте контактов через excel/csv.

А еще мы подготовили основу для триггерных рассылок из CRM: например, в сделке на определенном этапе сделки при выполнении набора условий клиенту можно автоматически отправить SMS или e-mail, но эта опция пока никак не автоматизирована.

В финальной версии интеграции также можно будет отслеживать статистику отправки и получения писем клиентами прям в карточке клиента в CRM. Функционал тестируем и наблюдаем, как наш движок ведет себя на больших нагрузках. Для примера скриншот:

b_58617f11b8f90.jpgНа этой неделе мы работаем над стабильностью обмена и настройкой боевого сервера для интеграции и внедряем первому клиенту виджет. В следующей статье хочу рассказать о оптимизации и живучести выбранных нами технологий, а также о реальной пользе клиентам от интеграции.

Спасибо за ваше внимание.

+3
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.