Learn how to initialize chat with or without options.

You can initialize the Chat iOS SDK with or without options. See Installation, Quick Start to learn how to configure chat during installation.

Initialize the SDK

To initialize the SDK, call Kustomer.configure in your AppDelegate didFinishLaunchingWithOptions method:

import KustomerChat

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

    Kustomer.configure(apiKey: "api key", options: nil, launchOptions: launchOptions)

Initialize the SDK with options

You can also initialize the SDK to configure the SDK with options.

import KustomerChat

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    let options = KustomerOptions()
    options.activeAssistant = .orgDefault
    options.brandId = "nonDefaultBrand"
    options.hideNewConversationButtonInClosedChat = true
    //see full api docs for all options

    Kustomer.configure(apiKey: "api key", options: options, launchOptions: launchOptions)


Initialize the SDK and detect low disk space

You can use an optional completion parameter with configure to detect if there is not enough disk space. If there isn't enough disk space the UI will display a message, and chat will not load.

Kustomer.configure(apiKey: "API KEY", options: options, launchOptions: launchOptions, completion: { error in
  if case KustomerConfigurationError.notEnoughDiskSpace = error {
    print("Not enough disk space")


KustomerOptions class reference


KustomerOptions API attributes

For additional configuration options for initialization, see the full list of all available KustomerOptions API attributes.

activeAssistantThe chat assistant ID. If available, Chat always uses this chat assistant ID as the assistant when a new conversation is created with a button in the chat. Does not affect the Kustomer Core SDK.

- none: Chat does not use an assistant.
- orgDefault: Chat uses the default assistant set for the brand under Chat Management settings.
- .withId(String): Chat uses the provided string as the assistant ID.

Format example: options.activeAssistant = .withId("1234")
brandIdProvides a Brand ID to fetch brand-specific chat settings.
enableUIEnables the Kustomer Chat UI.

Defaults to true. Set to false if you're building your own UI.
hideHistoryNavigationOption to hide the back button in the Conversation view. This allows customers to have multiple chats open at the same time and bypass the Conversation (chat history) view when appropriate.

Defaults to false. Set to true to hide the back button in the Conversation view.
knowledgeBaseIdOverrides the Knowledge Base id.

This method has been deprecated for Chat 2.0. Use brandId instead to fetch brand-specific chat settings, including a brand-specific Knowledge Base.
languageKustomer uses the device language as the default language. To change the default language, pass in the desired language locale.

See Localization for supported language locales and instructions to change the default language or to add a new localization.
logLevelsThe type of error logs available. To learn more, see KustomerLogType.

Defaults to [.debug, .info, .error, .warning] .

Set to [] to disable logging.

multithreadingWarning is ignored if you're using our UI.
messageAttachmentLocalCacheMaximumSizeInBytesMaximum space for local caching of files and images sent over chat messages.
showAnimationFor5StarCSATRatingsControls the chat animation displayed to customers for 5-star CSAT ratings. Defaults to false. Set to true to turn on the CSAT animation.
showInAppNotificationsShow notifications in-app when a new message arrives.
hideKbArticleShareOption to hide the share option from the UI that lets you open help articles in a browser.

What’s Next