IOSOR База знаний

Inbound-события и inbox на арендованных номерах: двусторонний ops без хаоса webhook

Как B2B-команды принимают SMS и voice на арендованных номерах, строят inbox UX и обрабатывают retry/idempotency — white-label и prepaid-честно.

Outbound получает слайды; inbound — пейджер. Когда клиент отвечает STOP, шлёт фото или перезванивает на арендованный номер, платформа должна доставить события в ваши системы — с inbox, которому верит support. Двусторонний продукт без inbound-дисциплины — одностороннее обещание с очередью жалоб.

IOSOR назначает арендованные номера с inbound webhook и client-safe ошибками — без чужого портала для day-two ops, честный white-label каталог. Около USD 1 000+ месячного platform usage доказательства webhook auth, логи STOP и correlation ID inbox становятся материалом коммерческого review. Сначала evidence, потом scale.

Типы событий, которые нужно спланировать

Событие Поверхность продукта Нужно ops
Входящий SMS Thread / ticket Deduped webhook + хранение
Delivery receipts Timeline статуса Correlation к исходящей отправке
Voice callbacks Очередь / голосовая почта Политика записи + согласие
Keyword STOP/HELP Compliance-лог Немедленный suppression

Inbound — не «всё, что пришло». У каждого класса события есть product surface и ops-нужда. Пропуск STOP — compliance-инцидент; пропуск DLR correlation — слепое пятно финансов. См. гайд по двустороннему inbox и политика ключевых слов STOP и HELP.

Дисциплина webhook для inbound

  • Аутентифицируйте входящие запросы
  • Idempotent handlers — retries нормальны
  • Persist до side effects (CRM, auto-replies)
  • Dead-letter queue с replay

Retries будут. Дубли тикетов из неаутентифицированных, неидемпотентных consumer — типичный провал. Сравните повторы входящего вебхука. Сохраните событие до CRM и auto-reply, иначе replay даст второй тикет и второе сообщение клиенту. Каталог live без webhook auth — обещание, которое нельзя защитить.

Inbox UX без дыр для фрода

Inbox — не игрушка-чат, а evidence:

  1. Номер, timestamp и тело с безопасной редакцией.
  2. Связь с outbound-контекстом, если ответ в thread.
  3. Rate-limit auto-replies против циклов.
  4. Audit-экспорт для compliance-вопросов.

Агенты не должны видеть сырые upstream payload. White-label ошибки остаются usable; секреты и диагностика остаются в ops. Auto-reply без consent-контекста становится циклом, который жжёт prepaid и злит получателя.

Жизненный цикл арендованного номера и inbox

Номера renew по UTC calendar-month; release должен чисто останавливать inbound events. Задокументируйте owners для renew vs retire — финансы не должны узнавать о смерти номера от злых клиентов. Параллельно: реальность аренды local и toll-free. Строка inbox без живого assignment — призрак; live-номер без владельца inbox — немониторимый inbound-канал. Каталог in setup — не двусторонний production.

Красные флаги

  • Inbound «coming soon» на production-номерах
  • Нет dedupe → дубли тикетов
  • Auto-replies без consent-контекста
  • Нельзя trace, какой номер получил событие
  • Upstream payload сырьём агентам
  • Webhook без подписи при каталоге live
  • Release номера, который всё ещё доставляет inbound

Старт с IOSOR

Назначьте один арендованный двусторонний номер. Отправьте тестовый MO. Откройте inbox и подтвердите одну строку с DID, тенантом и correlation id. Проиграйте то же событие из dead-letter и убедитесь, что второй строки нет. Дайте support путь STOP, который они прочитают вслух. Это артефакт inbox на арендованном DID, не блокировка шлюза и не дроссель потопа.

Итог IOSOR

Inbox на арендованном номере — строка для support. Webhook 2xx без строки — тихий дроп.

Делайте: привяжите каждый MO к строке, которую агент откроет. Не делайте: оставлять inbound в сыром логе и называть это inbox.

Был ли материал полезен?

Связанные гайды