Наименование организации:
ООО «Мой Софт»
40702810310000021416
Расчетный счет:
АО «ТИНЬКОФФ БАНК»
Банк:
044525974
БИК:
781101001
Корреспондентский счет:
7811616280
ИНН:
781101001
КПП:
1167847299410
ОГРН:
ОКПО:
03614300
Бесщетников Антон Игоревич
Генеральный директор:
192019, г. Санкт-Петербург, ул. Мельничная, д. 18, литер А, пом. 18-H 10, оф. 805
Юридический адрес:
Почтовый адрес:
192019, г. Санкт-Петербург, а/я 2
Реквизиты компании ООО «Мой Софт»
Инструкции и промпты

Вебхук для ИИ-агента: запрос во внешнюю систему

Как настроить исходящий вебхук у ИИ-агента Савви: разница переменных и констант действия, переменные в URL, поведение при ошибке и таймауте, отладка вызовов.

Команда платформы СаввиОбновлено 15 сентября 20267 мин чтения
Пластилиновая рука из чат-пузыря тянется к складской полке за карточкой остатка, край полки коралловый
Коротко

Вебхук — это шаг действия, которым агент Савви сам обращается к вашей системе по HTTP: адрес, метод, заголовки авторизации и тело запроса задаются в настройке. Переменные действия агент собирает у клиента, константы действия заданы один раз и хранят токен или логин. Переменные подставляются и в URL, лимит вызовов одной функции — 10 за диалог, а на случай ошибки заранее задаётся текст, который получит клиент.

Клиент спрашивает, остался ли нужный размер на складе. Остатки лежат в своей учётной программе, для которой готовой кнопки подключения в Савви нет и не будет: система собрана под конкретный бизнес и больше нигде не встречается. Проверить остаток на месте, прямо в переписке, получится, если агент сам умеет постучаться в эту программу и получить ответ.

Что такое вебхук в действии агента и когда он нужен

Вебхук — тип шага в действии агента, который отправляет HTTP-запрос на указанный вами адрес: с методом GET или POST, заголовками и телом запроса, если метод их подразумевает.

Ходит запрос в обе стороны: агент передаёт наружу то, что узнал у клиента, и получает назад данные или подтверждение, которое тут же пересказывает человеку. Нужен такой шаг там, где у Савви нет отдельной кнопки подключения к сервису: собственная учётная система, внутренний склад, самописный личный кабинет, любая программа, о существовании которой платформа знать не обязана. Готовые интеграции вроде CRM или таблиц закрывают частые случаи, а вебхук закрывает то, что осталось, тем же самым способом.

Проверьте на своих диалогах.Регистрация без карты, 500 ₽ на тест по промокоду BLOG500

Собрать агента

Как настроить действие «Вебхук»

Настройка состоит из общей части действия и отдельной формы самого шага.

1 Создать действие Вкладка «Действия» → «Добавить» → тип шага «Вебхук» из группы API-вызовы.
2 Задать переменные и константы действия Переменные — то, что агент соберёт у клиента. Константы — фиксированные значения вроде токена, заданные один раз.
3 Указать адрес, метод и заголовки URL может быть доменом или IP-адресом, метод — GET, POST и другие. В заголовки обычно идёт авторизация.
4 Заполнить тело запроса Появляется для POST, PUT, DELETE и PATCH. Текст или JSON, переменные подставляются кнопкой «+», элементы JSON остаются в кавычках.
5 Назвать и описать функцию Название — латиницей и без пробелов, по нему платформа отличает один вызов от другого. Описание пишется по-русски и объясняет агенту смысл и момент вызова.

Разница между вторым пунктом и остальными и есть главная мысль всей настройки: одни значения плывут вместе с диалогом, другие стоят на месте.

Переменные действия и константы действия: где проходит граница

Переменные действия — это то, что агент собирает у клиента заново в каждом разговоре: номер заказа, город доставки, артикул товара, который спросили на складе. Каждый диалог наполняет их своими значениями.

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

!
Место для секретов — константы действия

Токен, пароль или ключ шифрования незачем собирать у клиента и незачем хранить открытым текстом в теле инструкции. Такое значение задают как константу действия один раз, и дальше оно просто выбирается на нужном шаге при каждом вызове. Логин и пароль лучше передавать в заголовке Authorization, закодированными по правилам вашего сервиса: прямая передача в адресе запроса оставляет их видимыми в открытом виде.

Переменные подставляются и в URL

Обычный случай — параметр после знака вопроса: адрес вида https://ваш-сервис.ru/sklad?артикул=ART-4521, где значение артикула агент подставляет из переменной, собранной в диалоге.

Есть и второй вариант, менее очевидный: переменную вставляют прямо в тело URL, там, где значение не выглядит как параметр запроса. Платформа заменяет обозначение переменной на реальное значение перед отправкой, поэтому адрес вида https://ваш-сервис.ru/sklad/{artikul}/ostatok уходит наружу уже с настоящим артикулом вместо обозначения. Тот же механизм работает и в остальных действиях: переменные подставляются в аргументы других шагов, в текст фоллоу-апов и в условия отбора диалогов для рассылок.

Что происходит при ошибке или таймауте ответа

Если внешний сервис не ответил кодом из ожидаемого диапазона, статус приравнивается к ошибке. По умолчанию платформа ждёт код 200, но фильтр по кодам можно убрать вовсе, и тогда агент увидит любой статус, какой бы сервис ни вернул.

На случай ошибки заранее задаётся текст в поле «Сообщение об ошибке» действия: именно его получит агент вместо ответа сервиса, и это заменяет собой любую догадку модели о том, что могло произойти. Отдельными флагами включаются уведомление менеджеру и полная остановка диалога, если ошибка критична для дальнейшего разговора. Если внешняя система из-за собственной автоматизации отвечает не сразу, перед вызовом можно поставить задержку, вместо того чтобы агент повторял запрос раньше времени.

Здесь же работает более общая страховка: флаг «Реагировать на срабатывания и ошибки» в контроле поведения не даёт агенту подтвердить клиенту то, чего он на самом деле не сделал, например записи на услугу без реального вызова функции записи. Для вебхука это правило особенно уместно: ошибка сервиса не должна превращаться в вежливое «всё готово».

10 вызовов лимит одной функции за диалог, включая вебхук
~15 стоимость диалога с обращением во внешнюю систему
~89 то же обращение силами менеджера, оценка по средним ставкам
Источник: Лимит вызовов — по руководству платформы Савви; стоимость диалога — 1000 токенов = 1 ₽; бенчмарк менеджера ~40 000 ₽/мес и 450 обращений.

Лимит в десять вызовов общий для платформы и относится к любой функции без исключений. Сценарий, где агент дёргает один и тот же вебхук на каждую уточняющую реплику клиента, упирается в этот потолок быстрее, чем кажется на старте: разумнее один вызов на один точный вопрос, а не серию проверок вдогонку.

Как проверить, что вебхук реально сработал

Журнал диалогов и продвинутый режим в разделе «Чаты» показывают вызов между строк переписки: название функции, переданные аргументы и статус выполнения. Там же видно, что именно вернул внешний сервис, текстом или структурированным ответом, и совпадает ли это с тем, что агент затем сказал клиенту.

Экспорт диалога сохраняет ту же картину отдельным файлом: полезно, когда вебхук ведёт себя странно сразу в нескольких разговорах и нужно сравнить аргументы между вызовами. Частая находка на этом шаге — параметр, переданный пустым или не тем типом: сама функция вызвалась исправно, а до неё просто не дошло значение из диалога.

Отличие от персонального канала (API) здесь принципиальное: там ваша система сама присылает сообщение агенту, это входящее направление. Вебхук в действии устроен обратным движением: инициатива остаётся у агента, и посреди разговора он сам обращается наружу за конкретным ответом. Общий разбор того, из каких полей состоит любое действие агента и как он выбирает, какую функцию вызвать, есть в статье про действия ИИ-агента: вебхук устроен по тем же правилам, просто в роли шага выступает HTTP-запрос. А если нужен готовый пример со своей учётной системой, у которой уже есть опыт похожего подключения, посмотрите статью про интеграцию с 1С: там расписана авторизация и передача аргументов на конкретном случае. Полный список настроек шага, включая коды статусов и правила ответа при нескольких шагах в одном действии, — в руководстве Савви.

Разложите свою систему на вопросы, которые чаще всего требуют доступа к ней

Разложите обращения клиентов, которые сейчас обрабатывает человек, на конкретные вопросы к вашей системе: остаток на складе, статус заявки, действующий тариф. Каждый такой вопрос — кандидат на отдельный вебхук с одной переменной и одним понятным ответом.

Начните с одного вопроса и одного метода на стороне вашего сервиса, проверьте его на десятке диалогов и только после этого решайте, какой вопрос закрывать следующим. Собственная учётная система, к которой ведёт бизнес, редко становится проще при попытке отдать агенту сразу весь её объём.

Частые вопросы

Что такое вебхук в действиях ИИ-агента Савви

Тип шага в действии агента, который отправляет HTTP-запрос на указанный вами адрес: URL, метод GET или POST, заголовки, тело запроса. Это способ обратиться из диалога к любой вашей системе, для которой в Савви нет готовой кнопки подключения.

Чем этот вебхук отличается от персонального канала (API)

Направлением. Персональный канал принимает сообщения от вашей системы к агенту, это входящий поток. Вебхук в действии — обратное движение: агент сам обращается наружу посреди диалога за данными или командой.

В чём разница между переменными действия и константами действия

Переменные действия агент собирает у клиента заново в каждом диалоге: номер заказа, город, артикул. Константы действия заданы один раз и не меняются от разговора к разговору: обычно это токен или логин для авторизации запроса.

Можно ли подставить переменную прямо в адрес запроса

Да. Переменную вставляют параметром после знака вопроса или прямо в тело URL, если сервис ожидает значение в самом адресе. Платформа заменяет обозначение на реальное значение перед отправкой.

Сколько раз агент может вызвать один и тот же вебхук за диалог

Десять раз. Лимит общий для платформы и относится к любой функции, поэтому сценарий с частыми повторными запросами к одному сервису стоит проектировать с учётом этого потолка заранее.

Что получит клиент, если внешний сервис не ответил или вернул ошибку

Ровно тот текст, который вы задали в поле «Сообщение об ошибке» действия. Отдельно включается уведомление менеджеру и остановка диалога, а флаг контроля действий не даёт агенту подтвердить результат, которого на самом деле не было.

Команда платформы СаввиПишем о том, как бизнес внедряет ИИ-агентов, на данных платформы. Обновлено 15 сентября 2026.
BLOG500
Собрать агента