DOS AI/ Документация
ОтзывыДля когоАгентствамВозможностиЦенаFAQОбучениеДокиВойтиСтарт
← Документация/Руководство
↓ Скачать целиком
Старт
  • Что такое DOS AI
  • Как бот думает
  • Быстрый старт: первый бот за 30 минут
  • Карта кабинета (навигация)
  • Глоссарий
  • Как выбрать чат-бота для WhatsApp
Проект и бот
  • Создание проекта
  • Системный промпт (характер бота)
  • JSON-ответ бота (статусы, стадии, флаги)
  • Выбор AI-модели
  • Тестовый чат
  • Продвинутые настройки бота
  • Загрузить знания о бизнесе в бота (что куда)
Каналы
  • Обзор каналов
  • Подключить WhatsApp (по QR)
  • Подключить Telegram-бота
  • Гигиена и антибан (WhatsApp)
Инструменты бота
  • Функции (инструменты бота)
  • База знаний (RAG)
  • Медиа-библиотека
  • Дожимы (follow-up)
  • Теги и сегментация
  • Уведомления владельцу (Telegram, WhatsApp и почта)
  • Запись на время (Calendar и движок окошек)
  • Бот выставляет счёт (Kaspi)
  • Письмо клиенту
  • Рассылки по базе контактов
  • Исходящие диалоги (бот пишет первым)
Работа с клиентами
  • Диалоги, лента, перехват, «AI на паузе»
  • Лиды и их статусы
  • Стадии диалога (воронка)
  • Аналитика
  • Логи событий
  • Авто-отчёты владельцу (Telegram и почта)
Интеграции
  • Обзор интеграций + сервисный аккаунт Google
  • Google Sheets
  • Google Calendar
  • Gmail
  • CRM, Bitrix24 / amoCRM / AlphaCRM
  • Вебхуки и безопасность (SSRF)
  • МойСклад: наличие и цены в ответах бота
Деньги
  • Биллинг проекта: токены, подписка, пополнение
  • Сколько стоит сообщение
  • Приём оплат от клиентов (Kaspi)
  • Промокоды и партнёрская программа
Команда и аккаунт
  • Роли и права (viewer / tester / editor / admin / owner)
  • Участники и приглашения
  • Профиль, пароль, безопасность
  • Уведомления и личные настройки
  • Удаление, передача, дублирование проекта
Для разработчиков
  • Публичный API и ключи dos_sk_live_…
  • Кастомные вебхуки (продвинутый режим)
  • Язык выражений (expressions)
  • Формат данных и интеграция фронта
  • Подключить ИИ-агента: Claude Code, Codex, Cursor (MCP)
Решение проблем
  • Бот не отвечает, диагностика
  • Функция не вызывается / падает
  • Канал отвалился / WhatsApp забанили
  • Платёж не прошёл
  • Частые вопросы (FAQ)
  • Лиды из рекламы приходят с задержкой
Справочники
  • Каталог встроенных функций
  • Справочник настроек (agent_config)
  • Коды ошибок и состояния
  • Стадии, статусы лида, типы клиента
  • Лимиты и квоты
  • Переменные и хелперы выражений
  • Типы уведомлений

Документация › Каналы › Подключить WhatsApp

Подключить WhatsApp (по QR)

После этой статьи твой бот будет сам отвечать клиентам в WhatsApp: 14 дней бесплатно, без ограничения по числу диалогов, без карты и предоплаты.

⏱ 12 мин · 👤 для владельца и оператора · 🟢 live

Раздел «Каналы»: подключение WhatsApp по QR-коду (3 шага) и Telegram по токену от @BotFather
Раздел «Каналы»: подключение WhatsApp по QR-коду (3 шага) и Telegram по токену от @BotFather
За 30 секунд:
  • WhatsApp подключается сканированием QR-кода, как обычный «WhatsApp на компьютере». Платформа держит привязанное устройство сама (самохостинг), отдельный сторонний сервис не нужен.
  • Нужен «живой» рабочий номер (на котором уже переписывались), иначе WhatsApp забанит за спам.
  • Никаких анкет перед сканом: нажал «Подключить свой номер», получил QR. Не читается камера, есть код по номеру телефона; номер у другого человека, есть ссылка, по которой он подключит его сам.
  • Бесплатно: 14 дней, сколько угодно диалогов. Единственный ограничитель это баланс проекта: при регистрации мы кладём на него $5, и бот отвечает, пока эти деньги не кончатся. Дальше нужна подписка проекта.
  • Телефоном можно продолжать пользоваться, бот работает как привязанное устройство, не вместо тебя.

Зачем это нужно

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

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

Почему по QR, а не напрямую через API

У WhatsApp нет «кнопки подключить бота» для обычного аккаунта. Платформа привязывается к твоему WhatsApp как ещё одно устройство, точно так же, как WhatsApp Web на компьютере, и держит это привязанное устройство у себя (самохостинг). Тебе ничего настраивать не нужно: ты только сканируешь QR. Главное помнить, подключается обычный личный/рабочий WhatsApp по QR, а не official Business API.

⚠️ Важно с самого начала. WhatsApp очень не любит, когда «свежий» номер вдруг начинает отвечать как привязанное устройство. Подключишь «холодный» номер, Meta забанит его за минуты. Поэтому перед сканом честно ответь себе на пять вопросов из блока «Какой номер выбрать» ниже: по опыту, бóльшая часть банов именно из-за неправильного номера.

Что понадобится

  • ☐ Создан проект → Создание проекта
  • ☐ Написан промпт бота, хотя бы черновой (иначе боту нечем отвечать) → Системный промпт
  • ☐ Телефон с WhatsApp на номере, который уже использовался для обычной переписки (не только что куплен/зарегистрирован)
  • ☐ Этот телефон под рукой: на нём надо открыть камеру для скана QR
  • ☐ Роль в проекте admin или owner. Роль editor видит страницу, но кнопку подключения нажать не сможет → Роли и права. Если номер у другого человека (например, у владельца бизнеса, а настраиваешь ты), в проект его звать не нужно: есть ссылка для самостоятельного подключения, см. шаг 3.

Какой номер выбрать

✅ Подойдёт🚫 Не подойдёт
Рабочий номер компании, с которого месяцами переписывалисьКупленная сегодня «симка под бота»
Личный номер с реальной историей чатовНомер из эмулятора / виртуальный
Обычный WhatsApp или WhatsApp Business: оба окНомер, уже подключённый к другому сервису рассылки

💡 Совет. Один номер = один проект. Если у тебя два бизнеса (две стоматологии): это два проекта и два разных номера. Подключить два WhatsApp-номера в один проект нельзя.

Шаги

1. Открой раздел «Каналы»

Вкладка проекта «Каналы» (ряд вкладок сверху, когда проект открыт) → карточка WhatsApp. Подзаголовок страницы: «Подключение WhatsApp и Telegram к боту проекта».

В блоке WhatsApp (QRDOS) видно текущее состояние и кнопка «Подключить свой номер». Под ней подсказка: «Подключите свой номер WhatsApp по QR-коду через QRDOS: откройте WhatsApp на телефоне → Связанные устройства → отсканируйте код».

2. Проверь номер (пять честных вопросов)

Анкеты перед сканом нет, платформа верит тебе на слово. Но именно от номера зависит, доживёт ли он до первой заявки. Ответь себе:

ВопросПочему это важно
Номер уже использовался в обычном WhatsApp, на нём есть живая переписка?«Пустой» номер для Meta = спам-бот
За последние сутки на нём были реальные чаты с людьми?Подтверждает, что номер живой
Номер не подключён одновременно к другому сервису рассылок?Два сервиса на одном номере = бан
WhatsApp стоит на настоящем телефоне, не в эмуляторе?Эмуляторы Meta вычисляет и банит навсегда
Номер сейчас не в блокировке и раньше не банился?Забаненный подключать бессмысленно

Хотя бы одно «нет» → возьми другой номер. Подробно: Гигиена и антибан.

3. Нажми «Подключить свой номер» и отсканируй QR

После нажатия статус меняется на «Поднимаем подключение...», через несколько секунд появляется QR-код и подсказка «Откройте WhatsApp → Связанные устройства → Привязать устройство и отсканируйте QR».

На телефоне с нужным номером:

  1. Открой WhatsApp;
  2. Настройки → Связанные устройства (Linked Devices);
  3. на iPhone: вкладка «Настройки» → «Связанные устройства»;
  4. на Android: «⋮» (три точки) → «Связанные устройства»;
  5. «Привязать устройство» → наведи камеру на QR-код на экране компьютера.

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

Камера не читает QR? Под кодом есть переключатель «Не сканируется QR? Привязать по номеру телефона»: вводишь номер с кодом страны (например 77071234567), жмёшь «Получить код», а в WhatsApp идёшь Настройки → Связанные устройства → Привязать устройство → «Привязать по номеру телефона» и вводишь этот код.

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

4. Дождись статуса «Подключён»

Как только телефон привяжется, статус сам сменится на «Подключён», и рядом появится номер телефона. Перезагружать страницу не нужно, она обновляется в реальном времени.

Сразу после привязки над блоком висит плашка «🔥 Прогрев номера» с обратным отсчётом: «Бот начнёт отвечать новым клиентам через 14:59. Сразу после подключения номер прогревается: это защита от блокировки WhatsApp. Все сообщения при этом сохраняются, вы видите их в Диалогах». Это 15 минут тишины, а не поломка: см. Антибан.

Там же, в блоке, два полезных тумблера и подсказки:

  • «Отмечать входящие прочитанными»: включено, бот «прочитывает» сообщения (у собеседника синие галочки), а телефон перестаёт присылать уведомления о новых сообщениях. Выключи, если хочешь получать уведомления на телефон, как раньше;
  • раскрывающийся блок «Что будет с вашим номером»: шесть коротких ответов про привязанное устройство, старые чаты, защиту от блокировки, прогрев и телефон в сети;
  • совет про WhatsApp Business: если включены авто-ответы (приветствие, «сообщение об отсутствии»), выключи их, иначе платформа примет их за ответ оператора и поставит бота на паузу.

📌 Пример (стоматология). Подключают рабочий +7 705…. Через ~10 секунд после скана статус «Подключён (+7 705…)». Через 15 минут прогрева клиент пишет «сколько стоит чистка?», бот отвечает сам, заявка падает в Лиды.

📌 Пример (барбершоп). Мастер боится, что после подключения «телефон отвалится». Ничего подобного: он дальше переписывается в WhatsApp как обычно, а бот просто параллельно отвечает новым клиентам. Если мастер сам вступит в диалог, бот на этом чате встанет на паузу.

Проверь, что работает

  1. Статус в блоке WhatsApp = «Подключён» + виден номер.
  2. Напиши боту с другого телефона в этот WhatsApp: должен прийти ответ от бота (несколько секунд).
  3. Открой Диалоги: там появится твоя тестовая переписка.

Если бот молчит, иди в Бот не отвечает.

Сколько это стоит

  • Пробный период, бесплатно: 14 дней (или 30 дней, если к проекту применён промокод), число диалогов не ограничено. Карта не нужна.
  • Внутри пробного периода бот отвечает, пока на проекте есть деньги. При регистрации мы кладём $5 ($10 по промокоду), каждый ответ бота списывает с них по факту (см. Сколько стоит сообщение).
  • Сразу после подключения открывается окно скидки на подписку: 14 дней, цена ниже обычной. Оплата внутри окна не съедает оставшиеся бесплатные дни, платный период начнётся после них.
  • После пробного периода канал работает, только если у проекта активная подписка. Если не оплатить, WhatsApp-подключение перестанет отвечать. Цены и оплата: в статье Биллинг.

💡 Бот замолчал раньше срока? Значит кончился баланс, а не «пробные диалоги»: лимита на количество переписок нет. Пополни баланс, и ответы пойдут сразу же.

Что доезжает из WhatsApp в кабинет

Подключение не сводится к «текст туда, текст обратно»: в Диалогах переписка выглядит так же, как в самом WhatsApp.

Что происходит в WhatsAppЧто видно в кабинете
Клиент печатает или пишет голосовоеиндикатор «печатает…» в диалоге
Твой ответ дошёл / прочитангалочки «доставлено» и «прочитано» на сообщении бота
Клиент поставил эмодзи-реакциюэмодзи рядом с сообщением. Бот реакции не читает: 👍 это часто вежливый кивок, а не ответ, и подавать его модели как реплику дороже, чем полезнее
Клиент удалил сообщение «у всех»на месте текста остаётся пометка «сообщение удалено»
Клиент исправил уже отправленное сообщениетекст обновляется, и бот отвечает на исправленный вариант, а не на первый
Клиент ответил на конкретное сообщение (цитата)цитата видна и оператору, и боту, в том числе в группах
Клиент переслал чужое сообщениепометка «Переслано», чтобы не принять его за слова самого клиента
Клиент прислал фото, документ, голосовоефайл в диалоге, голосовое расшифровано в текст (если распознавание включено)

💡 Если файл почему-то не скачался, на его месте будет прямая подпись, почему именно: молчаливого пустого места не остаётся.

Частые ошибки

СимптомПричинаЧто делать
QR не сканируется / успел протухнутьQR живёт около минутыНажми «Обновить QR»; не читает камера, привяжи по коду через номер телефона
«QRDOS временно недоступен, попробуйте через минуту»Шлюз подключения перезапускаетсяПодожди минуту и нажми ещё раз; повторяется, напиши в поддержку
Бот молчит первые минуты после подключенияИдёт прогрев номера (плашка «🔥 Прогрев номера» с отсчётом)Подожди 15 минут, сообщения клиентов не теряются
«Пробный период WhatsApp завершён. Для повторного подключения требуется оплата подписки.»Триал кончился, подписки нетОплати подписку → Биллинг, потом переподключи
Бот подключился и вдруг замолчалКончился баланс проекта (лимита на число диалогов нет)Пополни баланс → Биллинг
Бот подключился, но не отвечает вообщеПустой промпт или нет баланса токеновПроверь промпт и баланс
Бот ответил один раз и замолчал в чатеУ номера включён авто-ответ WhatsApp Business (приветствие / «нет на месте»): он уходит от твоего имени и ставит бота на паузуОтключи авто-ответы в WhatsApp Business → Настройки → Инструменты для бизнеса
Кнопки «Подключить» нет, всё сероеУ тебя роль editor/viewerПопроси admin/owner подключить → Роли
Статус «Сессия разлогинена, привяжите заново»Телефон долго был офлайн или ты сам отвязал устройство в WhatsAppНажми «Подключить свой номер» и отсканируй новый QR
Статус «Номер заблокирован WhatsApp, отправки остановлены»Meta забанила номерСм. Канал отвалился / бан
WhatsApp забанил номерПодключили «холодный» номерСм. Канал отвалился / бан

Если WhatsApp отвалился

WhatsApp может разорвать связь (телефон надолго офлайн, устройство разлогинило). Короткие обрывы платформа переживает сама: статус на минуту становится «Переподключаемся...» и возвращается в «Подключён». Если устройство отвязано совсем, статус станет «Сессия разлогинена, привяжите заново», а в обзоре проекта и в диалогах появится ссылка «Переподключить»: это тот же путь через QR. Штатная операция.

⚠️ Не отвязывай устройство руками на телефоне ради «подключить заново по-новому». Отключай через кнопку «Отключить» на платформе: она делает полный выход на шлюзе и стирает память о чатах. Иначе WhatsApp увидит «то же устройство с теми же контактами» и расценит это как уклонение от бана. Подробнее: Гигиена и антибан.

Вопросы, которые обычно возникают

Смогу ли я дальше пользоваться WhatsApp на телефоне?
Да. Бот работает как привязанное устройство (как WhatsApp Web). Твой телефон остаётся главным, ты переписываешься как обычно. Бот отвечает параллельно на новые входящие.

Что будет с моими старыми чатами и контактами?
На твоём телефоне: ничего, всё остаётся. Подключение только «читает» новые входящие и отвечает на них.

А если я сам отвечу клиенту, бот не перебьёт?
Когда оператор вступает в диалог, бота на этом чате можно поставить на паузу, он не будет встревать. Подробно, Диалоги.

Подойдёт WhatsApp Business?
Да. И обычный WhatsApp, и WhatsApp Business подключаются одинаково по QR. Главное: «живой» номер.

⚠️ Если у тебя WhatsApp Business, отключи встроенные авто-ответы (приветственное сообщение и «сообщение об отсутствии»). Найти: в приложении WhatsApp Business → Настройки → Инструменты для бизнеса → Приветственное сообщение / Сообщение в нерабочее время → выключить. Зачем: эти авто-ответы уходят от твоего имени, и платформа считает их за «оператор сам вступил в диалог» → ставит бота на паузу в этом чате (он ответит один раз и замолчит). Бот и так сам здоровается с клиентами, поэтому родной авто-ответ WhatsApp Business только мешает, два приветствия конфликтуют.

Захожу в WhatsApp: все сообщения уже помечены прочитанными, и телефон не присылает уведомления. Почему?
Бот: привязанное устройство, а WhatsApp синхронизирует «прочитано» между всеми твоими устройствами. Когда бот по умолчанию «прочитывает» входящее (собеседник видит синие галочки), телефон считает сообщение уже прочитанным и не показывает уведомление. Если хочешь получать уведомления на телефон, открой блок WhatsApp в разделе «Каналы» и выключи тумблер «Отмечать входящие прочитанными». Тогда входящие останутся непрочитанными (уведомления и значок «новое» вернутся), а собеседники будут видеть только серые галочки «доставлено», без синих «прочитано». Настройка действует на этот проект и применяется сразу, переподключать номер не нужно.

Можно один номер на два проекта?
Нет. Один номер = один канал = один проект. Для второго бизнеса: отдельный проект и отдельный номер.

Нужно ли держать телефон постоянно онлайн?
Желательно. Как и у WhatsApp Web, привязанное устройство какое-то время работает и без телефона, но если телефон надолго пропадёт из сети, WhatsApp может разлогинить устройство, и придётся «Переподключить».

Справка: состояния подключения WhatsApp

Что видишьЗначитЧто делать
Не подключёнКанал ещё не созданНажми «Подключить свой номер»
Поднимаем подключение...Платформа создаёт подключениеПодожди несколько секунд
QR на экранеЖдём скан (код живёт ~1 минуту)Сканируй с телефона или нажми «Обновить QR»
Подключён (номер) + плашка «🔥 Прогрев номера»Всё работает, первые 15 минут бот молчитПодожди отсчёт ✅
Подключён (номер)Бот в эфиреГотово ✅
Переподключаемся...Короткий обрыв связи, платформа восстанавливает самаПодожди минуту
Сессия разлогинена, привяжите зановоУстройство отвязано (долгий офлайн телефона или отвязали вручную)Подключи заново по QR
Номер заблокирован WhatsApp, отправки остановленыБанКанал отвалился / бан
Ошибка подключенияСбой на шлюзеНажми «Подключить» ещё раз; повторяется, в поддержку

Под капотом (для разработчиков и любопытных)

Что происходит автоматически, пока ты сканируешь QR.

Где живёт WhatsApp. WhatsApp это самохостинг через Baileys (QRDOS): платформа держит привязанное к твоему номеру устройство на своём gateway-сервере (как WhatsApp Web, только всегда онлайн). Сторонний провайдер-посредник больше не используется (убран в июне 2026). Инвариант: 1 номер = 1 канал = 1 проект.

Поток подключения (POST /api/projects/[id]/baileys/connect):

  • права admin+; рейт-лимит 30 запросов/мин на проект;
  • гейт isWhatsAppReconnectBlocked(), если триал исчерпан и подписки нет, вернётся HTTP 402 TRIAL_EXPIRED_PAYMENT_REQUIRED с текстом «Пробный период WhatsApp завершён…»;
  • проект переключается на провайдера QRDOS, gateway стартует сессию и выдаёт QR (/baileys/qr); фронт опрашивает /baileys/status и рисует статус в реальном времени;
  • по скану gateway шлёт вебхук /api/webhook/baileys → проект помечается подключённым (projects.baileys_connected = true); страница видит это и рисует «Подключён».

Пробный период (с 2026-08-04). Активен, пока не истекло окно в 14 дней (30 дней, если к проекту применён реферальный/амбассадорский код: продление ставит apply-promo, ветка 14/30 живёт в триггере mirror_baileys_connected(), crm/sql/0123). Ограничения по числу диалогов больше нет: hasActiveWhatsAppTrial() смотрит только на дату. Тем же триггером один раз ставится projects.activation_offer_ends_at, конец 14-дневного окна скидки на подписку. Внутри окна ответы гейтит баланс проекта, как и на платной подписке. У QRDOS нет поканальной платы провайдеру, поэтому «ройщика» неоплаченных каналов нет: после окна без подписки просто срабатывает гейт допуска (checkProjectEligibility) и бот перестаёт отвечать.

Антибан в коде: (1) чек-листа перед сканом нет: ответственность за выбор номера на владельце, платформа защищает поведением после подключения; (2) отвязка идёт полным logout на шлюзе с зачисткой авторизации, офсайтной копии сессии и памяти о чатах (connectionManager.disconnect(id, logout=true)): иначе контакты «переедут» на следующее подключение, Meta увидит «новое устройство, те же контакты» = уклонение = мгновенный бан; (3) 15 минут после подключения/реконнекта автоответы не уходят (isOutboundGatedOnReconnect), кроме диалога, где оператор вручную включил ИИ; (4) на шлюзе жёсткие потолки (services/baileys-gateway/src/anti-ban.ts): ≤8 разных чатов/мин, ≤30 отправок/мин, ≤200/час, ≤3000/сутки, гауссова пауза 1,5-5 с, блок 3-го одинакового текста подряд в один чат; (5) шаблонные служебные сообщения не чаще 1 на диалог в 5 с (throttleWaTemplateSend).

Гейт «можно ли отвечать» (checkProjectEligibility), для WhatsApp нужно project.status === 'active' И (активный триал ИЛИ активная подписка). Для Telegram только active, без подписки.

Таймлайн жизни триал-канала:

0ч ──────────── создан, QR отсканирован, бот в эфире
 │  бесплатно: 14 дней, диалогов сколько угодно (пока хватает баланса)
окно закрылось ─ если НЕ оплачено → гейт допуска останавливает ответы бота
                 если оплачено → канал живёт, пока активна подписка

Простыми словами

Подключить WhatsApp это как привязать «WhatsApp на компьютере»: заходишь в раздел «Каналы», жмёшь «Подключить свой номер» и сканируешь телефоном QR-код. Не читается камера, есть код по номеру; номер у другого человека, отправь ему ссылку, он подключит сам. После этого бот сам отвечает всем, кто тебе напишет. Телефоном при этом ты продолжаешь пользоваться как обычно, бот не занимает твоё место, а работает рядом.

Две недели бесплатно, и переписок сколько угодно (с промокодом партнёра, месяц). Тратится только баланс проекта, а при регистрации мы кладём на него $5, так что попробовать можно на реальном потоке клиентов, а не на паре сообщений. Дальше нужна подписка, и первые две недели после подключения она стоит дешевле обычного.

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


Дальше: → Функции (инструменты бота)
Связано: Обзор каналов · Подключить Telegram · Биллинг · Диалоги · Антибан
Не получилось? → Канал отвалился / WhatsApp забанили · Бот не отвечает