Как связать агента с 1С через HTTP-сервисы: что подготовить на стороне 1С, как настроить действие «Вебхук», передать аргументы и авторизацию, что писать в инструкции.
Связь агента с 1С строится через HTTP-сервисы: на стороне 1С публикуется веб-сервис с нужными методами, а в агенте создаётся действие «Вебхук», которое их вызывает. Для настройки нужны URL метода, список заголовков и способ авторизации. Аргументы — например, номер заказа — передаются через переменные действия, а вызов функции описывается в инструкции агента одной фразой.
У компаний, которые живут в 1С, диалог про статус заказа устроен одинаково: клиент спрашивает, менеджер открывает базу, ищет по номеру, возвращается в переписку. Данные есть, они актуальные, просто между ними и клиентом стоит человек с двумя окнами.
Развязывается это не переносом данных куда-то ещё, а доступом к ним по запросу.
1С позволяет опубликовать веб-сервис — набор методов, через которые внешняя программа получает данные из базы по HTTP.
Дальше агент работает с этим методом как с обычной функцией: клиент называет номер заказа, агент вызывает действие, передаёт номер, получает ответ и пересказывает его человеку. То, какие данные доступны и в каком виде, определяется при проектировании API на стороне 1С — платформа их не придумывает и не расширяет.
Строится такой доступ обычно по принципам REST, но конкретная реализация — вопрос проектирования.
Проверьте на своих диалогах.Регистрация без карты, 500 ₽ на тест по промокоду BLOG500
Собрать агентаРазговор с программистом 1С займёт пять минут, если прийти с готовым списком.
| Что нужно | Зачем | Что уточнить дополнительно |
|---|---|---|
| URL метода | адрес, по которому агент обращается | какой тип запроса метод поддерживает |
| Параметры метода | что передавать и что вернётся | имена параметров и формат ответа |
| Заголовки | без них запрос не пройдёт | полный список, включая тип содержимого |
| Способ авторизации | доступ к данным | авторизации может не быть вовсе |
Одна рекомендация на этапе проектирования: если вы можете влиять на то, каким будет метод, попросите заложить поддержку POST-запросов — в том числе для получения данных. Это упрощает передачу сложных параметров и больших объёмов.
После этого в инструкции агента появляется одна фраза вида: при любом вопросе о статусе заказа вызови функцию проверки доставки и передай в неё номер заказа. Всё остальное — работа действия.
Логин и пароль можно передать прямо в URL, и это иногда предлагают как быстрое решение. Делать так не стоит: данные идут в открытом виде. Рабочий вариант — заголовок Authorization с парой логин:пароль, закодированной в Base64. Если логин или пароль содержат символы вроде @, : или /, их придётся дополнительно закодировать для URL.
Соблазн понятен: раз доступ есть, пусть агент лезет в базу за всем подряд. Тут работает то же ограничение, что и с любыми функциями — на каждую функцию действует лимит в десять вызовов за диалог, и сценарий, где агент обращается к трём системам на каждый вопрос, упирается в этот потолок.
Практичнее разделить. Данные, которые меняются постоянно и существуют только в 1С — остатки конкретного склада, статус заказа, история покупок — идут через HTTP-сервис. Прайс, который можно выгружать раз в сутки, дешевле и быстрее держать таблицей: там выборка идёт запросом внутри платформы и не зависит от доступности вашего сервера.
Ответ должен быть предусмотрен заранее, иначе агент найдёт его сам — и найдёт неудачно.
В инструкции прописывается поведение на случай, когда функция вернула пустоту или ошибку: не пересказывать по памяти, а сказать, что данные сейчас недоступны, и предложить оставить контакт. Без такого правила модель заполнит пробел правдоподобным ответом — ровно тот случай, который разбирает эта статья.
Выберите один вопрос, который чаще всего требует от менеджера открыть 1С.
Обычно это статус заказа или наличие на складе. Один метод под один вопрос — это и есть минимальная рабочая связка: её можно спроектировать за день, проверить на десяти диалогах и только потом решать, нужны ли остальные. Интеграция, начатая с попытки отдать агенту всю базу, обычно не доживает до запуска.
Через HTTP: на стороне 1С публикуется веб-сервис с нужными методами, а в агенте создаётся действие «Вебхук», которое обращается к этим методам. Прямого готового канала для 1С нет, потому что структура данных в каждой базе своя.
Три вещи: URL метода вместе с описанием того, какой тип запроса он поддерживает и какие параметры принимает и возвращает; список необходимых заголовков; способ авторизации. Авторизации может не быть вовсе.
Если вы можете влиять на проектирование метода, лучше заложить поддержку POST — в том числе для получения данных. POST упрощает передачу сложных параметров и больших объёмов данных.
Во вкладке «Переменные действия» добавляется аргумент, например order_number, а в инструкции агента прописывается вызов функции с передачей номера в этот аргумент.
Пара логин:пароль кодируется в Base64 и передаётся в заголовке Authorization после слова Basic. Передавать логин и пароль прямо в URL не рекомендуется: данные идут в открытом виде.
Ровно тот, который предусмотрен методом на стороне 1С. Формат и состав ответа определяются при проектировании API, платформа их не расширяет.
Хотите сразу к продукту: Конструктор чат-ботов для CRM-системы