Задача:
Сделать интеграцию с Creatio CRM для сайта на конструкторе Webflow. Чтобы при заполнении любой формы на сайте в Creatio CRM создавался контакт, если его нет, и создавался лид с привязкой к контакту.
Реализация:
Из-за ограничений Webflow, которое заключается в том, что скрипт можно разместить только на странице сайта, скрипт интеграции нельзя размещать на странице, т.к. он содержит конфиденциальные данные от Creatio CRM.
Чтобы обеспечить конфиденциальность и защиту данных заказчика было принято решение реализовать интеграцию на сетевом приложении Node JS и фреймворке Express JS, написанном на языке JavaScript. К приложению был привязан домен, на который приходили данные вебхука от Webflow, после удачного заполнения формы на сайте.
Приложение принимало и обрабатывало данные заполненной формы из вебхука от Webflow, и далее в несколько шагов, используя API от Creatio CRM, совершались следующие действия приложения:
1. Поиск контакта по номеру телефона в Creatio CRM, используя номер телефона из заполненной формы на сайте;
2. Извлекался уникальный ID из найденного контакта. Если контакт не найден, то контакт создавался, с извлечением ID созданного контакта;
3. Создавался новый лид с именем контакта и привязкой к контакту, используя уникальный ID контакта.
Сложности, с которыми столкнулись:
Изначально приложение было размещено на хостинге с поддержкой Node JS приложений, но из-за ограничений хостинга приложение работало некорректно, хотя на тестовом компьютере приложение работало правильно.
Чтобы избавиться от ограничений хостинга было принято решение разместить приложение на сервере Amazon. Развернули сервер на Amazon, вместе со средой разработки Node JS и фреймворком Express JS, на который перенесли приложение.