«Всё хорошо, но надо переделать»: как мы несколько раз переписывали код с нуля для интеграции с amoCRM
Если бизнес работает в CRM-системе, ему неудобно заморачиваться со сторонними решениями. Например, выставлять и подписывать цифровые договоры в нашем сервисе, а всю информацию по сделкам хранить в amoCRM. Поэтому мы разработали свой виджет для этой системы, но без приключений не обошлось: подрядчики кидали нас на деньги, кормили обещаниями и не хотели сотрудничать на постоянной основе. Рассказываю, как мы решали эти проблемы и интегрировали свой сервис в amoCRM.
Привет! Я Сергей Гребеножко, CEO OkiDoki — сервиса для подписания электронных документов. Пока разрабатывали наш виджет для amoCRM, сменили две команды подрядчиков, несколько раз переписывали код с нуля и с каждой итерацией добавляли всё больше функций. Делюсь процессом разработки, болями и удачными решениями, а также показываю, какой виджет у нас получился.
Выбрали amoCRM, потому что в этой системе еще не было наших конкурентов
Переход на цифровые договоры для бизнеса — вопрос времени, а значит, компаниям понадобятся сервисы для подписания документов онлайн. Но мы опасались, что CRM-системы начнут разрабатывать свои модули с такими же функциями.
Наша команда решила опередить конкурентов и интегрировать OkiDoki с CRM-системой. Было два варианта: amoCRM и Битрикс24. Но у второй платформы уже есть свой модуль для заключения договоров — я рассказывал о нем в статье «Протестировал 5 сервисов для подписи электронных документов без ЭЦП. Рассказываю, что выбрать вашему бизнесу».
В amoCRM еще не было сервисов для подписания цифровых документов, поэтому мы остановились на этой системе.
Начали с бюджетной разработки и столкнулись с проблемами при релизе виджета
У нас еще не было опыта разработки виджетов для CRM-систем, поэтому решили обратиться к подрядчикам. Как оказалось, заказывать работы у исполнителей — это больно, дорого и сложно.
На рынке стоимость разработки виджета у разных подрядчиков варьируется от 15 тысяч до полумиллиона рублей. Но эта разница не всегда означает качество.
Мы начали с бюджетного варианта за 15 тысяч рублей. В результате получился виджет с базовыми функциями для подписания цифровых документов в amoCRM. Вот как выглядел этот процесс:
- В карточке сделки появлялась кнопка «Создайте договор».
- Пользователь выбирал конкретный шаблон, и на его основе создавался документ.
- Ссылка на документ подшивалась в сделку, и пользователь мог отправить клиенту договор на подпись.
В первом виджете было достаточно функций, чтобы выставлять клиентам документы на подпись. Но появилась проблема: поля в сделке и договоре сопоставлялись по названиям. Если они не совпадали, то информация не переносилась в Oki Doki или amoCRM. Из-за этого документ надо было заполнять вручную.
Первая реализация была самой простой, но мы долго пытались ее зарелизить. Разработчики писали только на том, что им удобно, и их стек не совпадал с нашим. Например, мы работали на Python, а они — на PHP. У нас базы MongoDB, у них — PostgreSQL.
Интегратор нашел наш сервис в амоМаркете и помог с разработкой виджета
Первую версию виджета было сложно поддерживать, поэтому я решил написать собственную интеграцию. Однако быстро понял, что это тяжело, так как нужно знать все нюансы amoCRM. Я нашел библиотеку для работы с API, реализовал решение, но результат мне не понравился: поля не вычитывались, авторизация не работала, и наш сервис сильно тормозил.
В итоге мы отказались от монолитной архитектуры и решили заказать разработку отдельного микросервиса у нового подрядчика. В то время к нам пришел интегратор. Это компания, которая помогает бизнесу настраивать CRM-системы под его потребности и внедрять необходимые сервисы. Например, одному пользователю понадобился продукт для подписания цифровых договоров. Интегратор нашел в amoМаркете только OkiDoki и пришел к нам с запросом на сотрудничество.
У интегратора была своя команда разработчиков, поэтому мы предложили им не только продавать наш сервис, но и заняться реализацией виджета. Проект стоил уже 50 тысяч рублей, и новая команда помогла доработать существующие функции.
Разработчик интегратора убрал старый код и написал всё с нуля. Это обычная проблема, когда сотрудничаешь с разными подрядчиками: каждый специалист ругает код предыдущего разработчика и говорит, что нужно всё переделывать. Мы так переписывали виджет несколько раз.
Баги всё равно были, но мы надеялись продолжить сотрудничество с этой командой на постоянной основе. Отправили техзадание на следующий этап разработки, перевели предоплату, но три месяца ребята кормили нас завтраками, а потом перестали выходить на связь. Интеграторам неинтересно развивать виджет дальше и устранять баги, поэтому после внедрения продукта они обычно исчезают.
Создали виджет для amoCRM, у которого до сих пор нет аналогов
Сейчас мы работаем с третьей командой разработчиков. Их нам посоветовал клиент, и по рекомендации оказались самые адекватные подрядчики, с которыми мы сотрудничаем почти год.
Итерация с новой командой заняла примерно четыре месяца. В итоге мы доработали виджет, чтобы бизнес мог работать с цифровыми договорами в amoCRM. Сейчас у него такая функциональность ↓
Выставление документов по шаблонам. Договоры можно формировать и отправлять клиентам прямо из amoCRM, но предварительно нужно настроить все шаблоны документов в OkiDoki. Для этого у нас есть подборки с готовыми образцами и редактор, где их можно переработать под свои задачи.
Работа в одном окне. Интеграцию можно настроить так, чтобы пользователю не пришлось постоянно переходить в OkiDoki для выставления документов.
Чтобы создать договор прямо в amoCRM, нужно нажать специальную кнопку в карточке сделки. Виджет сгенерит ссылку, которую можно сразу отправить клиенту для подписания документа.
Договоры, которые созданы в рамках одной сделки, отображаются в карточке. Поэтому пользователю не нужно искать документы в общем списке или использовать фильтры, чтобы найти договор с конкретным клиентом.
Автоматизация процессов. Мы настроили виджет так, чтобы пользователям приходилось как можно меньше данных переносить вручную:
- Если при подписании документа клиент вносит свои данные, то эта информация сразу загружается в сделку в amoCRM. Также человек может прикрепить к договору скан паспорта, после чего сервис проверит его подлинность.
- В amoCRM можно настроить триггер, чтобы сделка автоматически переходила на следующий этап, когда меняется статус договора. Например, если клиент подписал документ, то воронка продвинется со стадии «Согласование договора» на «Успешно реализовано».
- Еще один триггер позволяет автоматически создавать договор, когда сделка переходит на новый этап. К примеру, после того, как менеджер прислал клиенту в WhatsApp сообщение с условиями работы.
- По умолчанию поля в сделке и договоре сопоставляются по названию, но можно настроить собственные связи. Тогда информация из amoCRM будет сразу переноситься в формируемый документ.
За год разработки виджет стал нашим отдельным продуктом. Мы рекламируем его в amoМаркете, где пользователи находят OkiDoki и интегрируют в свою систему. Это можно сделать самостоятельно по нашему видеоуроку.
Еще к нам часто приходят интеграторы и просят партнерку, если у их клиентов есть запрос на сервис для подписания цифровых документов. Обычно мы даем разработчикам рефералку.
Наш виджет уже готов к работе: можно установить его в amoCRM и сразу выставлять клиентам документы на подпись. В следующей итерации планируем добавить возможность загружать PDF-файлы и хранить их в системе, чтобы пользователи могли подписывать договоры не только по шаблону.
Интеграция amoCRM и OkiDoki оказалась актуальной для разных бизнесов. Например, виджетом пользуются посуточники, туристические агентства, компании по аренде автомобилей и банкетных залов.
А какую CRM-систему используете вы? В ней есть модуль для подписания документов?