CXone Mobile SDK

Current Version: 2.0
API References:

CXone Mobile SDK lets you integrate CXone 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, 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 CXone Mobile SDK:

For an at-a-glance look at the benefits of the SDK, you can check out the CXone 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 current version of the SDK is 2.0, which correlates with the CXone 24.2 major release. 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.

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 that supports digital channels. Examples of digital channels are WhatsApp, posts on Facebook, or digital chat. To add CXone digital chat into your apps, you must configure certain features in the Digital Experience section of the CXone interface. Then, with the SDK, you access and use features that you set up in CXone.

For example, part of the getting started process is to set up a digital chat channel in CXone. Your app creates a WebSocket connection with the channel 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, 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, NICE CXone 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? Can an administrator assist you in setting up the necessary features in the CXone 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 CXoneplatform. 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 DFO section of CXone. You can find this in the chat channel's settings in CXone (ACDDFOPoints 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 environment ID for Digital Experience. It's used to initialize the chat. You can find this in the chat channel's settings in CXone (ACDDFOPoints 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 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 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: The core platform where you manage and access all the customer experience tools that NICE CXone 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.

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