Результат

Что получится в конце

Telegram-бот, который отвечает на типовые вопросы клиентов сам — про сроки, цены, условия. Если вопрос нестандартный, он молча пересылает диалог мне, добавляя короткое резюме и предлагаемый ответ. Я нажимаю "Отправить" — или правлю и отправляю.

За три месяца работы цифры такие:

82%диалогов закрыты без меня
2,3 смедианное время ответа

Связка решает одну задачу: проверяет входящий вопрос и выбирает ответ из шаблона или генерирует его. Правила и примеры записаны в системном промпте на 800 токенов. Если вопрос выходит за эти правила, диалог передаётся человеку.

Новые разборы сначала выходят в Telegram-боте →

Зачем

Когда это пригодится

  • Клиенты пишут вам в Telegram, и многие вопросы повторяются.
  • Вы хотите ответить быстрее, чем за час, но не готовы нанимать оператора.
  • Вам важно не потерять "нестандартные" лиды — а текущая ситуация такова, что часть из них теряется в потоке.
  • Вам нужно записывать все диалоги в одну таблицу для анализа и обучения шаблонов.
  • Вы умеете читать JSON и готовы развернуть n8n на своём сервере.

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

Стоимость

Что нужно и сколько стоит

  • Сервер для n8n — свой или арендованный. Проверьте требования версии n8n, которую устанавливаете.
  • Anthropic API — стоимость зависит от модели, длины сообщений и числа запросов.
  • Telegram Bot — бесплатно через @BotFather
  • Домен для webhook (опционально, можно через Cloudflare Tunnel) — стоимость зависит от регистратора

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

Доступы, которые понадобятся: аккаунт Anthropic Console с биллингом, Telegram-аккаунт для @BotFather, root на VPS (или хотя бы Docker), домен или подключённый Cloudflare Tunnel.
Setup

Пошагово

  1. Поднять n8n на VPS через Docker

    Я разворачиваю n8nio/n8n через docker-compose с Caddy для HTTPS. Конфиг минимальный, главный нюанс — переменная WEBHOOK_URL должна указывать на публичный URL, иначе Telegram не достучится.

    docker-compose.yml
    services:
      n8n:
        image: n8nio/n8n:latest
        restart: unless-stopped
        environment:
          - WEBHOOK_URL=https://n8n.example.ru
          - N8N_HOST=n8n.example.ru
          - N8N_PROTOCOL=https
          - N8N_BASIC_AUTH_ACTIVE=true
          - N8N_BASIC_AUTH_USER=${N8N_USER}
          - N8N_BASIC_AUTH_PASSWORD=${N8N_PASS}
        volumes:
          - ./n8n_data:/home/node/.n8n
        ports:
          - "127.0.0.1:5678:5678"
  2. Создать бота через @BotFather и получить токен

    В Telegram пишем /newbot, даём имя, получаем токен вида 123:ABC.... Сохраняем в .env n8n как TG_TOKEN. Тут же отключаем Group Privacy через /setprivacy, если планируем держать бота в групповых чатах.

  3. Поставить webhook у Telegram на n8n

    В n8n создаём workflow с триггером Telegram Trigger. Он сам зарегистрирует webhook через bot API. Если сделать руками — один POST:

    bash
    curl -X POST "https://api.telegram.org/bot${TG_TOKEN}/setWebhook" \
      -d "url=https://n8n.example.ru/webhook/tg-bot"

    Проверка: curl https://api.telegram.org/bot${TG_TOKEN}/getWebhookInfo. В поле last_error_message должно быть пусто.

  4. Промпт и ноды Anthropic

    В workflow после Telegram-триггера добавляем ноду HTTP Request на https://api.anthropic.com/v1/messages (есть нативный community-узел, но я предпочитаю HTTP — меньше зависимостей при апдейтах).

    Системный промпт хранится в отдельном узле Set: правила, тон, примеры на 6–8 диалогов. Главное правило промпта одно: "если запрос не подпадает под X/Y/Z — ответь словом ESCALATE".

  5. Маршрутизация: ответ боту или мне

    После ответа Claude — узел IF: если в ответе содержится ESCALATE, отправляем мне диалог + предложенный ответ через отдельный Telegram-узел. Иначе — отвечаем клиенту через Telegram Send Message.

    Параллельно пишем диалог в Google Sheets: время, user_id, текст вопроса, текст ответа, путь (auto/escalate). Это понадобится через месяц, когда захочется посмотреть "а что вообще спрашивают".

Архитектура

Как это работает

Схема простая: Telegram → n8n → проверка вопроса → ответ клиенту или передача человеку. Больше всего внимания здесь требуют правила ответа и примеры для модели.

Один важный нюанс: я не использую chat-историю. Для типовых запросов клиенты не строят диалог — пишут вопрос, получают ответ, уходят. Хранить контекст между сообщениями означало бы платить за токены и риск, что модель "закопается" в старый контекст. Если запрос требует нескольких реплик — это уже ESCALATE.

Подводные камни

На что я наступил

1. Telegram режет webhook на длинных ответах. Если ответ от Claude превышает 4096 символов — сообщение обрезается без ошибки. Я добавил жёсткий лимит в системный промпт ("не более 600 слов") и проверку длины перед отправкой.

2. n8n теряет webhook после рестарта если поменял домен. При первом переезде на новый поддомен я полчаса не понимал, почему бот молчит. Решение — после смены WEBHOOK_URL руками заново регистрировать webhook у Telegram.

3. Claude иногда "галлюцинирует" цены. Если в системном промпте упомянуть "обсуждай тарифы" без явного списка — модель уверенно выдумает цифры. Я держу прайс-лист отдельным узлом и добавляю его в каждый запрос как user-сообщение.

4. Я не тестировал на нагрузке выше 30 сообщений в минуту. Бутылочное горлышко — n8n executions, не API. На моих объёмах это никогда не было проблемой; на ваших — может быть.

Что дальше

Что попробовать дальше

Очевидное направление — добавить мини-RAG поверх корпоративной wiki. У меня нет такой задачи, но если бы была — я бы взял LlamaIndex и держал индекс на той же VPS. Стоимость запросов и хранения нужно считать отдельно.

Менее очевидное — заменить Telegram-триггер на универсальный "канал входа" с поддержкой WhatsApp Business и почты. Тогда вся связка превращается в полноценный inbox-агрегатор.

Альтернативы, которые я смотрел: Make (дороже на наших объёмах), Zapier (ещё дороже и без HTTP-нод нормальных), кастомный сервис на Python (быстрее, но дольше делать и потом кому-то поддерживать).


Новые разборы — сначала в Telegram

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

Открыть бота
Помощь с внедрением

Хотите такую связку внутри своих процессов, а не на демо-данных? Собираю автоматизацию внутри вашего стека и остаюсь на сопровождении — те же методы, которыми держу в проде свои продукты.

Внедрение ИИ в процессы