Шаг «HTTP-запрос»
Шаг «HTTP-запрос» доступен в контекстных и фоновых автоматизациях. Он отправляет запрос во внешний сервис, ожидает ответ и сохраняет выбранные данные в переменные.
Настройте запрос
Откройте настройки HTTP-запроса в правой панели. Здесь показан краткий обзор. Нажмите «Настроить запрос» или значок карандаша, чтобы открыть окно с методом и адресом.
В разделах «Параметры URL» и «Заголовки» нажмите «Добавить»: название и значение заполняются в отдельном окне. Карандаш рядом со строкой снова открывает её для редактирования, корзина удаляет строку. Длинные списки раскрываются кнопкой «Показать все».
Для POST, PUT, PATCH, DELETE и OPTIONS откройте окно «Тело запроса» и выберите JSON, текст или форму. Поля формы также добавляются и редактируются по одному. GET и HEAD отправляются без тела.
Кнопка «Сохранить» в окне применяет заполненные данные к настройкам шага. «Отмена», крестик или Escape закрывают окно без изменений. После настройки сохраните сам шаг кнопкой в правой панели.
Ключ API можно указать в заголовке напрямую или взять из переменной проекта. Например, заголовок Authorization со значением Bearer {{project.crm_token}}. Параметры URL и поля формы кодируются автоматически.
Для JSON сначала задайте корректную структуру, затем вставляйте переменные:
{
"customer_id": "{{run.customer_id}}",
"enabled": "{{project.crm_enabled}}"
}
Если переменная занимает строку JSON целиком, сохраняется её исходный тип, включая число, boolean, null, массив или объект. При вставке внутрь текста получается строка. Содержимое переменной не выполняется повторно как шаблон. Числа, записанные прямо в JSON-теле, отправляются без округления, в том числе большие числовые идентификаторы.
Сохраните ответ
В разделе «Сохранить ответ» нажмите «Добавить», чтобы открыть окно сохранения ответа в переменную. Выберите JSON, текст ответа, код HTTP или заголовок, затем переменную назначения. Каждое правило показано в панели короткой строкой; карандаш открывает его для редактирования.
Для JSON выберите «Отдельное поле» или «Весь JSON». Путь можно ввести вручную. Справа от «Путь в JSON» кнопка «Выбрать поле из примера» открывает окно, где можно получить ответ пробным запросом или вставить JSON вручную. Нажатие поля в дереве подставляет путь в текущее правило и возвращает в окно «Сохранить ответ». Выбранная переменная назначения остаётся прежней.
Путь /data/items/0/id выбирает id первого элемента массива. Выбор «Весь JSON» сохраняет ответ целиком. В имени поля символ / обозначается как ~1, а ~ — как ~0. Числа, false, null, массивы и объекты сохраняют свой тип. Выберите подходящую переменную и, если нужно, её вложенное поле. Для отсутствующего JSON-поля или некорректного JSON успешный HTTP-ответ завершает шаг ошибкой сохранения.
Контекстная автоматизация может записывать переменные процесса, проекта, лида и диалога. Фоновая — процесса и проекта. Все выбранные постоянные переменные сохраняются одной операцией: при ошибке записи частичного результата не будет. Если запись не удалась после успешного HTTP-запроса, повторная обработка использует сохранённый ответ.
Настройте ошибки и повторы
Откройте окно «Дополнительно», чтобы изменить время ожидания и число попыток.
У шага всегда два выхода: «Успех» и «Ошибка». Коды 200–299 считаются успехом, если выбранные данные удалось сохранить. Ошибка запроса или сохранения направляет выполнение по выходу «Ошибка». Сначала сохраняются доступные выбранные поля ответа; отсутствующие JSON-поля, заголовки и неполученный ответ пропускаются. Затем выполняется выход «Ошибка». Если он не подключён, процесс останавливается с ошибкой, а уже полученные данные остаются в переменных. Для проверки результата удобно отдельно сохранять код HTTP.
Время ожидания — от 1 до 30 секунд на запрос вместе с повторами. По умолчанию запрос выполняется один раз. Можно разрешить до трёх попыток при сетевых сбоях и ответах 408, 425, 429 или 5xx. Повторы подходят для безопасных повторных запросов или сервисов, поддерживающих Idempotency-Key. Заданный в заголовках Idempotency-Key сохраняется. Если вы его не указали, система добавит свой. Один ключ используется для всех попыток шага. При неизвестном результате после обрыва связи с сервисом доставки автоматическая повторная отправка запрещена: сначала проверьте результат во внешнем сервисе.
Отправка использует ограничения сервиса вебхуков: проверку адреса, защиту от доступа во внутреннюю сеть, лимиты частоты и размера ответа. Перенаправления автоматически не выполняются. В рабочем окружении адрес должен использовать HTTPS.
Код HTTP, длительность, число попыток и ошибка относятся к выполнению этого шага и видны в истории автоматизации. Заголовки запроса и ключи не добавляются в результат шага.
Проверьте шаг
В окне «Сохранить ответ» нажмите «Выбрать поле из примера» справа от «Путь в JSON», чтобы открыть окно выбора поля из ответа. Для отправки запроса перейдите на вкладку «Запрос». Поле «Пробный запрос» содержит копию метода, адреса, заголовков и тела из настроек шага. Меняйте её прямо здесь или вставьте готовый HTTP-запрос с полным адресом либо cURL. Можно вставить только JSON-тело: метод, адрес, параметры URL и заголовки возьмутся из шага. Чтение файлов и команды оболочки в cURL не выполняются.
Замените нужные переменные тестовыми значениями прямо в запросе. Например, вместо "{{run.order_id}}" укажите 101. Оставленный {{run.order_id}} отправится как текст, без подстановки; это относится и к project, и к другим переменным. Если переменная задаёт адрес самого сервиса, замените её полным адресом. Отдельно заполнять run или trigger не нужно. Правки в этом окне не сохраняются в настройках шага; кнопка «Из настроек шага» возвращает исходный запрос.
Нажмите «Выполнить запрос». Это настоящая отправка во внешний сервис: например, POST может создать запись. Выполняется только пробный запрос, один раз. Переменные не меняются, соседние шаги не запускаются, а результат проверки не попадает в историю и статистику процессов автоматизации.
В ответе видны код HTTP, время, заголовки и дерево JSON с полями, типами и значениями. Нажмите поле, объект, массив или «Весь JSON»: путь заполнится автоматически в текущем правиле. Сохранение правила меняет только настройки шага. Для текста, кода HTTP или заголовка выберите соответствующий источник в окне «Сохранить ответ».
Пример сохраняется на сервере отдельно для каждого HTTP-шага и доступен участникам проекта с доступом к автоматизациям. При повторном открытии, перезагрузке страницы или переходе на другое устройство загружается сохранённый пример. Он общий для всех правил «Сохранить ответ» этого шага и не входит в опубликованную автоматизацию. Хранится один пример размером до 262 144 символов; большие числовые ID сохраняются без округления.
JSON из пробного запроса сохраняется автоматически. Вставленный вручную JSON сохраняется при выборе поля, закрытии окна или нажатии «Сохранить пример». Некорректный JSON не заменяет сохранённый пример; «Закрыть без сохранения» отменяет ручные изменения. «Удалить пример» очищает пример этого шага.
Если пример уже изменили в другом окне, перезапись не произойдёт: нажмите «Загрузить сохранённый пример». Если ответ получен, но его пример не удалось сохранить, повторять запрос к сервису не нужно — нажмите «Сохранить пример».
При изменении пробного запроса прежний результат скрывается на вкладке «Запрос». Выполните запрос снова, чтобы получить новый ответ. Сохранённый пример на вкладке «Пример ответа» остаётся доступным и заменяется новым JSON-ответом или ручным вводом.
Запрос выполнять необязательно. На вкладке «Пример ответа» можно вставить свой JSON-ответ; ручной ввод пути в правиле также доступен. /json/order нужен только тогда, когда сервис действительно вернул объект json с полем order. Обязательного префикса /json нет.
Тестовый запуск всей автоматизации отправляет настоящий запрос во внешний сервис. Ответ можно сохранить в переменные процесса теста; переменные проекта, лида и диалога при тесте не меняются.