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

Настройка исходящего 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 Запрос

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

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

Урл — https://examle.autocrm.ru/api/lms/interest, где examle — домен вашей autoCRM;

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

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

Content-Type — Json.


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



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



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



Откуда

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



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

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



Куда

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



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

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

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

Заголовок User-Agent — Mozilla/5.0 (compatible; Albato/1.0; +[https://albato.ru/bot](https://albato.ru/bot));

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. Под первым шагом нажимаем на «+», что означает добавить шаг, и выбираем «Инструмент».



В открывшемся списке выбираем «[Табличная замена](https://blog.albato.ru/changing-data-on-the-fly-in-albato/)», опускаемся вниз и нажимаем «Далее».

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

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

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

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




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

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



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



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



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



Заключение



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

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

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

Обновлено на: 18/10/2022

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

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

Отменить

Спасибо!