Хотите написать своей базе в Telegram, а вместо спокойной кампании — теряете время на копипаст «всем по одному» или страх «софта рассылки». Неясно, где взять адресатов и с чего начать без программиста. Ниже — маршрут «делай вместе»: бот → таблица → Make (это конструктор сценариев без кода) → тест на трёх своих. Открытый вопрос: почему без колонки статуса и фильтра сценарий жжёт всех сразу — разберём по шагам.
Соберите Google Sheets с колонками chat_id (это адрес диалога после /start) и status. Берите только opt-in базу после /start. В Make: Search Rows с Filter pending → Send a Text Message → Update a Row sent. За вечер при тесте на 3–5 своих: три сообщения в личке, три статуса sent, сценарий ON. Без спам-софта и без парсинга чужих контактов.
Это не email-рассылка и не ответ на входящее. Стрелка наружу: список из таблицы уходит в личку бота. Рядом с запросом «рассылка в телеграм» люди часто ищут «софт» и «спам» — опасный путь. Официальный FAQ Telegram говорит иначе: только своя база после диалога и не быстрее ~30 сообщений в секунду. Цель — одна исходящая кампания своим тёплым, а не каталог «сервисов без бана».
Сначала граница: исходящая кампания, не соседние гайды

Выберите задачу до кнопок в Make. Одно слово «рассылка» в поиске тянет три чужих маршрута — если взять не тот, вечером снова тишина или чужой канал доставки.
| Задача | Что делает | Куда идти |
|---|---|---|
| Письма из Sheets | Email, не личка Telegram | email-рассылка Make + Sheets |
| Ответ на входящее | Клиент написал — бот ответил | автоответчик в Telegram |
| Заявка → строка | Входящий лид в таблицу | бот для заявок |
| Кампания своей базе | Sheets → Send в личку opt-in | Этот гайд |
Ориентир: если человек не нажал /start у бота, в список его не кладите. Не делайте ставку на парсинг чужих контактов и холодные ЛС с user-аккаунта — бот по правилам Telegram первым холодным не пишет.
Прогресс: выбрана исходящая кампания своей базе, не email и не Reply.
Создайте бота в @BotFather и спрячьте токен

Без бота Make некуда стучаться. Откройте в Telegram @BotFather и сделайте бота по шагам:
- Шаг 1. Отправьте /newbot, задайте имя и username.
- Шаг 2. Скопируйте token (длинный ключ) в менеджер паролей.
- Шаг 3. Не публикуйте токен в чат и не кладите в открытую таблицу.
- Шаг 4. Напишите боту /start со своего аккаунта — так появляется диалог.
- Шаг 5. Если бот уже был — не создавайте второго «на всякий случай».
Проверьте: бот отвечает на /start, токен только у вас. Типичная ошибка — светить токен коллеге в пересылке: у кого ключ, тот управляет ботом. Уберите ключ из публичных заметок до первого теста. На практике хватает одного бота и одного токена в менеджере паролей.
Прогресс: бот создан, /start со своего аккаунта пройден.
Соберите Google Sheets: chat_id и status

Соберите таблицу — это ваш список адресатов. Колонки: chat_id | name | optin_at | status | last_sent_at. В status держите pending и sent: так видно, кому ещё писать.
Как получить chat_id: человек пишет боту /start, id диалога появляется в апдейте — через Watch Updates (это модуль «слушать входящие» в Make) или getUpdates. Для теста внесите вручную 3–5 своих id после /start.
- Шаг 1. Создайте новую Google-таблицу с заголовками выше.
- Шаг 2. Впишите 3–5 строк только с реальными chat_id после /start; в status — pending.
- Шаг 3. Убедитесь: нет пустых ячеек и нет «0» вместо id.
- Шаг 4. Сохраните ссылку на таблицу для connection в Make.
Проверьте таблицу глазами: три–пять pending и живые id. Если chat_id пустой или «0» — человек ещё не в диалоге; исправьте строку, не гоните сценарий. Холодных без /start не добавляйте — результат будет тишина или ошибка Send.
Подключите Make: Search Rows только с Filter pending
Откройте Telegram в Make и Google Sheets в Make. Сначала connection: token бота и доступ к таблице.
В Search Rows укажите Filter на status=pending и лимит 3–5. Иначе сценарий пролетит по всей базе — пачка и дубли. На community Make это частый сюжет: без фильтра «ещё не отправлено» уходит всё сразу. Например, одна забытая галочка Filter — и Run once шлёт всем pending разом.
- Шаг 1. New scenario → Google Sheets → Search Rows.
- Шаг 2. Укажите таблицу и лист с вашими колонками.
- Шаг 3. Добавьте Filter: status Equals pending и лимит 3–5 строк на тест.
- Шаг 4. Сохраните модуль и посмотрите preview: только pending.
Проверьте preview: видны только тестовые pending. Если уходит «всем сразу» — вернитесь к Filter и лимиту, не жмите большую кнопку.
Прогресс: Search Rows режет базу до pending и лимита теста.
Отправьте текст и пометьте строку sent
Дальше два кубика. Send a Text Message — текст в личку; в Chat ID подставьте chat_id из строки Search Rows. Текст кампании один: польза + ссылка. Черновик сначала в заметках — меньше опечаток в живой рассылке.
После успешной отправки добавьте Update a Row: status = sent и дата в last_sent_at. Без Update при повторном прогоне те же люди получат дубль — типичная ошибка новичка.
- Шаг 1. Добавьте Telegram → Send a Text Message.
- Шаг 2. Chat ID = значение из колонки chat_id текущей строки.
- Шаг 3. Вставьте заранее написанный текст кампании.
- Шаг 4. Добавьте Google Sheets → Update a Row.
- Шаг 5. Запишите status sent и время отправки.
- Шаг 6. Цепочка на холсте: Search Rows → Send → Update.
Настройте имена модулей понятно («TG рассылка MVP»). Если Send падает красным — сначала сверьте chat_id и /start, а не пересобирайте весь сценарий. Второй частый сбой — Chat ID из «ручного» поля вместо колонки строки: проверьте маппинг в Send.
Прогресс: цепочка Search → Send → Update собрана на холсте.
Запустите тест на трёх своих и включите сценарий
Запустите Run once (это один ручной прогон в Make). Смотрите лички тестовых и колонку status. Если «сценарий зелёный, а в чате тишина» — почти всегда пустой chat_id, а не «сломанный» Telegram.
- Шаг 1. Нажмите Run once при лимите 3–5 pending.
- Шаг 2. Проверьте лички: пришло одно заранее написанное сообщение.
- Шаг 3. Проверьте таблицу: у этих строк status стал sent.
- Шаг 4. Посмотрите History: прогон зелёный, без красных на Send.
- Шаг 5. Снова Run once на тех же строках — новых сообщений быть не должно: Filter уже не видит pending.
- Шаг 6. Только после этого снимите лимит на большую базу осторожно.
- Шаг 7. Включите сценарий ON, если тест чистый.
Если второе сообщение всё же пришло — исправьте Update и повторите тест на одной строке. На большой базе помните FAQ: ~30 сообщений/сек; при 429 (это ответ «подожди, слишком быстро») — пауза и растяните рассылку на часы.
Результат, который сможете увидеть до большой кнопки: три спокойных сообщения своим, три sent, холодных без /start в списке нет.
Прогресс: три своих получили текст, таблица помечена sent, сценарий готов к ON.
Ветки поломок: всем сразу, дубли, ответ «подожди»
Когда Run once «пролетел» по таблице, почти всегда виноваты не «магия Make», а отсутствие статуса. Разведите сбои по веткам — быстрее, чем пересоздавать бота.
- Если ушло всем сразу — верните Filter pending и лимит 3–5.
- Если пришли дубли — проверьте, что после Send строка стала sent.
- Если в логе 429 — уменьшите параллель, поставьте паузу; FAQ советует растягивать большие волны на 8–12 часов.
Исправьте одну ветку за раз, снова запустите тест на трёх pending. Сможете отличить «нет адреса» (пустой chat_id) от «слишком быстро» (429) и от «нет памяти об отправке» (нет Update).
Прогресс: знаете, какую ветку чинить до расширения базы.
Что дальше после первой спокойной рассылки
Вернёмся к вечеру копипаста и страху «софта». Теперь Run once не жжёт всех подряд: Filter pending и Update sent держат одну кампанию. Сэкономьте время на ручной рассылке — база в Sheets, кнопка в Make.
Дальше: автоворонка без кода, отложенный постинг, Make или n8n (это другой конструктор сценариев), автоматизация маркетинга. События с сайта — первый webhook (это сигнал с сайта в Make).
Разборы и шаблоны — в Telegram t.me/maya_pro и в MAX max.ru/maya_pro. Курс по Make — на kv-ai.ru/obuchenie-po-make, если захотите углубить стек после рабочей рассылки.
Материал проверен: Артур Хорошев, CEO Maya AI, автор курса по Make.com и вайбкодингу. Профиль: kv-ai.ru/artur-horosheff.
Опора на источники: core.telegram.org/bots и /bots/faq (opt-in, ~30 msg/sec, 429; 2026-07-20); apps.make.com/telegram и apps.make.com/google-sheets; community.make.com #93240 (Search Rows без Filter); Wordstat region 225 на 2026-07-20 («рассылка в телеграм» 1312 рядом с «софт»/«спам»).
Частые вопросы
Подойдёт ли рассылка через Make без опыта кода?
Да. Маршрут выше — BotFather, колонки Sheets и три модуля Make. Программист не нужен для MVP на 3–5 своих.
Чем эта рассылка отличается от автоответчика?
Автоответчик ждёт входящее и отвечает. Здесь вы сами запускаете кампанию списку pending из таблицы. Если нужен ответ «здесь и сейчас» — берите гайд про автоответчик.
Где взять chat_id, если таблица пустая?
Только после /start у бота. Для теста впишите свои id вручную. Для потока — допишите Watch Updates → Add a Row из гайда заявок, но ядро B65 — исходящее Send, не склад лидов.
Что делать, если Run once шлёт всем сразу?
Добавьте Filter status=pending и лимит 3–5. После Send обязательно Update sent. Без статуса community-сценарии часто дублируют.
Можно ли писать тем, кто не нажимал /start?
Нет. Бот не начинает диалог с холодным. Парсинг чужих и «софт без бана» — не этот гайд и не безопасный путь.
Что значит ошибка 429 при большой базе?
Telegram просит подождать: bulk через Bot API (это официальный канал бота к Telegram) около 30 сообщений в секунду. Сделайте паузу, растяните рассылку, не долбите повторным Run once без статуса.
Нужен ли сразу платный Paid Broadcasts?
Нет. Для новичка в первый вечер — Free-лимиты и тест на троих. Paid Broadcasts в BotFather — про рост, не про первую кампанию.