Как настроить SMS-цепочку через SMPP для малого бизнеса

Как настроить SMS-цепочку через SMPP для малого бизнеса

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

Из каких этапов состоит SMS-воронка?

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

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

  1. клиент оставил заявку;
  2. система отправила подтверждение;
  3. менеджер изменил статус сделки;
  4. клиент получил предложение или напоминание;
  5. сделка закрыта либо передана на повторный контакт.

У каждого сообщения должен быть собственный триггер. Если один и тот же статус обновляется несколько раз, система обязана проверить, отправлялось ли уведомление раньше. Для защиты от повторов используют уникальный идентификатор события и журнал отправок. Отдельные рекомендации по защите API и SMPP от дублей собраны в материале «Почему SMS отправляется дважды».

Как выбрать между API и SMPP?

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

Задача Подход Что настроить
Подтвердить заявку или заказ API Запрос из сайта или CRM после создания события, проверка ответа шлюза
Отправлять сообщения из очереди API с очередью или SMPP Приоритеты, лимиты, повторные попытки, журнал статусов
Обрабатывать высокий или неравномерный поток SMPP Постоянную сессию, контроль соединения и распределение нагрузки
Разбирать сбои доставки API и SMPP с отчётами Получение delivery receipt, хранение кода статуса и времени ответа

При подключении через SMPP приложение открывает сессию с шлюзом и передаёт сообщения командами протокола. Система получает подтверждение приёма, а позже может получить отчёт о доставке. Эти события нельзя смешивать: подтверждение приёма шлюзом ещё не означает, что SMS дошло до телефона.

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

Как спроектировать триггеры и текст сообщений?

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

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

Длина влияет на число SMS-сегментов. Для GSM-7bit один сегмент обычно содержит до 160 знаков, а при использовании Unicode, например кириллицы, ориентир составляет до 70 знаков. Длинный текст разбивается на несколько частей и увеличивает объём отправки. Поэтому перед запуском проверьте кодировку, длину, ссылку и переменные. Отдельно о длине кириллических сообщений и стоимости сегментов рассказывает материал «Как не переплачивать за SMS с кириллицей и эмодзи».

Событие Пример задачи Что передать в сообщение Когда остановить цепочку
Новая заявка Подтвердить обращение Факт заявки и следующий шаг После отправки подтверждения
Нет изменения статуса Напомнить клиенту Короткое напоминание и действие После ответа или контакта менеджера
Сделка закрыта Подтвердить результат Информация о заказе или услуге Сразу после отправки
Срок повторного обращения Напомнить о следующем заказе Причина сообщения и понятная ссылка После нового заказа или отказа

Как настроить очередь, статусы и повторные попытки?

Не отправляйте SMS прямо внутри обработчика заявки, если система должна выдерживать задержки шлюза. Сначала запишите сообщение в очередь. В записи очереди храните номер события, получателя, текст или шаблон, приоритет, время создания и число попыток. Отдельный обработчик забирает записи, отправляет их через API или SMPP и фиксирует ответ.

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

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

Для очередей с ограничением скорости задайте интервал между отправками и отдельный лимит для каждого направления. Полезная техническая схема с rate limit и приоритетами разобрана в материале о построении очереди SMS в API и SMPP.

Как проверить цепочку до запуска?

Тестируйте каждый триггер отдельно. Создайте тестовую заявку, убедитесь, что SMS попало в очередь, проверьте запрос к шлюзу и сопоставьте его с отчётом доставки. Затем измените статус сделки и проверьте, остановилась ли старая ветка. Повторно отправьте одно и то же событие: система должна распознать его идентификатор и не создать второе сообщение.

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

В рабочем режиме смотрите на четыре показателя: число сообщений в очереди, долю успешной передачи шлюзу, статусы доставки и количество повторных попыток. Если доставка ухудшилась, сначала сравните время отправки, код ошибки и направление. Технические сбои, ошибки в содержании и фильтрация операторами относятся к разным классам причин, поэтому и проверяют их по-разному (Проблемы с доставкой SMS: диагностика и решения, IBZ Source).

Какие ошибки встречаются чаще всего?

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

3 шага, которые можно сделать на этой неделе:

  1. Нарисовать одну цепочку: заявка, подтверждение, напоминание, завершение.
  2. Связать каждый этап с уникальным событием и настроить очередь через API или SMPP.
  3. Провести тестовые отправки, проверить статусы, повторы и длину SMS до запуска для клиентов.