Mobile SDK: the first 15 minutes, from zero to the first message

Last updated: 9 October 2026 · 8 min read

This path goes from zero to the first message in the app. An administrator creates the channel in the dashboard, your app's developer does the rest. With the Firebase and Apple keys ready, it takes about 15 minutes.

Steps

  1. 1

    Create the channel

    Settings › Workspace settings › Inboxes › “Add Inbox”. In the catalog, click “Connect” on the “Mobile app (App SDK)” card. If the card is missing, the channel is not on for your account: write to Clomni AI, and the Clomni team will turn it on.

    In step 1 of the wizard, fill in “Channel name”, “Platforms”, “Android package name” (applicationId in app/build.gradle(.kts), for example com.example.app) and “iOS Bundle ID” (Xcode › target › Signing & Capabilities), then click “Create”.

  2. 2

    Store the keys

    • Step 2 “Installation”: copy the App ID and the API keys. The full key is shown only in this step; later the dashboard shows only its beginning.
    • Step 3 “Identity verification”: store the Identity Secret on your server, for example in a CLOMNI_IDENTITY_SECRET environment variable. It is shown once and never goes into the app. Tick “I have stored the secret safely” and leave the mode on “Recommended”.
    • You can skip the Push, Appearance and Flows steps for now with “Do it later”.
  3. 3

    Add the package and start the SDK

    Android:

    // app/build.gradle.kts
    dependencies {
        implementation("ai.clomni:messenger:1.0.5")
    }
    // App.kt, registered in AndroidManifest.xml as <application android:name=".App">
    import android.app.Application
    import ai.clomni.messenger.Clomni
    import ai.clomni.messenger.ClomniLogLevel
    
    class App : Application() {
        override fun onCreate() {
            super.onCreate()
            Clomni.initialize(this, appId = "app_…", apiKey = "android_…")
            if (BuildConfig.DEBUG) Clomni.setLogLevel(ClomniLogLevel.DEBUG)
        }
    }

    iOS: Xcode › File › Add Package Dependencies, https://github.com/clomni/clomni-mobile-sdk.git, “Up to Next Major Version” 1.0.4, product ClomniMessenger. Then:

    // AppDelegate.swift
    import ClomniMessenger
    import UIKit
    
    @main
    final class AppDelegate: UIResponder, UIApplicationDelegate {
        func application(_ application: UIApplication,
                         didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            Clomni.initialize(appId: "app_…", apiKey: "ios_…")
            #if DEBUG
            Clomni.setLogLevel(.debug)
            #endif
            return true
        }
    }

    The code for React Native, Flutter and Unity is in their own articles. An API key belongs to one platform: android_… on Android, ios_… on iOS.

  4. 4

    Open the Messenger from your own button

    // Android
    Clomni.present(source = "profile_support")
    // iOS, after the screen is shown
    Clomni.present(source: "profile_support")

    source says where in the app the Messenger was opened from, and it shows up in the dashboard's statistics.

  5. 5

    Identify the user

    Your server returns a user_hash for the user's ID in its login response: hex(HMAC-SHA256(identity_secret, user_id)). The app passes it after login:

    // Android
    Clomni.loginUser(ClomniUser(userId = "12345", email = "[email protected]", name = "Aysel"), userHash = hashFromYourServer)
    // iOS
    Clomni.loginUser(ClomniUser(userId: "12345", email: "[email protected]", name: "Aysel"), userHash: hashFromYourServer)

    Call Clomni.logout() together with your app's own logout. Server code in 7 languages is in “Mobile SDK keys and identifying users”.

  6. 6

    Connect push

    Upload the Firebase service account JSON and the APNs .p8 key in the channel's “Push” section, and give the device token to the app with Clomni.setDeviceToken(...). The APNs key must be created for “Sandbox & Production”. The steps are in “Mobile SDK push keys” and in your platform's article.

  7. 7

    Check that it works

    1. Run the app on a phone and open the Messenger. Settings › Workspace settings › Inboxes › your channel › settings column › Installation: the device shows up under “Recent devices” within seconds. On “Overview” the platform becomes “Installed”.
    2. Settings column › Security › “Test a hash”: enter the user_id and the user_hash your server made, then click “Check”. The answer must be “Correct. The hash was made with the current secret.”
    3. Settings column › Push › “Test push”: choose the device and click “Send”. The answer is “Sent. The notification should appear on the device.” and the notification appears on the phone. If the device is not in the list, notifications are not allowed on the phone or setDeviceToken is never called.
    4. Write a message from the Messenger. It shows up in Conversations under the channel's name. To see it, an agent must be in the channel's “Collaborators” section. Close the app and reply: a push arrives on the phone.

    If something does not work, see “Mobile SDK: errors, causes and fixes”.

  8. 8

    Full guide

Document