Інтеграція SMS-розсилки у мобільний застосунок

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Інтеграція SMS-розсилки у мобільний застосунок
Простий
~2-3 дні
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Інтеграція SMS-рассилки в мобільний додаток

SMS-рассилка в мобільному додатку — це серверна завдача. Клієнт тільки ініціює запит: «відправити сповіщення користувачам X, Y, Z». Все інше — HTTP-запит на бекенд або напрямку до SMS-шлюза. Тому мобільна частина невелика, зато серверна потребує акуратного проектування.

Вибір шлюза

Найбільш розповсюджені варіанти:

Шлюз Плюси Мінуси
Twilio REST API, webhooks, глобальний охват Дороже аналогів для СНГ
SMSC.ru / SMS-шлюз.ру Дешево для РФ/СНГ Нема webhook-сповіщень про статус у ряду тарифів
Infobip Multichannel (SMS + Viber + WhatsApp) Складний onboarding
Vonage (Nexmo) SDK для мобільних, верифікація номерів Обмежений охват за СНГ

Для типового B2C-додатка з аудиторією в СНГ — SMSC або аналогічний локальний шлюз. Для міжнародного — Twilio або Infobip.

Серверна частина: що важливо реалізувати

Отправка SMS через Twilio — один HTTP-запит:

POST https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages
Authorization: Basic {base64(AccountSid:AuthToken)}
Content-Type: application/x-www-form-urlencoded

To=%2B380991234567&From=%2B14155551234&Body=Ваш+заказ+готовий

Але bulk-рассилка — це черга, не прямі вызови в цикл. Одночасна отправка 10 000 сообщень через синхронні HTTP-запити убье і бекенд, і бюджет (rate limiting шлюза). Правильна схема: черга завдань (RabbitMQ, Redis + BullMQ, SQS), воркери з throttling за rate limit шлюза.

Twilio rate limit — до 100 SMS/сек на коротком номері (Short Code), 1 SMS/сек на звичайному (Long Code). На звичайний номер — воркери повинні дотримуватися цього обмеження.

Мобільний клієнт: що реалізується

На мобільній стороні потрібно:

  1. Форма складання сообщення — з підрахунком символів (160 для Latin, 70 для Cyrillic, конкатенація при перевищенні).
  2. Вибір сегмента отримувачів — через готовий API бекенда.
  3. Запуск рассилки — POST-запит з параметрами.
  4. Відстеження статусу — polling або WebSocket/SSE для real-time прогресу.
// iOS — отправка запиту на рассилку
struct BulkSmsRequest: Codable {
    let segmentId: String
    let message: String
    let scheduledAt: Date?
}

func sendBulkSms(_ request: BulkSmsRequest) async throws -> BulkSmsJob {
    let response = try await apiClient.post("/admin/sms/bulk", body: request)
    return try response.decode(BulkSmsJob.self)
}

Символьний счётчик — важна деталь UX. SMS розбивається на частини при перевищенні лімітові, кожна частина тарифікується окремо:

fun countSmsPartsAndChars(text: String): SmsInfo {
    val isGsm7 = text.all { it.isGsm7Char() }
    val maxPerPart = if (isGsm7) 160 else 70
    val maxConcatenated = if (isGsm7) 153 else 67

    return if (text.length <= maxPerPart) {
        SmsInfo(parts = 1, charsUsed = text.length, charsPerPart = maxPerPart)
    } else {
        val parts = ceil(text.length.toDouble() / maxConcatenated).toInt()
        SmsInfo(parts = parts, charsUsed = text.length, charsPerPart = maxConcatenated)
    }
}

Статусы доставки

Twilio відправляє webhook на ваш сервер при зміні статусу кожного сообщення: queued → sending → sent → delivered або undelivered / failed. Бекенд агрегує статусы, мобільний клієнт запитує зводку:

GET /admin/sms/jobs/{jobId}/stats
→ { "total": 5000, "sent": 4823, "delivered": 4601, "failed": 177 }

Терміни

Інтеграція SMS-шлюза (Twilio або SMSC), реалізація черги рассилки, мобільний UI з счётчиком символів, вибором сегмента та відстеженням прогресу — 5–8 робочих днів.