Решена проблема переноса данных между веб-сервисами
Статья будет полезна всем, кто озадачен проблемой переноса данных из сервиса в сервис с их параллельной обработкой и автоматизацией деловых процессов. Вариант решения предложили в Пинол.
За 10-ти летний опыт внедрения CRM, мы в Пинол пришли к выводу, что нет продукта, способного закрыть ВСЕ боли бизнеса. Нет на 100% универсального ПО — каждый продукт хорош со своей стороны и нельзя угнаться за всеми тенденциями в функционале на рынке.
Практически все наши клиенты обращаются с задачей настройки интеграции между веб-сервисами, которые они используют (сервис рассылок или интернет-банкинг интегрировать с CRM и т.д.). Не всегда нам удавалось закрыть эти боли — не все сервисы имеют готовые модули с возможностью интеграции.
Но мы нашли выход — сами разработали платформу для интеграций между веб-сервисами. Для пользователя все просто: нужно зарегистрироваться в личном кабинете Пинкит и выбрать нужную интеграцию. Если в списке нет готового сервиса — пишите, обсудим доработку.
Идея продукта
Идея продиктована клиентами Пинол — все используют разные сервисы и нужен обмен данными между ними. Тут есть как минимум 2 выхода:
- мириться с недостающим функционалом и переносить все вручную,
- разрабатывать кастомную интеграцию для каждого заказчика
Первый вариант не подходит — клиент не хочет тратить время и мириться с ошибками при переносе. А второй скрывает ряд существенных недостатков:
- дорого — решение проектируется и изготавливается с нуля;
- ресурсоёмко — как правило, нет возможности разворачивать интеграции клиентов на мощностях интегратора (в том числе из-за проблем с учетом и оплатой этих мощностей уже после реализованной интеграции). Далеко не все заказчики могут выделить ресурсы и самостоятельно заниматься поддержкой;
- сложность масштабирования — каждое похожее решение в таком сценарии разворачивается отдельно и так же отдельно должно поддерживаться, что сводит на нет человеческие ресурсы компании.
Каждый раз сталкиваясь с этими недостатками, в Пинол решили, что нужна своя платформа для различных интеграций. Такой внешний независимой сервис должен, как подушка для иголок, стать точкой входа / выхода для них - уметь принимать данные из одного сервиса и корректно передавать их в другой.
Сервис решает проблемы разработки отдельных интеграций для разных веб-сервисов и предусматривает возможность расширения для новых интеграций на будущих проектах.
Что такое Пинкит 2.0
Пинкит 2.0 — это платформа, которая позволяет настроить интеграцию между двумя разными сервисами, имеющими REST API.
То есть, платформа позволяет реализовать как единоразовую миграцию данных из сервиса А в сервис Б, так и передачу данных из сервиса в сервис по событию.
Помимо этого, платформа позволяет реализовать сценарии со сложной логикой, где требуется фильтрация исходных данных из сервиса А, обработка этих данных посредством фильтрации, перебором с дополнительными произвольными http-запросами к сервисам A или Б c записью ответов и возможностью использовать эти ответы на последующих шагах обработки или при сопоставлении данных для передачи в сервис Б.
Функционал
Доступы к различным сервисам
Предлагаем рассмотреть на примере первое и основное - доступы к сервисам. Они добавляются в одноименном разделе:
В разделе "Интеграции" проходит основная работа с сервисом. Здесь есть список всех ваших интеграций и базовых функций:
Рассмотрим интеграцию между CRM Битрикс24 и сервисом рассылок Юнисендер:
В правой части отображен статус интеграции. Статусов может быть 3:
- Активная - интеграция настроена и работает
- Пауза - работа интеграции приостановлена (соответствующей соседней кнопкой на панели можно приостановить интеграцию и запустить вновь)
- Черновик - интеграция настроена не до конца, то есть в процессе настройки не пройдены все шаги и на финальном шаге не произведен запуск
Для управления процессом импорта / экспорта есть такие интуитивные кнопки:
- Пауза/Запуск - приостановить/запустить интеграцию
- Настройки - возвращаемся к настройке текущей интеграции по шагам с возможностью исправить и перезапустить интеграцию или оставить черновиком.
- Копировать
- Удалить
В левой части - кнопка перехода в Журнал интеграции.
В журнал попадает ответ сервисов на все запросы платформы Пинкит 2.0
Есть возможность поиска по тексту запроса, датам ответа, и типу ответа.
Настройка
Простую интеграцию на платформе Пинкит 2.0 сможет настроить даже начинающий пользователь. По поводу реализации сложных сценариев можно обратиться в техподдержку платформы.
Рассмотрим настройку интеграции по шагам на примере Обратной интеграции из сервиса Unisender в Битрикс24. Настроим возврат статуса и веб-версию письма, отправленного клиенту из сервиса рассылок Unisender - в Битрикс24.
На Шаге 1 осуществляется подключение сервиса А, событие для отправки данных и базовая фильтрация.
Выбираем один из сервисов, представленных на платформе. Затем выбираем одно из предложенных событий, после которого отработает дальнейший сценарий интеграции.
Выбираем подключение - это ранее подключенный нами сервис во вкладке "Доступы".
Выбираем фильтры. Часть фильтров выводится в интерфейсе (в данном случае это статус письма).
Если требуется дополнительная фильтрация, то можно добавить пользовательский фильтр.
В окне настройки пользовательского фильтра выберем его тип:
- Запрос - применяется в get-параметрах запроса.
- Тело - применяется в теле запроса.
- Ответ - применяется при чтении данных полученных из ответа сервиса
А также название параметра и его значение для фильтрации:
На Шаге 2 можно провести многошаговую обработку данных.
Для этого добавим шаг соответствующей клавишей, есть возможность выбрать из представленных типов шагов:
Далее настроим шаг обработки. Таким образом будет выглядеть Поиск контактов по е-mail в Битрикс24 для письма, выгруженного из Unisender.
Таким образом, по шагам можно выстроить логику обработки данных при интеграции двух сервисов.
На Шаге 3 укажем сервис Б, целевое действие в сервисе, и подключение из вкладки "Доступы".
На Шаге 4 происходит сопоставление данных сервиса А, сервиса Б, а также ответов, полученных на шаге 2 при обработке данных:
Если сопоставления по выведенным в интерфейс полям не достаточно, есть возможность добавить пользовательское сопоставление соответствующей кнопкой:
Таким образом будет настроено сопоставление пользовательского поля Битрикс24 и веб-версии письма Unisender, полученного при обработке данных на шаге 2.
На Шаге 5 указываем название интеграции и запускаем. Готово!
Если вам интересно, чем Пинкит лучше, чем Zapier или Albato, пишите в комментариях.