История о том, как разработка интеграции телефонии Sipuni и нескольких CRM стала для нас лабораторией и повлияла не только на технологии, которые мы используем, но и на процессы внутри компании.
Зачем нужна интеграция телефонии и CRM?
Интеграция телефонии и CRM упрощает работу, например, отделов продаж.При совершении входящих или исходящих звонков контакты и сделки создаются автоматически.
Номер клиента сразу заполняется в контактах, и на первом шаге воронки появляется новая сделка.
Автоматические транзакции.
Содержит название магазина и номер клиента.
Теги содержат источник клиента из коллтрекинга.
Менеджер получает уведомление, в котором указано, кто звонит, по какой линии и ссылки на контакт и сделку в CRM.
Уведомление о входящем звонке Для пропущенных звонков автоматически создается задача на перезвон такому-то клиенту.
При включенном коллтрекинге вы можете увидеть, по какому объявлению звонит клиент. А UTM-теги попадают в поля контактов.
Если контакт уже существует в CRM, то при входящем звонке АТС направляет звонок менеджеру, ответственному за контакт.
Сложности в разработке интеграции для большого количества CRM
У нас уже была интеграция с amoCRM. Но он был тесно связан с кодом АТС и это затрудняло подключение новых интеграций.Поэтому мы решили создать отдельный сервис интеграции.
Сначала я хотел создать универсальное API для нескольких CRM. Но мы отказались от этой идеи.
Потому что у каждой CRM свои концепции, например, у amoCRM — контакты и транзакции, у RetailCRM — клиенты.
Создание универсального API привело бы к подмене понятий и ограничению функционала разных CRM. Мы нашли такое решение: в каждой CRM есть свой модуль, который получает события от АТС и обрабатывает их по своей логике, создавая контакты, лиды или клиентов.
Это позволило нам последовательно работать с этими модулями без ущерба для функциональности конкретной CRM. Пользовательский интерфейс настроек также индивидуален для каждой CRM. Его задача — перенести дерево настроек в необходимый модуль CRM. Сложность создания интеграции для большого количества CRM не в алгоритмах, а в организации проекта.
Необходимо разработать систему таким образом, чтобы при увеличении количества CRM время на их подключение не увеличивалось.
В результате мы разработали фреймворк, к которому легко подключить новые CRM. Получилось не сразу; Мне пришлось трижды полностью переделывать фреймворк, прежде чем он стал удобным.
Технологии, повлиявшие на качество продукта
До этого проекта мы не использовали методы непрерывной интеграции.При такой методике при каждом изменении кода на сервере автоматически запускаются тесты для проверки продукта.
Это существенно улучшило качество продукта, хотя поначалу он казался просто интересным.
Для непрерывной интеграции мы используем Buildkite.com. Дженкинс не был освоен; ни у кого не было достаточно времени, чтобы вдумчиво это понять.
Сборка Buildkite была простой, и все было готово за один день.
Интерфейс Buildkite.com Непрерывная интеграция изменила наше представление о модульных тестах.
Они показали, сколько ошибок обнаружено.
Теперь мы пишем их не потому, что так принято или необходимо, а потому, что они дают нам уверенность в том, что код работает.
Первые проблемы и новый процесс работы с техподдержкой
Когда клиенты начали использовать новую интеграцию, появились первые ошибки.Был шквал комментариев и предложений.
Коллеги из техподдержки просто передавали разработчикам ошибки клиентов.
Разработка остановилась, потому что программисты только анализировали логи и исправляли ошибки.
Многие ошибки были похожими, но время на них все равно тратилось.
Стало понятно, что нам нужно изменить способ работы с коллегами из техподдержки.
Мы начали использовать Asana вместо Jira для фиксации ошибок.
Нам нужен был простой инструмент, с помощью которого ребята из техподдержки могли бы быстро создавать задачи и получать уведомления, когда они будут готовы.
Пример списка ошибок в Асане Затем мы предоставили нашим коллегам доступ к журналам.
В этом проекте мы начали использовать GrayLog, он показывает логи в веб-интерфейсе и быстро находит нужные записи.
Сообщения в логах делались на русском языке.
Я долго сомневался, стоит ли это делать, ведь мы обычно пишем их по-английски.
Логи стали более понятными и удобными для чтения.
Теперь коллеги из техподдержки, прежде чем передать ошибку программистам, сначала сами смотрят логи и решают большинство проблем без участия разработчиков.
Тестирование продукта, технологии снова приходят на помощь
Каждый раз при выходе новой версии продукта необходимо проверять весь функционал всех CRM. Для этого мы используем тест-кейсы, которые говорят нам, что нажимать, куда звонить и что должно произойти.По мере добавления новых тест-кейсов CRM тест-кейсов стало много, и появилось желание автоматизировать работу с ними.
Я узнал, что это называется «Инструменты управления тестовыми примерами».
Из нескольких кандидатов я остановился на testlodge.com. Теперь тестирование продуктов стало удобнее и возможность поручать тестирование разных CRM разным людям оказалась полезной.
В тестовой карте показано, что делать и ожидаемый результат. Остается только поставить галочку и нажать на одну из кнопок ниже.
Сводка выполнения теста
Программирование долгов
Как и в любом проекте, иногда нужно что-то сделать быстро.Есть в проекте места, которыми разработчики недовольны: неоптимальный или неудобный код. Это ухудшает не только поддержку проекта, но и мотивацию команды.
Чтобы решить эту проблему, мы договорились с директором, что можем посвятить рефакторингу один день в неделю.
Программисты стали относиться к коду как к владельцам, а не как к подрядчикам.
Если что-то сделано некачественно, мы просто переделываем и не беспокоимся о других задачах.
Это день восстановления порядка.
Заключение
Всего один проект принес в компанию несколько новых инструментов и изменил способ работы сотрудников.Благодаря этим изменениям увеличилась скорость разработки и качество продукта, а значит, немного изменилась и сама компания.
Оказывается, большой проект ценен не только своими результатами, но и положительными изменениями в компании.
Теги: #бэкенд-разработка #системная интеграция #проектирование и рефакторинг #разработка электронной коммерции #разработка коммуникационных систем
-
Работа На Дому Ввод Данных — Опыт Не Важен
19 Oct, 24 -
Широкополосная Связь Хороша Для Студентов
19 Oct, 24 -
Tracert Против Traceroute
19 Oct, 24 -
Мцфпк 2010
19 Oct, 24 -
Nokia Ищет Яндекс В Смартфонах
19 Oct, 24