Інтеграція Intercom SDK для підтримки в мобільному додатку

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

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Інтеграція Intercom SDK для підтримки в мобільному додатку
Середній
~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

Інтеграція Intercom SDK для підтримки у мобільному додатку

Intercom відрізняється від Zendesk й Freshdesk тим, що спочатку проектувався як product engagement платформа — з таргетованими in-app повідомленнями, onboarding-турами й автоматичними чат-ботами (Fin AI). Коли потрібно не просто реагувати на запити, а проактивно супроводжувати користувача — Intercom зазвичай виграє.

Встановлення й ініціалізація

iOS

// Podfile
pod 'Intercom'
// AppDelegate
import Intercom

func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    Intercom.setApiKey("ios_sdk-...", forAppId: "your_app_id")
    return true
}

Intercom не підтримує Swift Package Manager повністю для динамічних фреймворків на iOS — тільки CocoaPods або Carthage. Це перше, що вражає розробників, привичних до SPM.

Android

// build.gradle.kts
implementation("io.intercom.android:intercom-sdk:15.x.x")
// Application.onCreate()
Intercom.initialize(this, "android_sdk-...", "your_app_id")

Ідентифікація користувача

Intercom підтримує два режими: анонімний (для неавторизованих) й ідентифікований з HMAC-верифікацією.

// iOS: авторизований користувач
let attrs = ICMUserAttributes()
attrs.userId = "user_12345"
attrs.email = "[email protected]"
attrs.name = "John Doe"
// Кастомні атрибути для сегментації
attrs.customAttributes = [
    "plan": "premium",
    "signup_date": Date()
]
Intercom.loginUser(with: attrs) { result in
    switch result {
    case .success: break
    case .failure(let error): print(error)
    }
}

HMAC-верифікація обов'язкова в продакшені. Без неї будь-який користувач може підмінити userId й отримати чужу історію переписки. Backend генерує HMAC:

Intercom.setUserHash("backend_generated_hmac_string")

Генерація на backend (Node.js):

const crypto = require('crypto');
const hash = crypto.createHmac('sha256', process.env.INTERCOM_SECRET)
    .update(userId)
    .digest('hex');

Messenger й In-App повідомлення

Відкриття чату:

Intercom.present()                           // весь Messenger
Intercom.presentMessageComposer(nil)          // відразу нове повідомлення
Intercom.presentContent(.helpCenter)          // тільки Help Center

In-App повідомлення (баннери, модалки) показуються автоматично на основі правил у Intercom Console — не вимагають коду на клієнті, тільки коректної ідентифікації користувача.

Скриття Launcher

За замовчуванням Intercom показує floating button поверх всього контенту. У більшості додатків це небажано — потрібна кастомна точка входу:

// Приховати стандартний launcher
Intercom.setLauncherVisible(false)

// Кастомна кнопка підтримки
@IBAction func supportTapped(_ sender: UIButton) {
    Intercom.present()
}

Push-уведомлення

// Реєстрація APNs токена
func application(_ application: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    Intercom.setDeviceToken(deviceToken)
}

// Обробка входящого push
func userNotificationCenter(_ center: UNUserNotificationCenter,
    didReceive response: UNNotificationResponse,
    withCompletionHandler completionHandler: @escaping () -> Void) {
    if Intercom.isIntercomPushNotification(response.notification.request.content.userInfo) {
        Intercom.handlePushNotification(response.notification.request.content.userInfo)
    }
    completionHandler()
}

Push Intercom приходить через APNs стандартно, але payload містить intercom ключ — потрібно перевіряти перед обробкою, щоб не конфліктувати з Firebase Messaging.

Конфлікт з іншими SDK

Intercom й Firebase Messaging обидва встановлюють UNUserNotificationCenterDelegate. Потрібен єдиний делегат, який роутить push:

// AppDelegate
func userNotificationCenter(_ center: UNUserNotificationCenter,
    willPresent notification: UNNotification,
    withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    let userInfo = notification.request.content.userInfo
    if Intercom.isIntercomPushNotification(userInfo) {
        completionHandler([])
    } else {
        // Firebase або інший обработчик
        completionHandler([.banner, .sound])
    }
}

Орієнтири по строкам

Базова інтеграція з чатом, ідентифікацією й push — 3–5 днів. Настройка кастомних подій для сегментації, тестування in-app повідомлень й перевірка HMAC на staging — плюс 1–2 дні.