AI Cube/Гайды/Квалификация лидов
WhatsApp Cloud API · Claude · CRM

WhatsApp + Claude: как AI сам квалифицирует лидов в CRM

Двести сообщений в день. Десять человек реально готовы платить, а остальные сто девяносто — те, кто спросил цену и пропал. Три часа уходит на то, чтобы руками отделить горячих от случайных, и часть горячих лидов за это время уже остывает. Ниже — архитектура из четырёх звеньев: WhatsApp Cloud API принимает сообщение, Claude квалифицирует его и возвращает строгий JSON, правило скоринга решает, куда лид отправить, а CRM хранит итог.

10 мин чтения уровень: средний 4 звена, без Zapier официальный API

Архитектура: четыре звена одной цепи

Смысл всей схемы в том, что сообщение проходит через цепочку из четырёх узлов, и на каждом шаге к нему добавляется немного структуры, которой не было в сыром тексте. WhatsApp Cloud API — точка входа, она превращает входящее сообщение в HTTP-запрос на твой сервер. Claude — мозг посередине, он читает текст на человеческом языке и возвращает данные на языке программы: намерение, бюджет, срочность, рекомендованное действие. Слой скоринга — это просто набор условий вида «если намерение высокое и срочность выше четырёх, это горячий лид», который превращает JSON от Claude в конкретное действие. И CRM — хранилище, куда попадает уже размеченный контакт со всей историей.

Ключевая разница с типичной схемой на Zapier или Make в том, что здесь нет платного посредника между каждой парой шагов. Webhook и вызов Claude API можно написать в одном небольшом обработчике, который живёт на любом сервере с Node.js или Python: получил сообщение, отправил его в Claude, получил JSON, применил правило, записал в базу. Это не сложнее скрипта на полсотни строк, просто он должен быть постоянно включён и отвечать быстро, потому что WhatsApp ждёт подтверждения доставки за секунды, а не за минуты.

4 звена цепи: WhatsApp Cloud API, Claude, скоринг, CRM
Архитектура без платных посредников между шагами

Звено первое: WhatsApp Cloud API, а не серый номер

Здесь стоит сразу закрыть вопрос, который всплывает первым: официальный ли это способ. Да, Cloud API — это продукт самой Meta, тот же WhatsApp Business Platform, через который работают крупные компании, а не обходной путь через эмуляцию личного аккаунта. Разница принципиальная: серый номер, подключённый через автоматизацию личного WhatsApp, рано или поздно банится, потому что нарушает условия использования обычного приложения. Cloud API — это отдельная инфраструктура с верифицированным бизнес-номером, официальной документацией и предсказуемым поведением.

Механика подключения простая на уровне идеи и муторная на уровне деталей: ты регистрируешь приложение в Meta for Developers, привязываешь к нему WhatsApp Business Account и номер телефона, получаешь токен доступа и настраиваешь webhook — HTTP-эндпоинт на своём сервере, на который Meta будет присылать уведомления о новых сообщениях. По официальной документации, каждое такое уведомление — это POST-запрос с JSON-телом, и твой сервер обязан ответить кодом 200 в течение нескольких секунд, иначе Meta будет повторять попытку с нарастающим интервалом до семи дней. Сам JSON выглядит примерно так:

webhook · входящее сообщение WhatsApp
{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "WHATSAPP_BUSINESS_ACCOUNT_ID",
      "changes": [
        {
          "field": "messages",
          "value": {
            "messaging_product": "whatsapp",
            "metadata": { "phone_number_id": "PHONE_NUMBER_ID" },
            "contacts": [
              { "profile": { "name": "Имя клиента" }, "wa_id": "79161234567" }
            ],
            "messages": [
              {
                "from": "79161234567",
                "id": "wamid.XXXXXXXXXXXX",
                "timestamp": "1751600000",
                "type": "text",
                "text": { "body": "Здравствуйте, сколько стоит консультация?" }
              }
            ]
          }
        }
      ]
    }
  ]
}

Твой обработчик достаёт из этой структуры номер отправителя и текст сообщения, а дальше передаёт их следующему звену. Отдельно стоит помнить про верификацию webhook при первом подключении: Meta присылает GET-запрос с challenge-токеном, и сервер должен вернуть его обратно, только после этого начинают идти реальные события.

Звено второе: Claude как квалификатор лида

Дальше начинается та часть, где раньше сидел человек. Текст сообщения из webhook отправляется в Claude вместе с системной инструкцией, которая фиксирует, что именно нужно вернуть, и в каком виде. Формулировка системного промпта здесь важнее всего остального кода, потому что от неё зависит, получишь ты предсказуемый JSON или обрывок рассуждений вперемешку с данными:

системный промпт · квалификатор лида
Ты - квалификатор входящих лидов для [ниша бизнеса].
Тебе приходит сообщение клиента из WhatsApp и, если есть,
краткая история переписки.

Проанализируй сообщение и верни ТОЛЬКО валидный JSON,
без markdown-разметки, без пояснений до или после, строго
в следующем формате:

{
  "намерение": "высокое" | "среднее" | "низкое",
  "бюджет": "<упомянутая сумма или диапазон>" или null,
  "срочность": число от 1 до 5,
  "действие": "назначить" | "прогреть" | "отсеять"
}

Если в сообщении нет данных для поля - ставь null,
а не выдумывай значение.

На конкретное сообщение «Здравствуйте, сколько стоит консультация, хочу решить вопрос на этой неделе» Claude должен вернуть что-то вроде {"намерение": "высокое", "бюджет": null, "срочность": 4, "действие": "назначить"}. Модель здесь не заменяет продавца и не ведёт переговоры, она делает ровно одну вещь: превращает разговорный текст в структуру, по которой дальше можно принимать решения программно. Именно поэтому системная инструкция такая жёсткая по формату — любой лишний текст в ответе ломает автоматический парсинг JSON на следующем шаге.

Звено третье: скоринг и маршрутизация

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

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

Три исхода скоринга: горячий, тёплый, холодный лид
Куда уходит лид после квалификации
◆ от квалификации лида — к заводу

Лиды размечены. А что дальше — как довести их до оплаты?

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

Что за практикум →

С чего начать

Проще всего собрать систему по шагам, проверяя каждый на своём номере, прежде чем пускать реальный трафик. Сначала зарегистрируй приложение в Meta for Developers и подключи тестовый номер: на старте Meta сама выдаёт тестовый бизнес-аккаунт с возможностью слать сообщения на несколько проверочных номеров, этого достаточно, чтобы отладить весь путь. Дальше подними webhook-обработчик на любом сервере, который у тебя уже есть, и проверь, что он отвечает 200 и видит входящие сообщения в логах. После этого подключи вызов Claude API с системным промптом из раздела выше и убедись, что на десяток разных тестовых сообщений модель стабильно возвращает валидный JSON. И только когда вся цепочка от сообщения до записи в CRM проверена на себе, переводи бизнес-номер из тестового режима в боевой и подключай постоянный токен доступа вместо временного.

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

Практикум · AI Cube

Собери контент-завод
вокруг этой воронки

За один вечер показываю всю цепочку: от квалификации лида до принятой оплаты. Тренды, карусели и рилсы, воронки, лид-магниты, платёжки и боты — собранные одним человеком в Claude.

Перейти на практикум