Интеграция Zendesk SDK для поддержки в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция Zendesk SDK для поддержки в мобильном приложении
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Интеграция Zendesk SDK для поддержки в мобильном приложении

Zendesk SDK даёт пользователям доступ к live-чату и тикет-системе прямо из приложения. Но интеграция занимает больше дня не из-за сложности SDK — а из-за тонкостей инициализации, конфликтов с другими зависимостями и настройки кастомного UI под дизайн-систему продукта.

Архитектура Zendesk SDK

Zendesk предлагает два независимых SDK:

  • Zendesk SDK (Support) — создание тикетов, просмотр истории обращений
  • Zendesk Chat SDK — live-чат с агентом в реальном времени
  • Zendesk Messaging (рекомендуется для новых проектов) — объединяет чат и тикеты, работает через Sunshine Conversations

Для большинства новых интеграций рекомендуем Messaging SDK — он заменяет оба предыдущих и поддерживает push-уведомления о новых ответах агента.

Интеграция на iOS (Swift)

// AppDelegate или @main App
import ZendeskSDKMessaging
import ZendeskSDK

func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    Zendesk.initialize(
        withAppId: "YOUR_APP_ID",
        clientId: "YOUR_CLIENT_ID",
        zendeskUrl: "https://yoursubdomain.zendesk.com"
    )
    Messaging.initialize(with: Zendesk.instance!)
    return true
}

Открытие чата:

let messagingViewController = Messaging.instance?.messagingViewController()
present(messagingViewController!, animated: true)

Проблема с инициализацией. Если Zendesk.initialize вызывается не в главном потоке — SDK падает с Thread Checker предупреждением в Xcode и иногда крэшем на cold start. Инициализация только на main thread.

Идентификация пользователя

Для авторизованных пользователей передаём JWT-токен вместо анонимной сессии:

Zendesk.instance?.setIdentity(
    .jwtWithToken(token: userJwtToken)
)

JWT-токен генерируется на backend со стандартными claims: sub (user ID), email, name. Без идентификации агент видит анонимного пользователя и не может связать чат с историей аккаунта.

Интеграция на Android (Kotlin)

// Application.onCreate()
Zendesk.initialize(this,
    appId = "YOUR_APP_ID",
    clientId = "YOUR_CLIENT_ID",
    zendeskUrl = "https://yoursubdomain.zendesk.com"
)
Messaging.initialize(Zendesk.instance)
// Открытие экрана поддержки
val intent = Messaging.instance!!.getMessagingActivity(context)
startActivity(intent)

Конфликт с Proguard. Zendesk SDK требует специфичных keep-правил. Если их нет — приложение крэшится при открытии чата в release-сборке с ClassNotFoundException. Актуальные правила есть в официальной документации, но AGP иногда их не применяет автоматически через consumerProguardFiles.

# proguard-rules.pro
-keep class zendesk.** { *; }
-keep class com.zendesk.** { *; }

Push-уведомления для новых ответов агента

Пользователь закрыл приложение — нужно уведомить о новом ответе:

// iOS: регистрируем токен в Zendesk
func application(_ application: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    Zendesk.instance?.pushNotificationsProvider?.register(
        deviceToken: deviceToken,
        locale: Locale.current.languageCode ?? "en"
    )
}

Zendesk сам отправляет push через свой сервис — не нужно настраивать отдельный серверный механизм. Но APNS-сертификат или p8-ключ нужно добавить в Zendesk Admin Console → Channels → Mobile SDK.

Кастомизация UI

Zendesk Messaging SDK предоставляет ограниченную кастомизацию через MessagingConfiguration. Если нужен полностью кастомный UI — смотрим в сторону Sunshine Conversations REST API: получаем историю через API, рендерим сами, отправляем сообщения через webhook.

Ориентиры по срокам

Базовая интеграция с чатом и push — 2–4 дня. Настройка JWT-идентификации, кастомного UI и тестирование push на iOS и Android — до 1 недели.