Как подключить виртуальный номер к боту Telegram — пошаговое руководство
Ты хочешь, чтобы твой бот в Telegram принимал звонки и SMS с реальных номеров — не с твоего личного, не с какого-то случайного. Нужно, чтобы клиенты звонили, писали, а ты получал всё это через бота, не раскрывая свои данные. Это не фантастика — это стандарт для бизнеса, который масштабируется. Но как это сделать без ошибок, чтобы не потратить время и деньги впустую? Я расскажу, как это работает на практике — от выбора номера до того, как бот начинает отвечать на звонки.
Зачем это вообще нужно?
Представь: ты запустил бота для поддержки клиентов. Он отвечает на вопросы, отправляет ссылки, напоминает о заказах. Но клиенты хотят поговорить. Или отправить фото паспорта. Или уточнить детали по звонку. Ты не можешь давать им свой номер — это не безопасно, не масштабируемо и не профессионально. Виртуальный номер решает это: он работает как посредник. Звонят — бот получает вызов, записывает, отвечает, перенаправляет. SMS приходят — бот их читает, анализирует, реагирует. И всё это без твоего реального телефона.
Это особенно важно, если:
- Ты ведёшь бизнес из дома, но не хочешь, чтобы клиенты знали твой адрес или номер;
- У тебя несколько проектов — хочешь разделять каналы связи;
- Ты работаешь с международными клиентами — нужен номер из другой страны;
- Ты не хочешь, чтобы бот отвечал на звонки с номеров, которые потом блокируют или спамят.
Шаг 1: Выбери сервис виртуальных номеров
Не все сервисы одинаковы. Некоторые дают номера только для SMS, другие — только для звонков. Некоторые работают с Telegram API, другие — нет. Ты должен выбрать тот, который поддерживает оба: входящие звонки и SMS, и имеет интеграцию с Telegram через вебхуки или API.
Вот что реально работает:
| Сервис | Поддержка звонков | Поддержка SMS | Интеграция с Telegram | Цена за номер (в месяц) | Страны |
|---|---|---|---|---|---|
| Twilio | Да | Да | Через вебхуки | $1–2 | 50+ |
| Vonage (ex Nexmo) | Да | Да | Через вебхуки | $1–2 | 70+ |
| SMSService | Нет | Да | Через API | ₽100–200 | РФ, СНГ |
| 2Captcha (для SMS) | Нет | Да | Через API | ₽10–30 за SMS | РФ, Украина, Казахстан |
| TextNow (для США/Канады) | Да | Да | Нет (только приложение) | Бесплатно | США, Канада |
Сервисы вроде SMSService и 2Captcha — хороши, если тебе нужен только SMS. Но если хочешь звонки — выбирай Twilio или Vonage. TextNow выглядит как бесплатный вариант, но он не даёт доступа к API — только через приложение, а это не подходит для бота. Не трать время на них.
Шаг 2: Зарегистрируй номер и настрой его
Допустим, ты выбрал Twilio. Зарегистрируйся, подтверди почту, добавь способ оплаты (карта или PayPal). Далее:
- Перейди в раздел Phone Numbers → Buy a Number.
- Выбери страну — например, Россия, США или Германия. Лучше брать номер той страны, где твои клиенты.
- Выбери тип: Voice & SMS — именно так, не только SMS.
- Купи номер. Обычно стоит $1 в месяц.
- После покупки ты увидишь номер и его Account SID и Auth Token. Запиши их — они понадобятся позже.
Теперь настрой входящие звонки:
- В настройках номера найди Voice & Fax.
- Выбери Webhook в поле When a call comes in.
- Вставь URL своего сервера: например,
https://твой-домен.ru/telegram-call-handler.
Для SMS:
- В том же разделе найди Messaging.
- Выбери Webhook в поле When a message is received.
- Вставь тот же URL, что и для звонков.
Ты только что настроил номер так, что все звонки и SMS будут приходить на твой сервер. Теперь нужно, чтобы сервер передавал это боту в Telegram.
Шаг 3: Создай бота в Telegram и получи токен
Если ты ещё не создал бота — сделай это сейчас.
- Открой Telegram, найди бота @BotFather.
- Отправь команду
/newbot. - Дай ему имя (например, Клиентский помощник).
- Придумай имя пользователя — оно должно быть в формате
@ИмяБота_bot. - BotFather пришлёт тебе токен. Скопируй его — это ключ к твоему боту. Храни его в секрете.
Теперь у тебя есть два ключа:
- Токен бота Telegram — чтобы отправлять сообщения;
- Account SID и Auth Token Twilio — чтобы получать звонки и SMS.
Шаг 4: Напиши обработчик на сервере
Ты не можешь просто вставить номер в Telegram — нужно, чтобы сервер принимал данные от Twilio и передавал их боту. Это можно сделать на Python, Node.js, PHP — что удобнее.
Пример на Python (Flask):
from flask import Flask, request
import requests
import os
app = Flask(__name__)
TELEGRAM_TOKEN = "твой_токен_бота"
TELEGRAM_CHAT_ID = "id_чата_или_пользователя" # Получи его через @userinfobot
@app.route('/telegram-call-handler', methods=['POST'])
def handle_call_or_sms():
data = request.form
from_number = data.get('From') # Номер звонящего
message = data.get('Body') # Текст SMS (если есть)
call_status = data.get('CallStatus') # Статус звонка
if message:
# Это SMS
text = f"📩 SMS от {from_number}: {message}"
send_telegram_message(text)
elif call_status == "ringing":
# Звонок начался
text = f"📞 Звонок от {from_number}"
send_telegram_message(text)
elif call_status == "completed":
# Звонок завершён
text = f"📞 Звонок от {from_number} завершён"
send_telegram_message(text)
return "OK", 200
def send_telegram_message(text):
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
requests.post(url, data={
"chat_id": TELEGRAM_CHAT_ID,
"text": text
})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Этот код:
- Принимает данные от Twilio (номер, текст SMS, статус звонка);
- Отправляет это в Telegram как сообщение;
- Не требует сложных библиотек — только
flaskиrequests.
Теперь тебе нужен сервер. Это может быть:
- Виртуальный сервер на DigitalOcean ($4/мес);
- Heroku (бесплатно, но с ограничениями);
- Российский хостинг, если твои клиенты в СНГ — например, Beget или Timeweb.
Важно: сервер должен быть доступен из интернета. Если ты запускаешь его на локальной машине — не будет работать. Twilio не может подключиться к твоему домашнему компьютеру.
Шаг 5: Настрой обратную связь — как бот отвечает
Ты получил звонок — теперь бот должен уметь отвечать. Это не обязательно голосовой ответ. Обычно достаточно:
- Отправить пользователю сообщение в Telegram: «Спасибо за звонок. Мы ответим в течение 2 часов»;
- Сохранить номер и текст в базу данных;
- Отправить уведомление менеджеру в Telegram;
- Автоматически ответить SMS: «Ваш запрос принят. Номер заказа: #123».
Для этого нужно расширить код. Например, если человек написал «заказ» — бот может отправить ему ссылку на форму. Если звонок длился больше 10 секунд — отправить уведомление менеджеру.
Пример: если в SMS есть слово «заказ» — отправить ссылку:
if "заказ" in message.lower():
send_telegram_message("Ваш запрос на заказ принят. Заполните форму: https://ссылка.рф/form")
Это не требует сложного ИИ. Достаточно простых ключевых слов.
Что выбрать: Twilio или Vonage?
Оба сервиса работают одинаково. Но есть нюансы:
- Twilio — лучше документация, больше примеров, проще начать. Подходит для новичков.
- Vonage — чуть дешевле при больших объёмах. Если ты планируешь 1000+ звонков в месяц — выгоднее.
- SMSService — если нужен только SMS и ты работаешь с русскоязычными клиентами — дешевле и проще. Но без звонков.
Если ты только начинаешь — выбирай Twilio. У него есть бесплатный тариф на 30 дней. Ты можешь всё протестировать, не платя ни цента.
Частые ошибки
Вот что ломает интеграцию чаще всего:
- Сервер не доступен из интернета. Если ты запустил Flask на localhost — Twilio не может к нему подключиться. Нужен публичный IP и порт 443 или 80.
- Неправильный URL в вебхуке. Должен быть
https://, а неhttp://. Без HTTPS Twilio не отправляет данные. - Токен бота выложен в GitHub. Если ты загрузил код с токеном в публичный репозиторий — бота заблокируют. Используй .env файлы.
- Ожидаешь голосовой ответ. Ты можешь получать звонок как событие, но не можешь проиграть аудио через Telegram. Если нужен голосовой ответ — используй Twilio Voice, но не через Telegram, а через отдельный звонок.
- Пытаешься использовать бесплатные номера вроде TextNow. Они не работают с API. Это только приложение.
- Не тестируешь в реальных условиях. Звонок из реального телефона, а не из симулятора. Проверяй, как бот реагирует на реальных клиентов.
Как лучше сделать — практические рекомендации
- Начни с тестового номера. Купи номер на 1 месяц, протестируй всё. Не вкладывайся сразу в годовой тариф.
- Используй логирование. Записывай все входящие данные в файл или базу. Потом сможешь посмотреть, что приходило, и отладить ошибки.
- Не делай бота слишком умным. Если ты не разработчик — не пытайся встроить ИИ. Достаточно ключевых слов и шаблонных ответов.
- Сделай резервный канал. Если бот не отвечает — пусть приходит уведомление на твой Telegram. Ты всегда можешь вмешаться.
- Проверяй статусы звонков. Не все звонки — это реальные клиенты. Много «номеров-спамеров». Фильтруй по региону и по длительности.
Что делать в разных ситуациях
Ты не один. У всех разные задачи. Вот как поступать в разных сценариях:
- Ситуация: ты в России, клиенты — русскоязычные, нужен только SMS.
Выбирай SMSService. Платишь 100–200₽ в месяц за номер. Получаешь SMS — бот отвечает шаблоном. Просто, дешево, работает. - Ситуация: ты продаёшь за границу, клиенты из США, нужен звонок и SMS.
Бери Twilio с номером США. Настрой вебхук. Отправляй уведомления в Telegram. Добавь автоматический ответ: «Спасибо за звонок. Мы свяжемся с вами в течение 24 часов». - Ситуация: ты запускаешь тестовый проект, бюджет — 0 рублей.
Используй бесплатный тариф Twilio (30 дней). Создай бота. Подключи его к временному серверу на Heroku. Протестируй. Если работает — инвестируй в платный хостинг и номер. - Ситуация: ты не умеешь писать код.
Используй платформы вроде Zapier или Make (ранее Integromat). Подключи Twilio → Telegram. Там есть готовые шаблоны. Не так гибко, но работает без программирования.
Итог: что делать прямо сейчас
Если ты дошёл до этого места — ты уже понимаешь, как это работает. Теперь сделай так:
- Зарегистрируйся на Twilio.
- Купи номер с поддержкой звонков и SMS (выбери страну, где твои клиенты).
- Создай бота в Telegram через @BotFather — запомни токен.
- Зарегистрируй бесплатный сервер на DigitalOcean ($4/мес).
- Загрузи простой код на сервер (как в примере выше).
- Настрой вебхуки в Twilio на этот сервер.
- Позвони с мобильного на свой виртуальный номер — убедись, что бот получил уведомление.
Это займёт у тебя 2–3 часа. Если всё получилось — ты теперь можешь масштабировать: добавить ещё номера, настроить автоматические ответы, интегрировать с CRM. Если не получилось — перечитай шаги, проверь URL, убедись, что сервер доступен по HTTPS. Это не магия — это технология, которая работает, если делать шаг за шагом.
Не пытайся всё сделать сразу. Начни с одного номера, одного типа сообщения — SMS или звонка. Потом добавляй остальное. Главное — не откладывай. Сделай хотя бы первый шаг сегодня.
Информация в статье носит ознакомительный характер. При выборе сервисов и настройке систем рекомендуется проконсультироваться с техническим специалистом, чтобы избежать рисков, связанных с безопасностью данных и соблюдением законодательства.
