Разработка мобильного приложения для управления чат-ботами

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

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Разработка мобильного приложения для управления чат-ботами
Средний
от 1 недели до 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

Разработка мобильного приложения для управления чат-ботами

Чат-бот работает круглосуточно, а его владелец — нет. Мобильное приложение для управления ботами нужно, чтобы оператор мог обрабатывать диалоги, переданные ботом на человека, менять скрипты бота и получать уведомления о проблемах — с телефона, не открывая компьютер.

Что входит в «управление ботами»

Приложение покрывает несколько задач, которые нельзя смешивать в один экран:

Human Takeover (передача диалога оператору). Бот не смог ответить или пользователь запросил человека. Оператор получает push, открывает чат в приложении, отвечает. После завершения — возвращает диалог боту или закрывает. Это центральная функция, которой операторы пользуются постоянно.

Управление сценариями. Редактирование ответов бота, добавление новых триггеров, включение/отключение сценариев. Не все операторы должны это видеть — нужна ролевая модель.

Мониторинг. Активные диалоги прямо сейчас, статус бота (запущен/упал), очередь необработанных запросов.

Human Takeover: технические детали

Это самая требовательная к latency функция. Диалог «завис» — пользователь ждёт. Поток уведомлений:

  1. Бот решает передать диалог → публикует событие в очередь (RabbitMQ/Kafka)
  2. Сервис уведомлений отправляет push через FCM/APNs свободному оператору
  3. Оператор принимает — приложение открывает чат
  4. Приложение держит WebSocket для real-time обмена сообщениями

FCM high priority + data payload (не notification) — иначе Android в режиме Doze не разбудит приложение вовремя.

// iOS — чат-экран оператора
class OperatorChatViewModel: ObservableObject {
    @Published var messages: [Message] = []
    @Published var isConnected = false
    private var wsTask: URLSessionWebSocketTask?

    func connect(conversationId: String) {
        let url = URL(string: "wss://api.example.com/operator/conversations/\(conversationId)/ws")!
        wsTask = URLSession.shared.webSocketTask(with: url)
        wsTask?.resume()
        isConnected = true
        receiveNext()
    }

    private func receiveNext() {
        wsTask?.receive { [weak self] result in
            guard let self else { return }
            if case .success(let msg) = result,
               case .string(let text) = msg,
               let decoded = try? JSONDecoder().decode(Message.self, from: Data(text.utf8)) {
                DispatchQueue.main.async { self.messages.append(decoded) }
            }
            self.receiveNext()
        }
    }

    func send(_ text: String) {
        let msg = OutgoingMessage(text: text, conversationId: conversationId)
        let payload = try! JSONEncoder().encode(msg)
        wsTask?.send(.string(String(data: payload, encoding: .utf8)!)) { _ in }
    }

    func returnToBot() {
        Task { await conversationService.handoff(conversationId, to: .bot) }
    }
}

Очередь операторов. Если свободных операторов несколько — round robin или принять первым кто нажал. Если все заняты — диалог встаёт в очередь, SLA-таймер начинает тикать. Push приходит повторно через N минут, если никто не принял.

Список активных диалогов

Основной экран — список диалогов с индикаторами:

  • Ожидают оператора — красная плашка с временем ожидания
  • В работе у оператора — имя оператора, длительность
  • Активно с ботом — зелёный, без срочности
  • Закрытые — архив

Сортировка: сначала ожидающие оператора, внутри группы — по времени ожидания (самые долгие вверху).

На Android LazyColumn с тремя stickyHeader для групп. Обновление через WebSocket: бэкенд рассылает conversation_updated события всем подключённым операторам приложения.

Ролевая модель

Минимум два уровня:

  • Оператор — только чат и приём диалогов
  • Администратор — ещё и редактирование сценариев, управление операторами, аналитика

На уровне UI: табы и функции, недоступные по роли, — либо скрыты, либо показаны серыми с Lock-иконкой (для прозрачности). На уровне API — проверка роли на бэкенде, клиентское скрытие не заменяет серверную авторизацию.

Что входит в работу

  • Список диалогов с группировкой по статусу и real-time обновлением
  • Чат-экран оператора с WebSocket
  • Push-уведомления о новых диалогах (FCM high priority)
  • Очередь с SLA-таймером и повторными уведомлениями
  • Ролевая модель (оператор / администратор)
  • Управление сценариями (включение/выключение, редактирование ответов)

Сроки

8–14 рабочих дней в зависимости от числа каналов (Telegram, WhatsApp, Web) и сложности управления сценариями. Стоимость рассчитывается индивидуально после анализа требований.