Статьи по теме: Подключения

Настройка исходящего HTTP Запроса на примере autoCRM

Общая информация


HTTP Запрос — механизм оповещения о событиях. Технология используется, чтобы передать данные о произошедшем событии из одной системы в другую, например: покупатель оставил комментарий, и уведомление об этом приходит в рабочий чат клиентского отдела; поступил новый заказ и необходимо получить расчет стоимости доставки от ТК; у пользователя подходит к концу срок подписки и нужно создать для менеджера задачу в CRM на пролонгацию.


Как можно было заметить, во всех приведенных примерах передача данных подразумевает выполнение какой-либо операции в принимающей системе. То есть происходит вызов конкретной функции и передача в нее требуемых параметров. Допустим, для запуска функции создающей запись на прием потребуются — id сотрудника к которому создается запись, дата, время, контактные данные клиента, и конечно же, нужен адрес самой функции.


Мы подошли к составляющим HTTP Запроса, определяющих, что, как и куда будет отправляются при наступлении заданного события. Разберем их подробнее.


URL — адрес выполняемой функции, в которую передаем данные. Так, функция создать новый контакт может иметь адрес http://example.com/create/contact, а функция обновить заказ — http://example.com/update/order.


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


Тело запроса — здесь передается информация о самом событии: когда произошло, какие поля заполнены, какие в них значения и т.д. Данные всегда представляют собой пары из «ключа» (имя поля) и «значения» (его содержимое). Чтобы правильно задать ключи, нужно понимать, какую именно структуру объекта с данными ожидает получить вызываемая функция. Объекты могут быть простыми и иметь вложения в виде других объектов и/или массивов. Содержимое объектов обособляется фигурными скобками: «{объект}»; а массивов — квадратными: «[массив]». Для обращения к ключам из простого объекта, достаточно указать их имена. Чтобы обратиться к ключу находящемуся во вложенном объекте, нужно через «.» указать сначала имя дочернего объекта а затем уже имя ключа. С вложенными массивами работает тот же принцип, но для указания нужного элемента массива используются не имена а порядковые номера, которые начинаются с «0». Разберем на примерах:





Независимо от структуры данных, при передаче запроса, «упаковать» их можно по разному. На это влияют метод запроса и один из обязательных заголовков — Content-type.


Метод запроса — наиболее распространенными методами запросов являются GET и POST. Можно провести следующую аналогию: GET — такая почтовая открытка, где вся информация написана на ней же, рядом с адресом, и POST — как обычное письмо, которое всю информацию содержит внутри себя.


Content-type (тип данных) — один из обязательных заголовков запроса. Мы будем работать с двумя вариантами его значения: urlencoded — объединяет все данные в одну строку; JSON — данные передаются в формате объекта.


Предварительный итог: чтобы отправить запрос, нужно знать URL вызываемой функции и вводные данные которые она ожидает получить. Данные записываем в ключи, имена ключей указываем согласно структуре объекта, ожидаемого функцией. Указываем Content-type для передаваемого запроса и метод. Возможны самые разные комбинации и комбинированные варианты методов с типами данных. Всю информацию о требуемых настройках запроса можно получить в документации принимающего сервиса.


Создание подключения


Рассмотрим создание и настройку исходящего вебхука. В качестве примера возьмем ситуацию, когда через форму ВК собираются заявки от клиентов на тест-драйв. Действие может быть любым, важно, что форма рассчитана на какой-то один, конкретный тип обращения.


Подключение ВКонтакте к Albato


Нажимаем в верхнем меню «Подключения» и кликаем по кнопке «Добавить подключение»:



В открывшейся форме выбираем «HTTP Запрос», нажимаем «Добавить подключение»:



Заполнение полей HTTP Запрос


В открывшейся форме заполняем все поля:


  • Название — указываем любое;

  • Параметры HTTP-запроса (тело запроса) — параметры могут отличаться в зависимости от действия, которое необходимо совершать: например, добавить автомобиль или найти его по VIN, создать новый контакт или запись на сервисное обслуживание (указывается в request_type_id). Полный перечень действий и необходимых для них полей, можно получить у представителей autoCRM;

  • Заголовки — указываем параметр Authorization;

  • Content-Type — Json.


Пример заполненных полей:



Создание связки


Во вкладке «Мои связки» нажмите кнопку «Создать связку», выберите «Новая»:



Откуда


Выберите в первом выпадающем списке сервис «ВКонтакте», во втором — событие «Заявка с формы (ответы как отдельные поля)» и в последнем списке укажите необходимое подключение. Указываем в «Дополнительных параметрах подключения» нужную группу и форму:



Режим работы связки


Чтобы получать новые заявки, выбираем «В реальном времени». Подробнее про режим «Миграция данных» можно прочитать в инструкции.



Куда


Выберите в первом выпадающем списке «HTTP Запрос», во втором — событие «Отправить запрос» и в последнем списке укажите необходимое подключение:



Настройка полей


  • Урл — оставляете пустым, будет использован урл указанный в подключении;

  • Метод запроса — POST;

  • Authorization (заголовок) — Basic, является результатом кодирования строки «логин:пароль» алгоритмом MIME base64 (например, для логина «admin» и пароля «password» будет равен «YWRtaW46cGFzc3dvcmQ=» https://prnt.sc/110zy6h;

  • last_name, first_name, phone, email — заполняем соответствующими значениями из блока ВК в выпадающих списках.

  • dealer_code — это поле так же заполняются на основе данных, поступивших от клиента через форму ВК, но пока оставим его пустыми, вернемся к нему позже;

  • brand_id, model_id — эти поля заполняем статичными значениями, т.к. подразумевается, что будет настроен фильтр входящих данных, и связка будет запускаться только если заявка пришла конкретно на эти марку и модель автомобиля;

  • request_type_id — указывается id типа обращения;

  • source_id — внутренний id источника заявки.


Все внутренние id можно получить непосредственно в autoCRM, описание этого процесса выходит за рамки данной инструкции.


Все задаваемые настройки можно будет изменить в конструкторе связки. Пример заполненных полей:



Дополнительные настройки связки


Чтобы корректно передавать данные в поле dealer_code, необходимо получаемое текстовое значения (название дилера) сопоставить с внутренними id autoCRM. Воспользуемся одним из инструментов Albato. Под первым шагом нажимаем на «+», что означает добавить шаг, и выбираем «Инструмент».



В открывшемся списке выбираем «Табличная замена», опускаемся вниз и нажимаем «Далее».


Для начала выполним сопоставление значений для поля «dealer_code»:


  • название — задаем имя переменной которая будет доступна как результат работы нашего инструмента;

  • значение — выбираем в выпадающем списке из блока «ВКонтакте» поле, в котором приходит название дилерского центра;

  • добавляем условие.



Создайте такие условия для всех дилерских центров в autoCRM которые планируете использовать. В поле «Иначе» указывается значение, которое будет передано в результат работы инструмента, если ни одна пара не будет найдена.


Зайдите в настройки шага «Отправить webhook»:



В поле «dealer_code», в качестве передаваемой переменной, укажите результат работы инструмента табличная замена:



Теперь настроим, упомянутый выше, фильтр входящих данных. Кликните по иконке воронки на панели первого шага:



Создаем группу условий. Указываем данные из каких полей будут сравниваться с контрольными значением. В условиях используем оператор «равно». Чтобы проверялось выполнение обоих условий, между ними должен быть оператор «И». Нажмите «Сохранить»:



Заключение


Все настройки сделаны. Можно запускать и тестировать связку. При поступлении новой заявки через форму ВК будет отправляться запрос на необходимое действие в autoCRM.


Подключение HTTP Запроса предоставляет, пожалуй, самый гибкий инструментарий для передачи данных. В зависимости от ваших целей, реализация функционала может отличаться. Например, формы в ВК могут быть сформированы не по типу обращения, а для конкретных дилеров в отдельности, тогда поле dealer_cod нужно будет прописать статично; если поля марки и модели автомобиля будут выбираться в выпадающих списках формы, то уже для них потребуется табличная замена, а фильтр запуска связки можно будет настроить по полю типу обращения.


Если клиент выбирает доступные дилерские центры, тип обращения, марку и модель в одной форме ВК, то можно ограничиться и вовсе одной связкой: создать шаги с табличными заменами для всех этих полей, и передавать значения в autoCRM динамически.

Последнее изменение: 18/10/2022

Была ли эта статья полезна?

Поделиться отзывом

Отменить

Спасибо!