Hidden Pre-Chat for Android
Use hidden pre-chat fields to capture valuable information without asking the customer directly for it.
This feature requires version 1.2.0 or later of the Enhanced In-App Chat SDK.
This article applies to the following implementations:
After you set up pre-chat in Salesforce, the UI SDK automatically presents the pre-chat form to the user and passes this information to Salesforce. If you're not using the UI SDK, the Core SDK documentation describes how to perform this process programmatically. To use hidden pre-chat fields, use the Core SDK. If you want to use this feature with the UI SDK, use the Core SDK with your UI SDK.
This article describes the steps that you must take from your app to send any user data not visible in the pre-chat form. This data is also described as hidden pre-chat fields. To learn about and set up pre-chat, see Customize Pre-Chat for Enhanced Chat.
After you set up hidden pre-chat fields in Salesforce, you can populate these values using the SDK.
- Implement the
PreChatValuesProvider interface. This provider contains the setValues method, which the SDK calls when it needs pre-chat values.
- Add your provider to the SDK using the
CoreClient.registerHiddenPreChatValuesProvider property. See the CoreClient reference documentation.
This sample code requires the configuration object that you created when setting up the UI SDK or the Core SDK. See Build a UI SDK App or Build a Core SDK App for more information.
// Create a core client from a config
val coreClient = CoreClient.Factory.create(myContext, config)
// Register a provider
coreClient.registerHiddenPreChatValuesProvider( object : PreChatValuesProvider {
// Implement the setValues method
override suspend fun setValues(input: List<PreChatField>): List<PreChatField> {
// Iterate through all the pre-chat fields
input.forEach {
// Specify the value for each field mapping
if (it.name == PRECHAT_FIELD_NAME) {
it.userInput = "My hidden pre-chat value"
}
}
// Return the same list, but with updated values set
return input
}
})
After you register your provider, the SDK automatically calls your setValues method before a conversation begins.