Zendesk mobile SDK iOS integration: A complete 2026 guide

Stevia Putri
Written by

Stevia Putri

Reviewed by

Stanley Nicholas

Last edited February 26, 2026

Expert Verified

Banner image for Zendesk mobile SDK iOS integration: A complete 2026 guide

When your customers need help, the last thing they want is to leave your app. Making them open a browser, search for your support page, or dig through email for ticket updates creates friction that hurts the customer experience. That's why embedding support directly into your iOS app with the Zendesk mobile SDK has become essential for modern customer service.

This guide walks you through integrating Zendesk's iOS SDK from start to finish. Whether you're building a new app or adding support to an existing one, you'll learn the exact steps to get customer messaging working in your application. For teams looking to add AI-powered responses to their mobile support, we'll also cover how eesel AI works alongside the Zendesk mobile SDK.

Zendesk developer landing page for iOS SDK documentation
Zendesk developer landing page for iOS SDK documentation

What you'll need

Before you start, here's what you'll need:

  • A Zendesk Support or Suite plan
  • Xcode 11.4 or later
  • An iOS app targeting iOS 14 or later
  • Admin access to your Zendesk account to retrieve channel keys
  • Swift 5.2.2+ or Objective-C project

The SDK supports both Swift and Objective-C, so you can integrate it regardless of which language your app uses. Swift Package Manager works best for modern projects, but CocoaPods and Carthage remain available if your project already depends on them.

Step 1: Choose the right Zendesk SDK for your needs

Many developers don't realize that Zendesk offers multiple SDKs for iOS. Picking the wrong one can create problems later, so it's worth understanding the differences upfront.

Zendesk Messaging SDK (recommended for new projects)

This is Zendesk's modern SDK and the one you should use for any new integration. It provides a contemporary messaging experience where users can have ongoing conversations that persist over time. The Messaging SDK is actively maintained, with the latest version (2.37.0) released in January 2026.

Key capabilities include:

  • Multi-conversation support (users can have multiple ongoing conversations)
  • Rich messaging with carousels, forms, and file attachments
  • Push notification support for real-time updates
  • Proactive messaging from your business
  • Wait time banners showing queue position

Classic Support SDK (legacy/archived)

Important: The classic Zendesk SDK for iOS was archived on November 23, 2024. The GitHub repository is now read-only. If you're currently using this SDK, you should plan a migration to the Messaging SDK. See Zendesk's migration guide for detailed steps.

Sunshine Conversations SDK (advanced use cases)

For apps needing highly customized messaging experiences, Sunshine Conversations (formerly Smooch) offers more flexibility. It supports advanced features like custom UI implementations and complex conversational workflows. However, for most standard support use cases, the Messaging SDK is the better choice.

Step 2: Add the SDK to your Xcode project

The Zendesk Messaging SDK supports four installation methods. Swift Package Manager is the recommended approach for modern iOS development.

Swift Package Manager (recommended)

  1. In Xcode, select File > Swift Packages > Add Package Dependency
  2. Enter the repository URL: https://github.com/zendesk/sdk_messaging_ios/
  3. Follow Xcode's prompts to add ZendeskMessagingSDK as a dependency

Xcode will automatically resolve and download all required dependencies.

CocoaPods

Add this line to your Podfile:

pod 'ZendeskSDKMessaging'

Then run pod install.

Carthage

Add this to your Cartfile:

github "zendesk/sdk_messaging_ios"

Run carthage update --use-xcframeworks, then drag the frameworks into your project.

Required permissions

Add these keys to your app's Info.plist to enable camera, microphone, and photo library access:

  • NSCameraUsageDescription allows camera access for images and videos
  • NSMicrophoneUsageDescription allows microphone access for video capture
  • NSPhotoLibraryUsageDescription allows photo library read/write access

Xcode project navigator showing iOS project file structure
Xcode project navigator showing iOS project file structure

Step 3: Initialize the SDK in your app

Once the SDK is added to your project, you need to initialize it with your channel key.

Getting your channel key

Your channel key is generated in the Zendesk Admin Center:

  1. Log into the Zendesk Admin Center
  2. Navigate to Channels > Messaging
  3. Click Add Channel and select iOS
  4. Follow the prompts to generate your channel key

Zendesk Admin Center Installation tab with Channel ID highlighted
Zendesk Admin Center Installation tab with Channel ID highlighted

Initialization code

Add these imports to your AppDelegate or main app file:

Swift:

import ZendeskSDKMessaging
import ZendeskSDK

Objective-C:

#import <ZendeskSDKMessaging/ZendeskSDKMessaging.h>
#import <ZendeskSDK/ZendeskSDK.h>

Initialize the SDK at app launch:

Swift:

Zendesk.initialize(
    withChannelKey: "<your_channel_key>",
    messagingFactory: DefaultMessagingFactory()
) { result in
    if case let .failure(error) = result {
        print("Messaging did not initialize. Error: \(error.localizedDescription)")
    }
}

Objective-C:

[Zendesk initializeWithChannelKey:@"<your_channel_key>"
                 messagingFactory:[[ZDKDefaultMessagingFactory alloc] init]
                completionHandler:^(Zendesk * _Nullable zendesk, NSError * _Nullable error) {
    if (error != nil) {
        NSLog(@"Zendesk did not initialize. Error: %@", error.localizedDescription);
    }
}];

The SDK size is approximately 7.5 MB for the XCFramework download, though the final impact on your app size may be smaller due to app thinning and linker optimizations.

Step 4: Set up user authentication

The SDK supports two authentication methods depending on your use case.

Anonymous authentication

For users who haven't logged into your app, use anonymous authentication:

Swift:

let identity = Identity.createAnonymous()
Zendesk.instance?.setIdentity(identity)

This creates a new user record in Zendesk for each device.

JWT authentication

For authenticated users, use JWT to verify their identity:

Swift:

let identity = Identity.createJwt(token: "<your_jwt_token>")
Zendesk.instance?.setIdentity(identity)

JWT authentication ensures that users can access their conversation history across multiple devices and prevents impersonation. As of SDK version 2.34.0, there's also an AuthenticationDelegate for handling token refresh seamlessly.

Step 5: Display the messaging interface

Once initialized, you can present the messaging interface anywhere in your app.

Basic presentation

Swift:

if let viewController = Zendesk.instance?.messaging?.messagingViewController() {
    self.navigationController?.show(viewController, sender: self)
}

Objective-C:

UIViewController *viewController = [Zendesk.instance.messaging messagingViewController];
if (viewController != NULL) {
    [self.navigationController showViewController:viewController sender:self];
}

Modal presentation

For a modal experience instead of pushing onto the navigation stack:

Swift:

if let viewController = Zendesk.instance?.messaging?.messagingViewController() {
    let navigationController = UINavigationController(rootViewController: viewController)
    navigationController.modalPresentationStyle = .fullScreen
    present(navigationController, animated: true)
}

By default, the SDK navigates to the most recently active conversation. If your account has multi-conversations enabled, users can manage several ongoing conversations at once.

Step 6: Customize the UI and behavior

The SDK offers several customization options to match your app's branding.

Theme colors

You can customize colors through the Zendesk Admin Center, or programmatically for more control. Set your primary color using:

CommonTheme.currentTheme.primaryColor = .cyan

Navigation bar customization

For navigation bar styling, use the standard UIAppearance proxy:

UINavigationBar.appearance().barTintColor = .cyan

Pre-chat forms and bot configuration

You can configure pre-chat forms to collect user information before starting a conversation. Set up forms through your Zendesk Admin Center, or use the SDK's configuration options to customize the experience.

Known iOS limitations

Be aware of these customization limitations on iOS:

  • Answer Bot avatar cannot be changed
  • Right navigation bar button cannot be overridden
  • Navigation title color has limited customization options
  • Chat text font cannot be changed

These limitations are documented in Zendesk's iOS documentation and are consistent across iOS implementations.

Common issues and troubleshooting

Here are solutions to problems developers frequently encounter:

Initialization failures

If the SDK fails to initialize:

  • Check that your channel key is correct and matches your app's bundle ID
  • Make sure your Zendesk account has messaging enabled
  • Verify you're using the correct region endpoint (US or EU)

Push notification issues

Push notifications need careful setup:

  1. Make sure you've uploaded your .p12 certificate to the Zendesk Admin Center
  2. Verify the APS Environment entitlement is set to "production" (not development)
  3. Check that your provisioning profile includes push notification capabilities
  4. Make sure you're using a combined Sandbox & Production certificate, not Sandbox-only

Source: Zendesk push notification setup guide

Authentication errors

JWT authentication issues usually stem from:

  • Expired tokens implement token refresh using AuthenticationDelegate
  • Incorrect token format make sure your JWT follows Zendesk's required claims
  • Clock skew verify server and device times are synchronized

Memory and performance

The SDK is lightweight, but you should:

  • Initialize it once at app launch, not repeatedly
  • Handle memory warnings appropriately
  • Test on older devices if your app supports iOS 14

Enhancing mobile support with eesel AI

While the Zendesk mobile SDK provides the foundation for in-app customer service, many teams want to add intelligent automation to handle common questions without human intervention. That's where we come in.

eesel AI dashboard for configuring AI agents and automation workflows
eesel AI dashboard for configuring AI agents and automation workflows

At eesel AI, we've built an AI platform that works alongside your Zendesk setup to automate responses and improve deflection rates. Instead of just routing tickets, our AI can resolve common issues by drawing from your entire knowledge base, not just Zendesk Guide articles.

Here's how teams typically use us alongside their Zendesk mobile SDK integration:

  • Connect multiple knowledge sources We pull answers from Confluence, Google Docs, Notion, and other platforms where your documentation lives, so customers get complete answers even when information is scattered

  • Test before going live Our simulation mode lets you test AI responses against your past tickets to forecast deflection rates before customers see it

  • Progressive rollout Start with AI drafting replies for review, then expand to full automation as confidence grows

If you're already planning a Zendesk mobile SDK integration, adding AI-powered responses can reduce the volume of tickets that reach your human agents. Check out our Zendesk integration to see how it works.

Start building better mobile support today

Integrating the Zendesk mobile SDK into your iOS app is straightforward once you know the steps. The key is choosing the right SDK (Messaging SDK for new projects), getting your channel key from the Admin Center, and handling authentication appropriately for your use case.

The SDK gives you a professional support experience with minimal development effort. And if you want to take it further with AI-powered automation, eesel AI can help you deflect more tickets and resolve issues faster.

Ready to get started? Head to the Zendesk developer documentation for the latest SDK version and detailed API references.

Frequently Asked Questions

The Zendesk Messaging SDK requires iOS 14 or later as of version 2.33.0. The classic Support SDK supported iOS 12+, but that SDK is now archived and no longer maintained.
Yes, the SDK supports both Swift and Objective-C. All code examples in the documentation are provided in both languages, and the SDK is built with interoperability in mind.
Push notifications require creating an Apple Push Notification service SSL certificate, uploading the .p12 file to Zendesk Admin Center, adding the Push Notifications capability in Xcode, and implementing the UNUserNotificationCenterDelegate methods in your AppDelegate. The SDK provides helper methods to check if a push notification belongs to Zendesk and should be displayed.
The SDK itself is free, but you need a Zendesk Support or Suite plan to use it. Zendesk pricing starts at $19 per agent per month for the Support Team plan. The SDK features available depend on your Zendesk plan tier.
Yes, you can customize theme colors, navigation bar styling, and some UI elements. However, there are known limitations on iOS: you cannot change the Answer Bot avatar, override the right navigation button, or customize the chat text font. Most branding is handled through the Zendesk Admin Center.
Anonymous authentication creates a new user record for each device and is suitable for unauthenticated app users. JWT authentication verifies the user's identity using a signed token and allows users to access their conversation history across multiple devices. JWT is recommended for logged-in users.

Share this post

Stevia undefined

Article by

Stevia Putri

Stevia Putri is a marketing generalist at eesel AI, where she helps turn powerful AI tools into stories that resonate. She’s driven by curiosity, clarity, and the human side of technology.