Как отправить запрос на внешний API из сценария
Действие «Внешний запрос (API)» отправляет HTTP-запрос на внешний адрес прямо во время прохождения сценария: дергает сторонний API, шлет вебхук, забирает данные. Синонимы: «вебхук», «webhook», «HTTP-запрос», «интеграция по URL», «отправить данные на сервер». Поддерживает методы GET, POST, PUT, DELETE с заголовками и JS
Пошагово
- Откройте сценарий в редакторе и добавьте на холст действие «Внешний запрос (API)».
- Соедините его с предыдущим шагом (обычно это нода, которая собирает данные для запроса).
- Кликните по ноде - справа откроется панель настройки.
- В блоке «Запрос (HTTP Request)» выберите метод из выпадающего списка: GET, POST, PUT или DELETE.
- В поле адреса введите URL, например
https://api.example.com/webhook. Можно вставлять переменные через{{имя}}. - В блоке «Заголовки (Headers)» нажмите «Добавить», впишите «Ключ» (например
Authorization) и «Значение» (напримерBearer ВАШ_ТОКЕН). ЗаголовокContent-Type: application/jsonдобавляется автоматически для любого метода; при необходимости переопределите его своим значением с тем же ключом. - Если метод POST или PUT - появится поле «Тело запроса (JSON Body)». Введите JSON с переменными, например
{"email": "{{email}}", "name": "{{first_name}}"}. Для GET и DELETE тело не отправляется. - Если нужен ответ сервиса - заполните поле «Сохранить ответ в переменную» (например
api_response). После ноды используйте{{api_response}}в сообщениях и условиях. - Соедините выход со следующим шагом и сохраните. У действия один выход - отдельных веток «успех/ошибка» нет, сценарий продолжается в любом случае.
Как проверить результат запроса и ветвиться по нему?
Сама нода не ветвится. Сохраните ответ в переменную, а затем поставьте ноду «Условие» - она проверит значение переменной и разведет по нужным веткам.
Какие адреса разрешены?
Только публичные адреса, начинающиеся с http:// или https://. Запросы на внутренние адреса блокируются: нельзя обращаться к localhost, приватным сетям (10.x, 192.168.x, 172.16-31.x, 100.64-127.x), адресу облачной метадаты (169.254.169.254) и аналогичным.
Что если сервер не отвечает?
Таймаут запроса - 10 секунд. Если сервер не ответил за это время, запрос прерывается, а сценарий продолжается дальше по тому же выходу.
Если не получается
- Узел заблокирован, нельзя добавить. Тариф Free - действие доступно с Pro и выше.
- Запрос не уходит, адрес отклоняется. URL не начинается с
http://илиhttps://, либо это внутренний/служебный адрес. Проверьте, что адрес публичный и корректный. - Сервис не получил данные (метод POST/PUT). Проверьте, что поле «Тело запроса» заполнено и содержит валидный JSON. Для GET и DELETE тело не отправляется в принципе.
- В теле или URL пришел текст
{{phone}}вместо значения. Переменной нет в сессии на этом шаге. Убедитесь, что она создается нодой выше, и имя совпадает точно. - Запрос обрывается. Сработал таймаут 10 секунд. Ускорьте эндпоинт или вынесите тяжелую работу на сторону сервера.
- Сервер отвечает 401/403. Добавьте заголовок авторизации (
Authorization) с корректным токеном в блоке «Заголовки». - Переменная ответа пустая. Проверьте имя в поле «Сохранить ответ в переменную». JSON-ответ сохраняется как текст JSON, не как готовый объект.
Лимиты и тариф
Доступно на Pro, Business и Enterprise. На Free заблокировано. Ограничения:
- Только публичные адреса (http/https).
- Таймаут 10 секунд на один запрос.
- Ошибка запроса не останавливает сценарий: при неудаче выполнение идет дальше.
Смежные вопросы
Не нашли ответ?
Спросите ИИ-ассистента или напишите живой поддержке - поможем разобраться.