Вебхук на внешний URL
Отправляет запрос на любой внешний URL с параметрами в JSON, форме или строках ключ=значение и возвращает ответ с возможностью разбора результата.
Для кого и какую проблему решает
Робот полезен для интегратора, которому нужен внешний запрос с разбором JSON-ответа. Внешний сервис возвращает большой ответ, а процессу нужен один номер созданного объекта. Робот отправляет параметры в согласованном формате и может извлечь значение по указанному пути.
Что делает и когда применять
Робот полезен, когда из бизнес-процесса нужно вызвать внешний сервис: отправить данные в стороннюю систему, дернуть webhook, проверить статус во внешнем API или запустить действие в другом приложении.
Что делает робот: выполняет HTTP-запрос на указанный URL с выбранным методом. Параметры можно задать тремя способами: JSON-объектом, строками вида «ключ=значение» или сырым телом запроса. Для GET-запроса параметры уходят в query string, для остальных: в тело как JSON или form-urlencoded.
Что подготовить
Нужен установленный робот из приложения «CRM роботы 2.0 + AI», право настроить нужный процесс и доступный внешний сервис с известным вам контрактом. Передавайте только те данные, которые разрешено отправлять выбранному получателю.
Сверьте контракт вашего сервиса. Выберите один способ передачи параметров: JSON, строки ключ=значение или сырое тело. Проверьте ожидаемую структуру ответа и путь к нужному значению на учебном ответе.
Как настроить и использовать
- Откройте автоматизацию нужной сущности и выберите стадию, на которой нужен робот «Вебхук на внешний URL». В шаблоне бизнес-процесса добавьте одноимённое действие.
- Сверьте контракт вашего сервиса. Выберите один способ передачи параметров: JSON, строки ключ=значение или сырое тело. Проверьте ожидаемую структуру ответа и путь к нужному значению на учебном ответе.
- Заполните URL, Метод (GET, POST, PUT, PATCH, DELETE), Формат параметров запроса, Заголовки (JSON или ключ=значение с новой строки), Параметры (JSON), Формат ответа, Путь к значению в ответе (например result.items.0.id), Таймаут (сек). Для рабочего сценария подставьте значения полей документа или результаты предыдущих действий вместо учебных данных ниже.
- Проверьте обязательные поля и варианты выбора в таблице настроек. Сохраните действие и свяжите его результаты с дальнейшими условиями процесса.
- Выполните пробный запрос к собственному учебному сервису. Сначала проверьте HTTP-код, затем тело ответа и нужное вам бизнес-условие. Для запросов с побочным действием заранее предусмотрите защиту от повторов со стороны сервиса.
Параметры робота
Имена полей ниже совпадают с настройками действия. Значения из таблицы относятся к самому роботу; результаты предыдущих шагов выбирайте через подстановку значения в редакторе.
| Поле в настройках | Что передать | Обязательность и исходное значение |
|---|---|---|
URL (url) |
Формат: строка. | Обязательно. Значение по умолчанию в настройках не задано |
Метод (GET, POST, PUT, PATCH, DELETE) (method) |
Формат: выбор из списка. Варианты: GET: GET; POST: POST; PUT: PUT; PATCH: PATCH; DELETE: DELETE. | Необязательно. По умолчанию: POST |
Формат параметров запроса (request_format) |
Формат: выбор из списка. Варианты: auto: Определить автоматически; form: Форма (ключ и значение); json: JSON; raw: Сырое тело. | Необязательно. По умолчанию: auto |
Заголовки (JSON или ключ=значение с новой строки) (headers) |
Формат: текст. | Необязательно. Значение по умолчанию в настройках не задано |
Параметры (ключ=значение с новой строки) (params) |
Формат: текст. | Необязательно. Значение по умолчанию в настройках не задано |
Параметры (JSON) (params_json) |
Формат: текст. | Необязательно. Значение по умолчанию в настройках не задано |
Сырое тело запроса (если параметры не заданы) (body) |
Формат: текст. | Необязательно. Значение по умолчанию в настройках не задано |
Формат ответа (response_format) |
Формат: выбор из списка. Варианты: auto: Определить автоматически; json: JSON; text: Текст. | Необязательно. По умолчанию: auto |
Путь к значению в ответе (например result.items.0.id) (result_path) |
Формат: строка. | Необязательно. Значение по умолчанию в настройках не задано |
Таймаут (сек) (timeout) |
Формат: строка. | Необязательно. Значение по умолчанию в настройках не задано |
Учебный пример
Пример показывает способ настройки на вымышленных данных и ожидаемый смысл результата; это не отчёт о запуске на вашем портале.
- URL (
url):https://example.com/integration/orders. - Метод (GET, POST, PUT, PATCH, DELETE) (
method):POST. - Формат параметров запроса (
request_format):json. - Заголовки (JSON или ключ=значение с новой строки) (
headers):{"Content-Type":"application/json"}. - Параметры (JSON) (
params_json):{"order":"demo-501"}. - Формат ответа (
response_format):json. - Путь к значению в ответе (например result.items.0.id) (
result_path):result.id. - Таймаут (сек) (
timeout):15.
Заголовки (JSON или ключ=значение с новой строки) (headers)
Копируйте в это поле только содержимое блока, без названия поля и внешней обёртки со всеми настройками. Здесь нужен JSON-объект в фигурных скобках. Пустой объект {} и массив [] имеют разный тип. Ключ объекта является названием HTTP-заголовка, значение строкой. Content-Type в примере объявляет JSON-тело; требуемые вашим сервисом заголовки добавляйте по его документации. Реальные ключи доступа подставляйте из защищённых настроек и не публикуйте в примерах.
{
"Content-Type": "application/json"
}
Параметры (JSON) (params_json)
Копируйте в это поле только содержимое блока, без названия поля и внешней обёртки со всеми настройками. Здесь нужен JSON-объект в фигурных скобках. Пустой объект {} и массив [] имеют разный тип. Это объект параметров именно вашего внешнего сервиса. Ключ order приведён для учебного получателя; робот не создаёт такой контракт у произвольного API. Замените названия и типы значений по контракту своего сервиса. Не заполняйте одновременно другой формат параметров без проверки правил выбранного режима.
{
"order": "demo-501"
}
Если учебный сервис вернёт {"result":{"id":"ext-17"}}, путь result.id извлечёт ext-17. Домен example.com обозначает пример адреса. Реальное наличие такого ответа и допустимость запроса определяются вашим внешним сервисом.
Какие данные возвращает и что делать дальше
| Результат | Какое значение получает следующий шаг |
|---|---|
Код ответа (status_code) |
строка |
Успешный HTTP-ответ (is_http_success) |
да/нет |
Тело ответа (response_body) |
строка |
Ответ как JSON (response_json) |
строка |
Заголовки ответа (JSON) (response_headers) |
строка |
Результат в выбранном формате (formatted_result) |
строка |
Извлеченное значение (extracted_value) |
строка |
Ошибка выполнения (error) |
строка |
Передайте «Извлеченное значение» в поле внешнего ID только после проверки «Успешный HTTP-ответ» и ошибки. При изменении структуры ответа исправьте путь, сохраняя полный ответ для разрешённой вам диагностики.
Ошибки и ограничения
Код HTTP отражает ответ внешнего сервиса, а не автоматически результат вашей бизнес-операции. Проверяйте тело ответа по правилам этого сервиса. При ошибке авторизации уточните доступ; при превышении ожидания сначала сверьте, не выполнилась ли операция на стороне получателя. Заголовки и тело могут содержать закрытые данные, поэтому не переносите их без проверки в публичные комментарии.