Mobile SDK

Current Version: 2.2 (correlating with the 24.4 CXone Mpower release)
API References:

To help you get started implementing the mobile SDK, you must purchase the basic implementation package from NICE. A partner of NICE leads you through the implementation.

Mobile SDK lets you integrate CXone Mpower digital chat into your enterprise mobile phone apps. This lets app users chat with your contact center agents and bots through digitalClosed Any channel, contact, or skill associated with Digital Experience. chat channels. The SDK simplifies the process of implementing digital chat; developers do not need to handle business logic implementation. The main task of your developers is visually displaying and managing features that you set up in CXone Mpower, like push notifications or rich messages. The SDK supports both iOS and Android apps. iOS apps must be written in Swift This link opens in a new window and Android apps must be written in Kotlin This link opens in a new window.

With Mobile SDK:

For an at-a-glance look at the benefits of the SDK, you can check out the Mobile SDK data sheet This link opens in a new window. You can also watch a short demo video This link opens in a new window.

SDK Resources

Download the SDK packages from public GitHub repositories (Android This link opens in a new window iOS This link opens in a new window). Both repos contain a README file to help you get started developing. They also offer use cases with code samples in /docs. Use these as inspiration as you develop your chat. Both repositories also include changelogs.

You can access the API references in your browser (Android This link opens in a new window iOS This link opens in a new window).

Your developers can also look at sample applications for both Android This link opens in a new window and iOS This link opens in a new window platforms. These help developers see examples of implemented functionality.

Mobile SDK Versioning

The SDK versions generally update along with the CXone Mpower major marketing releases, like 25.2, 25.3, and so forth. In GitHub, each release version is tagged according to the semantic versioning explained below.

NICE supports the current and one previous major version of the SDK. For example, if the current version is 2.2, NICE supports v2.2 and 1.3 (the latest 1.x.x version).

You are responsible for keeping your app up to date as the SDK also updates. The SDK Resources section above provides links to the most up-to-date resources. In the SDK repositories, you can use the tags to find previous versions of the SDK. Also, be aware that the SDK is backward compatible through the last two major versions.

Version Changes

When the SDK version changes from release to release, the version number denotes the type of change. The following explains the denotation:

  • 2.0.0: The first number denotes the major API change.

  • 2.1.0: The second number denotes a non-breaking change. Often, new features are added as non-breaking changes.

  • 2.0.1: The third number denotes a bug fix. These are always backwards compatible.

Bug Fixes

NICE Professional Services works with you on bug fixes. You can submit bugs through them (or the implementation partner), and they communicate fixes to you in addition to the SDK changelog.

Also, any bugs are fixed in the currently-supported versions. For example, if the current version is 3.0, then the two supported versions are 3.0 and 2.3 (the latest version from 2.x). If you found a bug in v2.1, NICE would fix it for 2.3 and 3.0, but not 2.1 or 2.2.

How the Mobile SDK Fits into Digital Experience

The mobile SDK is a way to extend Digital Experience and provide digital chat in mobile apps. Digital Experience is the part of CXone Mpower that supports digital channels. Examples of digital channels are WhatsApp, posts on Facebook, or digital chat. To add CXone Mpower digital chat into your apps, you must configure certain features in the Digital Experience section of the CXone Mpower interface. Then, with the SDK, you access and use features that you set up in CXone Mpower.

For example, part of the getting started process is to set up a digital chat channel in CXone Mpower. Then, your app must create a WebSocket connection with the digital chat channel that you created. You could also set up advanced features like welcomes messages or pre-chat surveys. These give you a variety of options to streamline your app users' experience. Users can provide initial information about their issue or request, enter basic personal data, and so forth. These features are initially set up in CXone Mpower, which you can then use with the SDK.

Diagram of mobile SDK infrastructure

Building Your Chat UI

As the integrator, you are responsible for building your chat UI. This is necessary to take advantage of certain features like displaying and working with files or recording voice messages. For example, you would need to add a button for contacts to press to access the device's microphone to record the message. You can reference the sample applications (Android This link opens in a new window iOS This link opens in a new window) for examples of how to implement the UI.

You can use a third-party UI development kit, like MessageKit. However, this might be limiting depending on your use case. Also, CXone Mpower does not own or provide support for any third-party UI package.

Before You Start Developing

Consider the following items before building with the mobile SDK:

  • Do you have both an administrator and agent account in CXone Mpower? Can an administrator assist you in setting up the necessary features in the CXone Mpower platform?
  • Is your mobile app available for iOS (Apple), Android, or both? Are your developers familiar with the Swift and Kotlin languages?
  • Do you have existing chat messaging channels, or do you want to create a new one?
  • Will you use OAuth to authenticate your app users? If yes, which OAuth provider will you use?
  • Do you want to offer single- or multi-threaded conversations?
  • Will you use proactive actions like pop-ups or welcome messages?
  • Do you want to use push notifications? Do you have existing Firebase or Apple Developer accounts?
  • Which types of rich messages do you want to set up? What are some use cases where you can leverage these interactive messages?
  • Do you want to track user data? How can you use the visitor events to produce analytics?

Key Terms

  • Thread: A conversation within the chat app. The first message sent by either the agent or contactClosed The person interacting with an agent, IVR, or bot in your contact center. begins a thread. Each consecutive message in the conversation is added to the thread. Threads are objects that contain each message. Messages are structured by the author of the message. A threadId identifies an entire conversation, and all messages within a conversation have a message ID. A thread ends when the conversation ends.

  • Single-Thread: An app design where the contact can only have one conversation at a time.

  • Multi-Thread: An app design where the contact can have multiple conversations at a time.

  • Channel: In the context of Digital Experience, channel refers to the type of messaging or the platform used for communication. For example, you could have a WhatsApp real-time messaging channel. The mobile SDK lets you add a chat messaging channel to your mobile app. A channel is created in the CXone Mpowerplatform. This determines the settings of the channel along with a channel ID. You use this ID to initiate the chat channel when an app user opens the chat.

  • ChannelId: The ID of the digital chat channel created in the Digital section of CXone Mpower. You can find this in the chat channel's settings in CXone Mpower (ACDDigitalPoints of Contact DigitalChatInitialization & Test).

  • BrandId: This is like a tenantClosed High-level organizational grouping used to manage technical support, billing, and global settings for your CXone Mpower environment ID for Digital Experience. It's used to initialize the chat. You can find this in the chat channel's settings in CXone Mpower (ACDDigitalPoints of Contact DigitalChatInitialization & Test).

  • CustomerId: The unique ID of the chat end user. The SDK creates this ID when the chat is initialized. If you have OAuth set up, this ID stays the same for each contact across all their devices. If you do not have OAuth set up, this ID is different for each device; the ID becomes like a guest login.

  • Region or Environment: The location in the world where your CXone Mpower deployment is hosted. This can be: Australia (AU1), Canada (CA1), Europe (EU1), Japan (JP1), North America (NA1), or United Kingdom (UK1). The developer must use the same region where your CXone Mpower system is hosted, otherwise the chat connection is rejected.

  • Contact, Customer, and User: These terms all refer to the end-user of the mobile app. The online help typically uses the term contact. In the SDK documentation and code comments, you are likely to see customer and user.

  • CXone Mpower: The core platform where you manage and access all the customer experience tools that CXone Mpower offers. Depending on which chat features you want to offer in your mobile app, an administrator with the necessary user account permissions must complete several setup tasks in CXone Mpower.

  • Digital Experience: The section of CXone Mpower where you can manage everything about digital channels.