Приложение с тысячами пользователей — и email-поддержка тонет в хаосе. Чат внутри приложения стал стандартом, но не каждый SDK выдерживает нагрузку. Freshdesk SDK популярен, но на практике мы сталкивались с потерянными историями после переустановки, конфликтами тем на Android и неожиданным расходом памяти. За 5+ лет мы интегрировали его в 50+ проектов — от финтеха до e-commerce. SDK покрывает основные потребности: чат, FAQ, push-уведомления, тикет-система. Однако документация часто отстаёт от релизов, и без боевого опыта легко наступить на грабли. Разберём ключевые моменты, чтобы интеграция прошла гладко.
Почему стоит выбрать Freshdesk SDK?
Freshdesk SDK — выбор, когда нужна тикет-система с чатом, но хочется избежать enterprise-ценников Zendesk или Intercom. Freshdesk дешевле при сопоставимом функционале и подходит для проектов с бюджетом под контроль. SDK поддерживает чат, FAQ, push-уведомления и REST API. Интеграция занимает от 2 дней до недели — в зависимости от требуемых кастомизаций. Например, базовая конфигурация с чатом и FAQ готова за 2–3 дня, а полная с Restore ID и мультиязычностью — до недели. В 90% случаев команде удаётся уложиться в эти рамки.
Как мы подключаем SDK
Для установки SDK выполните следующие шаги:
- Добавьте зависимость в проект.
- Настройте инициализацию в точке входа приложения.
- Настройте push-уведомления (APNs/FCM).
- Кастомизируйте тему под бренд.
iOS
# Podfile pod 'FreshchatSDK' Freshchat SDK добавляет около 8–12 MB к размеру бинарника. Для приложений, где вес критичен, это важно учесть до начала интеграции.
Android
// build.gradle.kts implementation("com.freshchat.consumer.sdk:freshchat-android:5.x.x") Для Android требуется минимальный minSdk = 21 — если в проекте ниже, потребуется понижение или условная загрузка.
Инициализация (iOS)
import FreshchatSDK let config = FreshchatConfig( appID: "YOUR_APP_ID", andAppKey: "YOUR_APP_KEY" ) config.teamMemberInfoVisible = true config.showNotificationBanner = true Freshchat.sharedInstance().initWith(config) На Android инициализация аналогична: создаёте FreshchatConfig в Application.onCreate().
Как настроить push-уведомления для Freshchat?
Push-уведомления — ключевой канал для мгновенного ответа. Freshchat использует собственный push-канал через APNs на iOS и FCM на Android. Вам потребуется загрузить p8-ключ или p12-сертификат в Freshdesk Admin → Mobile App. В приложении передайте APNs токен при регистрации:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { Freshchat.sharedInstance().setPushRegistrationToken(deviceToken) } При получении уведомления проверьте, принадлежит ли оно Freshchat:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) { if Freshchat.sharedInstance().isFreshchatNotification(userInfo) { Freshchat.sharedInstance().handleRemoteNotification(userInfo, andAppState: application.applicationState) } } Этот фрагмент кода — стандартная обработка. Не забудьте настроить App Groups для совместного использования push-данных между приложением и расширениями.
Какие типичные ошибки возникают при интеграции?
Ниже — таблица частых проблем и их решений:
| Проблема | Решение |
|---|---|
| Конфликт тем на Android | Наследовать тему Freshchat от вашей базовой через FreshchatTheme override в styles.xml |
| Потеря истории чата | Реализовать механизм Restore ID: сохранить ID на backend и восстанавливать при переустановке |
| Локализация строк | Переопределить строки SDK через Localizable.strings (iOS) или strings.xml (Android) с теми же ключами |
| Несовместимость с ProGuard | Добавить правила keep: -keep class com.freshchat.** { *; } |
Пример конфигурации ProGuard
```proguard -keep class com.freshchat.** { *; } -keep class com.freshchat.consumer.** { *; } -keepclassmembers class * { @com.freshchat.consumer.sdk.annotation.Keep *; } ```Важно: кастомные свойства передаются агенту — они видны в панели Freshdesk при просмотре чата. Не передавайте чувствительные данные (пароли, полные номера карт) даже в замаскированном виде.
Восстановление истории чата: что нужно знать?
После удаления приложения история чата теряется, если не реализовать механизм Restore ID. Freshchat генерирует уникальный ID при первой инициализации — его нужно сохранить на backend и восстановить при следующей сессии, вызвав setRestoreId. Это критично для приложений, где важна непрерывность поддержки. Restore ID не зависит от токенов устройств и позволяет восстановить чат даже на новом устройстве. Среднее время на реализацию — 2–3 часа.
Что входит в интеграцию
- Настройка чата и FAQ с кастомными тегами
- Интеграция push-уведомлений (APNs / FCM)
- Кастомизация темы под бренд приложения
- Реализация Restore ID для сохранения истории
- Документация по интеграции и обучение команды
- Сопровождение при публикации в App Store и Google Play
Сроки
| Этап | Время |
|---|---|
| Базовая интеграция (чат + push) | 2–4 дня |
| Кастомизация темы | +1–2 дня |
| Restore ID и мультиязычность | +2–3 дня |
| Полный цикл | 1 неделя |
Стоимость рассчитывается индивидуально. Свяжитесь с нами для оценки вашего проекта — мы подготовим предложение за 1 день. Получите консультацию по интеграции Freshdesk SDK и закажите демонстрацию на вашем стенде.
Гарантируем корректную работу push-уведомлений и сохранение истории чата. Наш опыт с более чем 50 проектами позволяет избежать типовых граблей.







