Use the Core SDK for Android
The Core SDK allows you to call all the necessary In-App Messaging APIs directly from your app. With the Core SDK, you’re in full control over the entire user experience—you tell the API when to send a message and the API tells you when a message is received. If you want to use our ready-made user interface and user experience, use the UI SDK instead.
Use the Core SDK with the Kotlin programming language since this SDK was designed to use Kotlin flows. We don't recommend that you access the Core SDK using Java code.
Create a CoreConfiguration
object using the config file that you previously downloaded from your org, or you can manually add the values from within this config file.
OPTION 1: Configure Using the Config File
To learn how to download the config file from your org, see Configure a Messaging for In-App Deployment in Salesforce Help.
OPTION 2: Configure Manually with Config Info
Get the CoreClient
from the CoreClientFactory
using the configuration object.
Start the core instance using the correct scope. To learn more about scopes, see Coroutines and Kotlin flows in the Android documentation.
Create a ConversationClient
from the CoreClient
object.
In order to get the pre-chat fields before a conversation, call the retrieveRemoteConfiguration
method from your CoreClient
object. The returned remote configuration object contains a form with an array of fields. Each pre-chat field has the properties necessary for you to build your pre-chat form. After you present the pre-chat form to the user, fill in the userInput
field for each pre-chat field object. Then submit the pre-chat fields from the submitPreChatData
method on the ConversationClient
object.
Send a message with the sendMessage
method on the ConversationClient
object.
To listen for conversation events, use Kotlin flows to monitor events on the ConversationClient
instance. The following conversation events are available for listening:
conversation
: To observe the current conversation.events
: To listen for events specific to this conversation.
To listen to general events, use flows on the CoreClient
instance:
networkConnectivityState
: To determine network state.events
: To listen for general events (including events from all conversations).
For example, to listen for typing events in a particular conversation:
The TypingIndicator
object has the following payload:
To learn more, see Set Up Messaging Notifications for Android.