RK WhatsApp API V2: Многофункциональный мессенджер-интеграционный сервис

19.08.26

Интеграция - Мессенджеры и боты

RK WhatsApp API V2 это глобальное обновление мощного инструмента для интеграции WhatsApp в корпоративные информационные системы. Сервис позволяет создавать и управлять множественными экземплярами WhatsApp, отправлять и получать сообщения, управлять контактами и настраивать вебхуки.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
RK WhatsApp API V2: Многофункциональный мессенджер-интеграционный сервис
.epf 36,26Kb
6 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Год назад я выложил здесь службу, через которую 1С отправляет сообщения в WhatsApp. Её ставили — и почти сразу становилось видно, чего в ней не хватает. Не функций: не хватало места, где живёт логика ответа. Всё, что сложнее «отправить текст», приходилось писать в конфигурации заказчика — и каждый раз заново.

Версия 2 переписана целиком. Ниже — не список возможностей, а один вечер одной переписки: что происходит с сообщением клиента от «пришло» до «ответ ушёл», и чем это собрано.

 

23:40, суббота

Клиент пишет в WhatsApp: «Добрый вечер, пришлите счёт по заказу 1234». Менеджер спит. Через восемь секунд клиент получает PDF со счётом.

Между этими двумя событиями — сценарий из пяти узлов, собранный мышью на холсте:

 

Редактор сценария: входящее сообщение проверяется, сверяется с 1С, счёт уходит обратно файлом

 

  1. Входящее сообщение — триггер. Сработал, потому что пришло сообщение на подключённый номер.
  2. Есть ли номер заказа — условие. В тексте нашлись четыре цифры подряд; если бы не нашлись, ветвь «Ложь» ответила бы дежурной фразой и позвала менеджера утром.
  3. Запрос в 1С — узел ходит в HTTP-сервис вашей базы: «заказ 1234, телефон такой-то — твой?». База отвечает суммой и ссылкой на печатную форму.
  4. Отправить файл — платформа скачивает PDF по ссылке сама и отправляет вложением. Через 1С файл не гоняется вовсе.
  5. Отправить текст — короткая подпись к счёту.

Ничего из этого не лежит в конфигурации заказчика. Обновится типовая — сценарий не заметит.

 

Что видно на следующее утро

Менеджер открывает журнал и видит не «сообщение обработано», а каждый шаг: что пришло на вход, что узел отдал, сколько это заняло.

 

Журнал прогона: шаги со статусом, входом и выходом

 

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

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

 

Прошлые прогоны с отбором по состоянию

 

Из чего собирают сценарии

Слева палитра узлов, посередине холст, справа настройки выбранного узла и данные, с которыми он работал. Внизу — замечания: пока они есть, сценарий не публикуется.

 

Палитра узлов: триггеры, поток, данные, интеграции, WhatsApp, ИИ

 

Триггеры: входящее сообщение, расписание (cron), вебхук от чужой системы, запуск вручную, обработчик падения другого сценария.

Шаги: отправка текста и файла, условие, развилка на несколько путей, слияние, перебор списка, ожидание (времени или входящего вызова), вызов другого сценария, HTTP-запрос, запрос в 1С, обращение к языковой модели, работа с данными — отбор, сортировка, дубликаты, JSON, CSV, XML, хэши — и код в песочнице, если без него никак.

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

Проверить, не дожидаясь клиента

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

 

Панель данных с образцом выхода триггера

 

Голосовое в 23:40

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

Теперь приходит всё, что присылают: голосовое, фото, видео, документ, стикер. Голосовое слушается прямо в переписке портала, документ сохраняется в один щелчок.

 

Переписка с вложениями: голосовое проигрывается, документ сохраняется

 

Для интеграции важнее другое: у вложения есть адрес, и по нему приходят байты.

GET /api/v2/media/<идентификатор>
X-API-Key: <ключ>

Это и есть то, чего не хватало для голосовых: платформа отдаёт файл, а распознаёт речь сама 1С. Начиная с 8.3.23 у глобального контекста есть свойство РаботаСРечью — проверено на 8.3.23.2236, оно возвращает объект типа МенеджерРаботыСРечью. Его методами речь переводится в текст: и произносимая в микрофон, и записанная в звуковой файл — второе как раз наш случай.

Считать можно двумя способами, и у каждого своя цена:

  • Облаком — сервисом «1С:Распознавание речи». Нужны действующая подписка на портале ИТС, подключённая интернет-поддержка и положительный баланс пакета. Оборудование заказчика при этом не нагружается, но запись уходит наружу.
  • Локально — на скачанной модели распознавания (модель тянется через учётную запись ИТС). Не тарифицируется вовсе, и звук не покидает контур. Просит железа: для x64 — Core i5 или Ryzen 5 и от 12 ГБ памяти; на x32 качество ниже.

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

Точные имена методов смотрите в синтакс-помощнике своей платформы. Здесь я их не привожу намеренно: в открытых источниках их нет, а переписанные по мотивам анонса дают «метод не обнаружен» — это первое, что проверит читатель.

 

Что видит человек, а не программист

Отдельная работа, которой в первой версии не было: карточка номера объясняет своё состояние словами. Не «status: logged_out», а что случилось, что делает система и что делать человеку.

 

Номера: карточка объясняет состояние и называет следующий шаг

 

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

 

Код для входа в WhatsApp с обратным отсчётом

 

Первый запуск

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

Первичная настройка: организация и администратор

Ключ показывается один раз, поэтому рядом с ним стоит кнопка копирования.

Выданный ключ API для интеграции

Установка

Образ опубликован на Docker Hub: 0101001001001011/rkwa.

docker pull 0101001001001011/rkwa:latest

docker-compose.yml:

services:
  postgres:
    image: postgres:17-alpine
    environment:
      POSTGRES_DB: rkwa
      POSTGRES_USER: rkwa
      POSTGRES_PASSWORD: смените-меня
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    restart: unless-stopped

  api:
    image: 0101001001001011/rkwa:latest
    depends_on: [postgres]
    ports:
      - '3000:3000'
    environment:
      RK_DATABASE_URL: postgres://rkwa:смените-меня@postgres:5432/rkwa
      # Ровно 32 байта в base64. Потеря ключа = потеря всех сессий WhatsApp.
      RK_MASTER_KEY_ENV: RK_MASTER_KEY
      RK_MASTER_KEY: сгенерируйте-свой
      RK_JWT_SECRET_ENV: RK_JWT_SECRET
      RK_JWT_SECRET: сгенерируйте-свой
      # Адрес, по которому установка видна снаружи: нужен сценариям,
      # которые ждут входящего вызова.
      RK_PUBLIC_URL: https://ваш-домен
    volumes:
      - ./media:/app/media
    restart: unless-stopped
docker compose up -d

Ключи генерируются так:

openssl rand -base64 32

Дальше http://localhost:3000/app — и портал проведёт настройку.

Для небольшой установки PostgreSQL не обязателен: RK_DATABASE_URL=file:./data/rkwa.sqlite — и служба работает на SQLite. Поведение одинаковое: оба диалекта проверяются одними и теми же тестами.

 

Сторона 1С

К статье приложена внешняя обработка. Конфигурацию она не трогает: открывается через Файл → Открыть и работает в любой конфигурации на 8.3. Исходники — в открытом репозитории rk-wa-1c-external-processor.

Адрес платформы и ключ API вводятся один раз и хранятся в общем хранилище настроек базы. Ключ вводится в режиме пароля и после сохранения на экране не показывается.

 

Форма настройки интеграции в 1С: адрес платформы, ключ API, список номеров

 

Номер подключается не выходя из 1С: «Добавить номер» → «Запустить» → «Показать код для входа» → отсканировать в WhatsApp.

 

Код для входа в WhatsApp, показанный из 1С

 

Отправка, чтение переписки и контактов — оттуда же.

 

Отправка сообщения из 1С и результат

 

Минимальная отправка

Ключ предъявляется заголовком X-API-Key:

Функция ОтправитьСообщение(Инстанс, Получатель, Текст, КлючИдемпотентности)

    Запрос = Новый HTTPЗапрос("/api/v2/instances/" + Инстанс + "/messages");
    Запрос.Заголовки.Вставить("X-API-Key", КлючAPI);
    Запрос.Заголовки.Вставить("Content-Type", "application/json");

    Тело = Новый Структура;
    Тело.Вставить("to", Получатель);
    Тело.Вставить("text", Текст);
    // Тот же ключ означает то же сообщение. Повтор запроса по таймауту
    // не отправит человеку второе — это не украшение, а единственное,
    // что отличает надёжную отправку от «кажется, дошло».
    Тело.Вставить("idempotencyKey", КлючИдемпотентности);

    Запись = Новый ЗаписьJSON;
    Запись.УстановитьСтроку();
    ЗаписатьJSON(Запись, Тело);
    Запрос.УстановитьТелоИзСтроки(Запись.Закрыть(), КодировкаТекста.UTF8);

    Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    Если Ответ.КодСостояния >= 400 Тогда
        ВызватьИсключение "Платформа ответила " + Ответ.КодСостояния;
    КонецЕсли;

    Возврат ПрочитатьJSON(Ответ.ПолучитьТелоКакСтроку());

КонецФункции

Про idempotencyKey стоит сказать отдельно. Запрос отвалился по таймауту — отправлено сообщение или нет? Без ключа ответа нет, и повтор рискует прислать человеку второе. С ключом повтор безопасен: тот же ключ означает то же сообщение. Проверяется это не рассуждением, а счётом: три вызова отправки с двумя разными ключами дают в переписке ровно два сообщения.

Файл по ссылке

Счёт, накладную, акт не нужно кодировать в base64 и гнать через 1С. Достаточно дать ссылку — платформа скачает файл сама:

Тело = Новый Структура;
Тело.Вставить("to", "79990000001");
Тело.Вставить("url", "https://1c.ваш-домен/hs/печать/счёт/1234");
Тело.Вставить("fileName", "Счёт 00-1234.pdf");
Тело.Вставить("as", "document");
Тело.Вставить("caption", "Счёт по заказу 00-1234");
Тело.Вставить("idempotencyKey", "счёт-1234");

Имя файла — то, что увидит получатель, а не то, как файл называется на диске. as решает, показать картинку прямо в переписке (image) или отдать вложением (document).

Обратная сторона: 1С отвечает сценарию

Узел «Запрос в 1С» ходит в HTTP-сервисы и OData вашей базы — это тот самый третий шаг из вечернего сценария. Учётные данные лежат в платформе шифрованными и в сценарий не попадают: узел получает готовый запрос, пароля он не видит.

 

Ключи внешних служб: учётные данные для интеграций

 

Что изменилось против первой версии

  Первая версия Эта
Логика ответов код в конфигурации конструктор сценариев
Что видно о номере статус в ответе API состояние словами и следующий шаг
Входящие вложения — голосовые, фото, видео, документы, стикеры
Хранилище MongoDB или SQLite PostgreSQL или SQLite
Первый запуск команды в консоли настройка в браузере
Медиа загрузка файлом файл по ссылке
Интеграции вебхуки вебхуки, 1С, языковые модели, OAuth2
Секреты в настройках шифрование конвертом, разграничение прав

Темп отправки

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

Тёмное оформление

Портал открывают на весь день, поэтому оформление переключается: как в системе, светлое, тёмное.

 

Тот же редактор в тёмном оформлении

 

Чего пока нет

Честный список — чтобы не выяснять это после установки:

  • Голосовые принимаются, но не отправляются. Прислать голосовое клиенту платформа не умеет: WhatsApp принимает их только в ogg/opus, а перекодировать на своей стороне мы пока не беремся.
  • Списков рассылки WhatsApp нет. Рассылка идёт обходом получателей по одному, с выдержанным темпом. Библиотека, на которой работает канал, в списки рассылки не отправляет — ни в текущей версии, ни в следующей. Штатный механизм появится, когда появится способ им пользоваться.
  • Видеокружков нет.
  • Векторного поиска по переписке нет — модель отвечает по тому, что дали ей в сценарии.
  • OAuth2 работает по паре «клиент и секрет»; вход с переходом к провайдеру и возвратом ещё не сделан.
  • Заголовки групповых чатов пока не показываются — только участники и сообщения.

 

Про надёжность

Несколько вещей, о которых обычно не пишут, но которые решают, будет ли это работать без присмотра:

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

 

Что приложено к статье

  • Внешняя обработка 1С — RKWhatsApp.epf. Настройка интеграции, подключение номера с кодом для входа, отправка сообщений и файлов, чтение переписки и контактов.

Сама платформа ставится образом из Docker Hub — 0101001001001011/rkwa, там же полное описание и переменные окружения.

Вопросы и замечания — в комментарии. Отвечаю.

Проверено на следующих конфигурациях и релизах:

  • Розница, редакция 3.0, релизы 3.0.10.178

Вступайте в нашу телеграмм-группу Инфостарт

whatsapp 1C обработка сообщения интеграция

См. также

SALE! 50%

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Расширение 1С с полным набором инструментов для качественных транзакционных, триггерных и маркетинговых рассылок Email, SMS, MAX, WhatsApp, Telegram. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

6100 3050 руб.

07.04.2014    98942    90    205    

173

Мессенджеры и боты 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Интеграция мессенджеров Max, WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi. Важно: Интеграция с Telegram пока только для конфигурации 1С:УНФ.

30500 руб.

23.06.2023    18374    61    27    

62

Мессенджеры и боты 1С 8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Готовый чат-бот MAX для 1С виде расширения. Клиенты проверяют остатки и заказы прямо в мессенджере. Ролевая модель, гибкое меню, отправка файлов, диалоги. Подключайте свою логику через внешние обработки.

14640 руб.

26.03.2026    3272    4    0    

7

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram/max, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    43491    58    62    

88

Логистика, склад и ТМЦ Интеграция Роли и права Мессенджеры и боты Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Платные (руб)

Готовое решение для 1С:УТ 11.5 и 1С:УНФ 3.0, которое дает менеджерам, торговым представителям и руководителям быстрый доступ к остаткам, ценам и данным по номенклатуре прямо в MAX и Telegram. Поиск по наименованию, артикулу, коду и штрихкоду, избранное, персональные настройки складов и видов цен для каждого пользователя. База 1С не обязательно должна публиковаться в открытый интернет для конечных пользователей: решение может работать во внутреннем контуре компании через опубликованный HTTP-сервис 1С и отдельную серверную часть бота. Экономичная альтернатива отдельному мобильному приложению для отдела продаж: быстрее запуск, ниже затраты, меньше ручных уточнений между менеджером, складом и офисом. По запросу доступны демонстрация, проверка совместимости и обсуждение адаптации под ваши процессы.

5978 руб.

10.03.2026    1304    1    0    

2

Нейросети Мессенджеры и боты Разработчик Абонемент ($m)

Задача - дать пользователю AI-ассистента, привязанного к его данным в базе 1С. Не абстрактный чат-бот, а помощник, который знает структуру вашей конфигурации, понимает названия справочников и документов на русском языке и может вернуть конкретные данные - список контрагентов, сумму реализаций, количество сотрудников.

1 стартмани

07.05.2026    2148    6    gybson    5    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. akR00b 26 15.04.25 10:27 Сейчас в теме
Условия использования?
3. user596473_kimboo 8 15.04.25 12:47 Сейчас в теме
(1) Свободное использование для любых целей. Без оплаты и лицензий, без оплаты за сообщения и т.д. Код полностью открытый.
user607362_evkara; akR00b; +2 – Ответить
2. user596473_kimboo 8 15.04.25 12:46 Сейчас в теме
Еще забыл указать после установки доступен web интерфейс для управления, в случае если интеграция производится без необходимоси управления инстансами.

NPM установка:
http://localhost:7001

Docker устанвока
http://localhost:3000 (или порт который вы указали при запуске)
user607362_evkara; +1 – Ответить
4. mszsuz 349 24.04.25 21:54 Сейчас в теме
А что "под капотом"?
5. user596473_kimboo 8 01.05.25 14:50 Сейчас в теме
(4) под капотом Baileys от команды WhiskeySockets за что им большое спасибо!!!
Для отправки сообщения требуется регистрация/авторизация