ui

The UI module provides a pre-built Jetpack Compose conversation interface for Messaging for In-App. It handles the full messaging experience including pre-chat forms, the chat feed, file attachments, and transcript downloads. Add it to your app with minimal code, then customize branding, components, and behavior as needed.

Getting Started

Create a UIConfiguration with your deployment values, then obtain a UIClient from the factory:

val config = UIConfiguration(
serviceAPI = "https://myorg.my.salesforce-scrt.com",
organizationId = "00D000000000001AAA",
developerName = "My_Deployment",
conversationId = UUID.randomUUID()
)
val uiClient = UIClient.Factory.create(config)

Alternatively, load configuration from the file downloaded from Salesforce setup:

val config = UIConfiguration(
configuration = CoreConfiguration.fromFile(context),
conversationId = UUID.randomUUID()
)

The factory maintains a singleton -- calling create with the same configuration returns the existing instance. When using the same CoreConfiguration in both the UIClientFactory and CoreClientFactory, the UIClient shares the same underlying CoreClient instance. This allows the host app to perform operations on the active client even when the UI is not displayed. Call UIClient.Factory.destroy() when messaging is no longer needed.

Launching the Conversation UI

Activity-based (simplest)

Let the SDK manage a full-screen activity:

uiClient.openConversationActivity(context)

Composable-based (more control)

Embed the messaging UI directly in your Compose navigation graph:

uiClient.MessagingInAppUI(onExit = {
// Navigate back or finish the activity
})

Bottom sheet (modal)

Present the messaging UI in a ModalBottomSheet:

ModalBottomSheet(
onDismissRequest = { updateOpenBottomSheet(false) },
sheetState = sheetState
) {
Box(Modifier.fillMaxHeight(0.9f)) {
uiClient.MessagingInAppUI { dismissSheet() }
}
}

When the bottom sheet is closed, MessagingInAppUI is removed from the composition and stops managing the event stream. To continue receiving events (e.g., push-triggered unread counts), call coreClient.start(lifecycleScope) while the sheet is closed and coreClient.stop() when re-opening. Do not call coreClient.start() while MessagingInAppUI is active — the composable manages the lifecycle automatically.

Customizing the UI

ViewComponents

Override composable slots by assigning a custom ViewComponents implementation. Each slot receives a content lambda you can call to render the default, wrap, or ignore entirely. Available slots: ChatFeedEntry, ChatTopAppBar, ConversationClosed, and MarkdownContent.

Replace the top app bar with a custom header and unread message counter:

uiClient.viewComponents = object : ViewComponents {
@Composable
override fun ChatTopAppBar(content: @Composable () -> Unit) {
val conversation by uiClient.conversationClient(context)
.conversation.map { it.data }.collectAsStateWithLifecycle(null)

Row(
modifier = Modifier.fillMaxWidth().padding(16.dp),
horizontalArrangement = Arrangement.SpaceBetween
) {
Text("Support Chat", style = MaterialTheme.typography.titleLarge)
conversation?.unreadMessageCount?.takeIf { it > 0 }?.let { count ->
Badge { Text("$count") }
}
}
}
}

Start a new conversation when the current one is closed:

uiClient.viewComponents = object : ViewComponents {
@Composable
override fun ConversationClosed(content: @Composable () -> Unit) {
Column(Modifier.fillMaxWidth().padding(16.dp)) {
Text("This conversation has ended.")
Button(onClick = {
UIClient.Factory.destroy()
val newConfig = UIConfiguration(
configuration = coreConfig,
conversationId = UUID.randomUUID()
)
UIClient.Factory.create(newConfig).openConversationActivity(context)
}) {
Text("Start New Conversation")
}
}
}
}

For more examples including voice UI, bottom sheet widgets, and conversation list components, see the sample app.

Entry-type rendering

Control rendering per entry type using when expressions inside ChatFeedEntry:

uiClient.viewComponents = object : ViewComponents {
@Composable
override fun ChatFeedEntry(entry: ChatFeedEntry, content: @Composable () -> Unit) {
when (entry) {
is ChatFeedEntry.ConversationEntryModel -> {
when (entry.entryType) {
ConversationEntryType.Message -> MyCustomMessage(entry)
ConversationEntryType.ParticipantChanged -> { /* hide */ }
else -> content()
}
}
else -> content()
}
}
}

Important: The render decision applies to all entries of a given type. You cannot selectively replace individual messages while keeping others as defaults within the same type.

For interactive messages (quick replies, list pickers), use ConversationClient.sendReply() to submit the user's selection — not sendMessage().

Navigation within custom components

Access LocalSMINavigation inside a custom ViewComponents composable to conditionally render based on the current screen or navigate programmatically:

@Composable
override fun ChatTopAppBar(content: @Composable () -> Unit) {
val navigation = LocalSMINavigation.current
if (navigation.currentRoute?.route?.contains("ChatFeed") == true) {
// Show custom header only on the chat feed
MyCustomHeader()
} else {
content()
}
}

Available navigation actions: navigateToChatFeed, navigateToPreChat, navigateToForm, navigateToOptions, navigateToTranscriptViewer, navigateToAttachmentViewer, and navigateBack.

Branding and theming

The SDK supports three levels of UI customization:

  1. Color token overrides — Override named color resources in your app's colors.xml to change colors throughout the SDK UI without replacing components.

  2. String overrides — Override localized string resources to change text labels.

  3. Full component replacement — Use ViewComponents to replace entire composables.

There is no middle ground between color/string overrides and full replacement. You cannot change individual properties (font size, padding, etc.) of the default components.

To override color tokens, define colors in your app's res/values/colors.xml (light mode) and res/values-night/colors.xml (dark mode) with the SDK token names:

<!-- res/values/colors.xml -->
<resources>
<color name="smi_sent_bubble_background">#FF0070D2</color>
<color name="smi_received_bubble_background">#FFF3F2F2</color>
<color name="smi_navigation_background">#FFFFFFFF</color>
<color name="smi_chat_background">#FFF3F2F2</color>
<color name="smi_cta_buttons">#FF0070D2</color>
</resources>

Run ./gradlew dokkaGenerate to produce the full branding token reference at build/dokka/html/resources/ui/.

URL Display Mode

Control how tappable URLs are opened via UIConfiguration.urlDisplayMode:

  • UrlDisplayMode.InlineBrowser (default) -- Chrome Custom Tabs within your app

  • UrlDisplayMode.ExternalBrowser -- device default browser

Pre-Chat Fields

Pre-populate visible pre-chat field values so end users see defaults they can edit:

uiClient.preChatFieldValueProvider = { fields ->
fields.onEach { field ->
when (field.name) {
"FirstName" -> field.userInput = "Jane"
"Email" -> field.userInput = "jane@example.com"
}
}
}

For hidden pre-chat values used in routing (not visible to the user), use CoreClient.registerHiddenPreChatValuesProvider instead. Hidden pre-chat values are used for routing decisions in Salesforce Flows and are not displayed to the agent directly.

Accessing Core APIs

Retrieve the underlying CoreClient or ConversationClient for advanced operations such as registering a user verification provider or sending messages programmatically:

val coreClient = uiClient.coreClient(context)
val conversationClient = uiClient.conversationClient(context)

CoreClient lifecycle

When MessagingInAppUI is active, the SDK manages CoreClient.start() and CoreClient.stop() automatically. When the UI is not active (e.g., bottom sheet closed), the host app must manage the lifecycle manually to maintain the real-time event stream:

LifecycleResumeEffect(Unit) {
coreClient.start(lifecycleScope)
onPauseOrDispose { coreClient.stop() }
}

Do not call coreClient.start() while MessagingInAppUI is active — this causes instability.

Conversation Lifecycle

Conversation IDs

Use UUID.randomUUID() to start a new conversation. To resume an existing conversation, pass the same UUID that was used when the conversation was created.

After an app reinstall for unverified users, always generate a new conversation ID. The previous conversation is no longer accessible because the local encrypted database was cleared. Reusing the old ID will result in errors. For verified users (user verification enabled), conversations can be safely resumed across reinstalls because the server can re-associate the user.

Switching deployments

When switching between different Salesforce deployments within the same app, clear the local storage first to avoid data corruption:

UIClient.Factory.destroy()
CoreClient.clearStorage(context, clearAuthorization = true)

Call UIClient.Factory.destroy() before clearStorage to release the active client, then create a new UIClient with the new configuration.

Colors

To customize the color scheme in your app, create a color resource file in your app using the SDK's token names. To learn more, see Customize Colors for Android.

Show Colors
KeywordDefault Light ColorDefault Dark ColorDescription
smi_color_primary#FFFAFAF9#FF2B2826Primary branding color
smi_color_primary_variant#FF706E6B#FF2B2826Variant of the primary color
smi_color_on_primary#FF2B2826#FFECEBEAPrimary text color
smi_color_secondary#FF0070D2#FF007ADDSecondary branding color
smi_color_on_secondary#FFFFFFFF#FFFFFFFFSecondary text color
smi_color_background#FFF3F2F2#FF080707Background color
smi_color_on_background#FF706E6B#FFB0ADABColor for elements on the background color
smi_color_surface#FFFFFFFF#FF1A1B1EPrimary color for surfaces
smi_color_on_surface#FF2B2826#FFC9C7C5Text color on surfaces
smi_color_surface_highlight#FFB3B3B3#FF66676BHighlight color for surfaces
smi_color_surface_variant#FFDDDBDA#FF30373dVariant color for surfaces
smi_color_on_surface_variant#FF0070D2#FFFFFFFFVariant color for surfaces
smi_color_surface_secondary#FFCED0D2#FF30373dSecondary color for surfaces
smi_color_surface_secondary_variant#FFEDF4FF#FF3f3f3fSecondary color variant for surfaces
smi_color_highlight#FFFCC003#FFFCC003Highlight color
smi_color_error#FFD72E2D#FFD4504CError feedback color
smi_color_success#FF04844B#FF4BCA81Success feedback color
smi_color_surface_transparent#80FFFFFF#801A1B1ETransparent surface color
smi_color_on_background_semi_transparent#80706E6B#80B0ADABSemi-transparent color for elements on the background color
Show Branding

Header/General Colors

Detail TokenGeneric TokenDescription
smi_navigation_background@color/smi_color_primaryNavigation background color
smi_navigation_text@color/smi_color_on_primaryNavigation text color
smi_navigation_icon@color/smi_color_on_primaryNavigation icon color
smi_chat_background@color/smi_color_backgroundNavigation icon color
smi_cta_buttons@color/smi_color_secondaryCall-to-action button color
smi_cta_buttons_text@color/smi_color_secondaryCall-to-action text color
smi_banner_text@color/smi_color_backgroundBanner text color
smi_banner_background@color/smi_color_on_backgroundBanner background color
smi_url_text@color/smi_color_secondaryHyperlink text color
smi_keyboard_focus@color/smi_color_secondaryKeyboard focus indicator color
smi_footer_button_background@color/smi_color_primaryBackground for buttons in the footer

Bubble/Chat Colors

Detail TokenGeneric TokenDescription
smi_sent_bubble_text@color/smi_color_on_secondaryText color for an incoming message bubble
smi_sent_bubble_background@color/smi_color_secondaryBackground color for an outgoing chat bubble
smi_received_bubble_text@color/smi_color_on_surfaceText color for an incoming message bubble
smi_received_bubble_background@color/smi_color_surfaceBackground color for an incoming chat bubble
smi_received_bubble_border@color/smi_color_surface_variantBorder color for incoming chat bubble
smi_quick_reply_bubble_text@color/smi_color_on_surfaceText color for an incoming message bubble
smi_quick_reply_bubble_background@color/smi_color_surfaceBackground color for an incoming chat bubble
smi_typing_indicator_text@color/smi_color_on_backgroundTyping indicator color
smi_timestamp@color/smi_color_on_backgroundTimestamp text color
smi_avatar_background@color/smi_color_secondaryAvatar background color
smi_avatar_foreground@color/smi_color_on_secondaryAvatar foreground color
smi_chat_separator@color/smi_color_on_background_semi_transparentChat separator color
smi_unknown_entry_error_icon_background@color/smi_color_errorError entry icon background color
smi_icon_error@color/smi_color_on_secondaryError icon color that's used in the unknown entry

Button Colors

Detail TokenGeneric TokenDescription
smi_button_text@color/smi_color_on_surface_variantButton text color
smi_button_background@color/smi_color_surfaceButton background color
smi_button_border@color/smi_color_surface_variantButton border color
smi_button_focus_background@color/smi_color_on_surface_variantFocus text background color
smi_button_disabled_text@color/smi_color_on_backgroundDisabled text color
smi_button_disabled_selected_text@color/smi_color_backgroundDisabled selected text color
smi_button_disabled_selected_background@color/smi_color_on_backgroundDisabled selected text background color
smi_button_disabled_background@color/smi_color_surfaceDisabled text background color
smi_list_picker_title_text@color/smi_color_on_surfaceList picker title text color
smi_list_picker_title_background@color/smi_color_surfaceList picker title background color
smi_list_picker_border@color/smi_color_surface_variantList picker border color
smi_quick_reply_border@color/smi_color_surface_variantQuick reply border color
smi_cancel_button_active@color/smi_color_on_secondaryCancel button active color
smi_cancel_button_bg_active@color/smi_color_on_backgroundCancel button active background color
smi_cancel_button_pressed@color/smi_color_on_secondaryCancel button pressed color

Card Colors

Detail TokenGeneric TokenDescription
smi_card_background@color/smi_color_primaryBackground color for a card
smi_card_headline_text@color/smi_color_on_primaryHeadline text for a card
smi_card_subheader_text@color/smi_color_primary_variantSubheader text for a card

Carousels Colors

Detail TokenGeneric TokenDescription
smi_carousel_title_text@color/smi_color_on_primaryCarousel text title color
smi_carousel_sub_title_text@color/smi_color_on_primaryCarousel text subtitle color
smi_carousel_button_text@color/smi_color_secondaryCarousel button text color
smi_carousel_button_text_disabled@color/smi_color_on_backgroundCarousel button disabled text color
smi_carousel_button_background@color/smi_color_surfaceCarousel button background color
smi_carousel_background@color/smi_color_surfaceCarousel background color
smi_carousel_progress_indicator_active@color/smi_color_secondaryCarousel progress indicator active color
smi_carousel_progress_indicator_inactive@color/smi_color_on_backgroundCarousel progress indicator inactive color
smi_carousel_selected_highlight@color/smi_color_secondaryCarousel selected highlight color
smi_carousel_selected_icon_foreground@color/smi_color_on_secondaryCarousel selected icon foreground color
smi_carousel_selected_icon_background@color/smi_color_secondaryCarousel selected icon background color
smi_carousel_image_background@color/smi_color_primaryCarousel image background color

Icon Colors

Detail TokenGeneric TokenDescription
smi_icon_foreground@color/smi_color_on_secondaryIcon foreground color
smi_icon_background@color/smi_color_secondaryIcon background color
smi_icon_background_secondary@color/smi_color_on_backgroundIcon secondary background color
smi_icon_disabled@color/smi_color_on_backgroundIcon disabled color

Input Colors

Detail TokenGeneric TokenDescription
smi_input_background@color/smi_color_surfaceBackground color for text input field
smi_input_border@color/smi_color_surface_variantBorder color for text input field
smi_input_text@color/smi_color_on_surfaceText font color when typing a message
smi_input_placeholder@color/smi_color_on_backgroundPlaceholder text color for the input text field
smi_input_bar_background@color/smi_color_surfaceBackground color for the input bar container

Loading Screen Colors

Detail TokenGeneric TokenDescription
smi_loading_screen_text_placeholder@color/smi_color_surface_secondaryLoading screen placeholder text color
smi_loading_screen_sent_bubble_background@color/smi_color_surface_secondaryLoading screen sent bubble background color
smi_loading_screen_received_bubble_background@color/smi_color_on_backgroundLoading screen received bubble background color
smi_loading_screen_avatar@color/smi_color_on_backgroundLoading screen avatar color
smi_loading_screen_background@color/smi_color_backgroundLoading screen background color
smi_loading_screen_input_text_placeholder@color/smi_color_surface_secondaryLoading screen input text placeholder color
smi_loading_screen_shimmer@color/smi_color_surface_transparentLoading screen animation shimmer

Message Search Color

Detail TokenGeneric TokenDescription
smi_message_search_highlight_border_agent@color/smi_color_highlightHighlighted border color for agent
smi_message_search_highlight_border_user@color/smi_color_highlightHighlighted border color for user
smi_message_search_input_bar@color/smi_color_on_surfaceSearch input bar color
smi_message_search_input_background@color/smi_color_surfaceSearch input bar background color
smi_message_search_input_placeholder@color/smi_color_on_background_semi_transparentSearch input bar placeholder color
smi_message_search_history_header@color/smi_color_on_surfaceMessage search history header color
smi_message_search_history_text@color/smi_color_on_surfaceMessage search history text color
smi_message_search_history_dismiss@color/smi_color_on_surfaceMessage search history dismiss color
smi_message_search_result_text@color/smi_color_on_surfaceMessage search result text color
smi_message_search_result_timestamp@color/smi_color_on_backgroundMessage search result timestamp color
smi_message_search_empty_header@color/smi_color_on_surfaceMessage search header when the empty state is shown
smi_message_search_empty_text@color/smi_color_on_surfaceMessage search text when the empty state is shown
smi_message_search_empty_icon@color/smi_color_on_surfaceMessage search icon when the empty state is shown
smi_message_search_avatar_icon_background@color/smi_color_secondaryMessage search avatar icon background
smi_message_search_avatar_icon_foreground@color/smi_color_on_secondaryMessage search avatar icon foreground
smi_message_search_url_text@color/smi_color_secondaryHyperlink text color in message search screen

Participant Client Menu

Detail TokenGeneric TokenDescription
smi_participant_client_menu_background@color/smi_color_backgroundClient menu background color
smi_participant_client_menu_item_text@color/smi_color_on_surfaceClient menu text item color
smi_participant_client_menu_item_background@color/smi_color_surfaceClient menu item background color
smi_participant_client_menu_item_icon@color/smi_color_secondaryClient menu item icon color
smi_participant_client_menu_search_icon@color/smi_color_secondaryClient menu search icon color
smi_participant_client_menu_item_focus_background@color/smi_color_on_surface_variantClient menu item focus background color
smi_participant_client_menu_button@color/smi_color_surfaceClient menu button color
smi_participant_client_menu_button_text@color/smi_color_on_surfaceClient menu button text color
smi_participant_client_menu_button_border@color/smi_color_surface_variantClient menu button border color

Pre-Chat Colors

Detail TokenGeneric TokenDescription
smi_prechat_background@color/smi_color_backgroundPre-chat window background color
smi_prechat_border@color/smi_color_on_primaryBorder color for text input field in pre-chat
smi_prechat_text@color/smi_color_on_primaryText color on pre-chat form
smi_prechat_text_active@color/smi_color_secondaryColor for the active pre-chat cell
smi_prechat_button@color/smi_color_secondaryPre-chat button color
smi_prechat_button_text@color/smi_color_on_secondaryPre-chat button text color
smi_prechat_input_background@color/smi_color_surfacePre-chat window background color
smi_prechat_error@color/smi_color_errorPre-chat error feedback color
smi_prechat_disabled@color/smi_color_surface_secondaryDisabled pre-chat field

Secure Forms Colors

Detail TokenGeneric TokenDescription
smi_form_submit_button@color/smi_color_secondarySecure form submit button color
smi_form_submit_button_text@color/smi_color_on_secondarySecure form submit button color text
smi_form_next_button@color/smi_color_secondarySecure form next button background color
smi_form_next_button_text@color/smi_color_on_secondarySecure form next button text color
smi_form_back_button@color/smi_color_on_secondarySecure form back button background color
smi_form_back_button_text@color/smi_color_secondarySecure form back button text color
smi_form_background@color/smi_color_backgroundSecure form background color
smi_form_title_text@color/smi_color_on_primarySecure form title text color
smi_form_sub_title_text@color/smi_color_on_primarySecure form subtitle text color
smi_form_option_title@color/smi_color_on_primarySecure form selectable option title color
smi_form_option_button_background@color/smi_color_primarySecure form selectable option button background color
smi_form_option_button_text@color/smi_color_on_primarySecure form selectable option button text color
smi_form_option_button_border@color/smi_color_on_primarySecure form selectable option button border color
smi_form_option_button_border_selected@color/smi_color_secondarySecure form selectable option button border selected color
smi_form_option_text_error@color/smi_color_errorSecure form selectable option text error color
smi_form_input_footer_label@color/smi_color_on_primarySecure form input footer label
smi_form_input_border@color/smi_color_on_primarySecure form input border color
smi_form_input_border_active@color/smi_color_secondarySecure form input border active color
smi_form_input_border_error@color/smi_color_errorSecure form input border error color
smi_form_input_title_text@color/smi_color_on_primarySecure form input title text color
smi_form_input_text@color/smi_color_on_primarySecure form input text color
smi_form_input_background@color/smi_color_backgroundSecure form input background color
smi_form_confirmation_button_leave@color/smi_color_secondarySecure form confirmation window leave button background color
smi_form_confirmation_button_leave_text@color/smi_color_on_secondarySecure form confirmation window leave button text color
smi_form_confirmation_button_cancel@color/smi_color_surfaceSecure form confirmation cancel button background color
smi_form_confirmation_button_cancel_text@color/smi_color_on_surfaceSecure form confirmation cancel button text color
smi_form_confirmation_button_cancel_border@color/smi_color_on_surfaceSecure form confirmation cancel button border text color
smi_form_proress_bar_foreground@color/smi_color_secondarySecure form progress bar foreground color
smi_form_cell_icon_background_disabled@color/smi_color_surface_highlightSecure form cell icon disabled background color
smi_form_cell_icon_disabled@color/smi_color_primarySecure form cell icon disabled color
smi_form_option_button_icon@color/smi_color_secondarySecure form option icon button color
smi_form_date_picker_icon@color/smi_color_secondarySecure form date picker icon color

Request Transcript Colors

Detail TokenGeneric TokenDescription
smi_transcript_background@color/smi_color_backgroundRequest transcript screen background color
smi_transcript_text@color/smi_color_on_surfaceRequest transcript screen text color
smi_transcript_button_leave@color/smi_color_secondaryRequest transcript leave button color
smi_transcript_button_leave_border@color/smi_color_secondaryRequest transcript leave button border color
smi_transcript_button_leave_text@color/smi_color_on_secondaryRequest transcript leave button text color
smi_transcript_button_cancel@color/smi_color_surfaceRequest transcript cancel button color
smi_transcript_button_cancel_border@color/smi_color_on_surface_variantRequest transcript cancel button border color
smi_transcript_button_cancel_text@color/smi_color_on_surfaceRequest transcript cancel button text color
smi_transcript_progress_indicator@color/smi_color_secondaryRequest transcript progress indicator color
smi_transcript_progress_indicator_background@color/smi_color_on_secondaryRequest transcript progress indicator background color

Progress Indicator Colors

Detail TokenGeneric TokenDescription
smi_progress_indicator_text@color/smi_color_on_surfaceProgress indicator label text color
smi_progress_indicator_icon_outer@color/smi_color_on_surfaceProgress indicator animation icon outer arch color
smi_progress_indicator_icon_inner@color/smi_color_on_surfaceProgress indicator animation icon inner arch color
smi_notification_badge_background@color/smi_color_surfaceNotification badge background color
smi_notification_badge_icon@color/smi_color_on_surfaceNotification badge icon color
smi_notification_badge_outline@color/smi_color_surface_variantNotification badge outline color
smi_notification_badge_counter_background@color/smi_color_errorNotification badge unread message counter background
smi_notification_badge_counter_text@color/smi_color_surfaceNotification badge unread message counter text color

End Chat Session Colors

Detail TokenGeneric TokenDescription
smi_end_chat_confirmation_background@color/smi_color_backgroundEnd Chat confirmation screen background color
smi_end_chat_confirmation_text@color/smi_color_on_surfaceEnd Chat confirmation screen text color
smi_end_chat_confirmation_button_background@color/smi_color_secondaryEnd Chat confirmation button color
smi_end_chat_confirmation_button_border@color/smi_color_secondaryEnd Chat confirmation button border color
smi_end_chat_confirmation_button_text@color/smi_color_on_secondaryEnd Chat confirmation button text color
smi_end_chat_confirmation_button_cancel_background@color/smi_color_surfaceEnd Chat confirmation cancel button color
smi_end_chat_confirmation_button_cancel_border@color/smi_color_on_surface_variantEnd Chat confirmation cancel button border color
smi_end_chat_confirmation_button_cancel_text@color/smi_color_on_surfaceEnd Chat confirmation cancel button text color
smi_end_chat_confirmation_progress_indicator@color/smi_color_secondaryEnd session progress indicator color

Closed Conversation Colors

Detail TokenGeneric TokenDescription
smi_closed_conversation_background@color/smi_color_primaryClosed conversation message background color
smi_closed_conversation_text@color/smi_color_secondaryClosed conversation message text color

Fallback Message Screen Colors

Detail TokenGeneric TokenDescription
smi_fallback_message_background@color/smi_color_backgroundFallback Message confirmation screen background color
smi_fallback_message_confirmation_text@color/smi_color_on_surfaceFallback Message confirmation screen text color
smi_fallback_message_confirmation_button@color/smi_color_secondaryFallback Message confirmation button color
smi_fallback_message_confirmation_button_text@color/smi_color_on_secondaryFallback Message confirmation button text color

File Type Placeholders

KeywordDefault Light ColorDefault Dark ColorDescription
smi_color_file_icon_xml#FFF38303#FFF38303Placeholder color for .xml files shown in the feed.
smi_color_file_icon_csv#FF2E844A#FF2E844APlaceholder color for .csv files shown in the feed.
smi_color_file_icon_txt#FFE4A201#FFE4A201Placeholder color for .txt files shown in the feed.
smi_color_file_icon_word#FF107CAD#FF107CADPlaceholder color for .doc and .docx files shown in the feed.
smi_color_file_icon_excel#FF2E844A#FF2E844APlaceholder color for .xls and .xlsx files shown in the feed.
smi_color_file_icon_audio#FFDD7A01#FFBF6B04Placeholder color for audio files shown in the feed.
smi_color_file_icon_video#FF06A59A#FF088F86Placeholder color for video files shown in the feed.
smi_color_file_icon_catch_all#FF7F8CED#FF6F7ACCPlaceholder color for catch all files shown in the feed.

Markdown Text Colors

Detail TokenGeneric TokenDescription
smi_received_markdown_link_text@color/smi_color_secondaryColor used for link text that renders in markdown
smi_received_markdown_code_background@color/smi_color_backgroundColor used for the background of code in markdown
smi_received_markdown_code_text@color/smi_color_on_surfaceColor used for the text of code in markdown
smi_received_markdown_horizontal_rule@color/smi_color_on_surfaceColor used for the background color of a horizontal rule rendered in markdown

Citation Colors

Detail TokenGeneric TokenDescription
smi_citations_source_button_background@color/smi_color_surface_secondary_variantColor used for the background color of a citation source button
smi_citations_source_button_text@color/smi_color_on_surfaceColor used for the text color of a citation source button

Icons

To customize the icons and images used throughout the SDK, add a drawable asset to your project using the associated keyword. To learn more, see Customize Icons for Android.

Show Icons
TokenImageDescription
smi_action_attach_filesmi_action_attach_fileIcon for attaching a file.
smi_action_attach_photosmi_action_attach_photoIcon for attaching a photo.
smi_action_cancelsmi_action_cancelIcon representing the cancel action.
smi_action_deletesmi_action_deleteIcon representing the delete action.
smi_action_downloadsmi_action_downloadIcon representing the download action.
smi_action_jump_tosmi_action_jump_toIcon representing the jump-to action.
smi_action_mutesmi_action_mutenull
smi_action_scroll_to_bottomsmi_action_scroll_to_bottomIcon representing the scroll down action on the overlay badge in the feed.
smi_action_searchsmi_action_searchIcon representing the message search action.
smi_action_sendsmi_action_sendnull
smi_action_sharesmi_action_shareIcon representing the share action.
smi_action_take_photosmi_action_take_photoIcon for taking a photo.
smi_action_unmutesmi_action_unmutenull
smi_addsmi_addIcon representing the menu button on the text input.
smi_avatar_agentsmi_avatar_agentAgent avatar shown in the chat feed.
smi_avatar_botsmi_avatar_botDefault bot avatar shown in the chat feed.
smi_avatar_usersmi_avatar_userUser avatar shown in search results.
smi_chevron_rightsmi_chevron_rightIcon representing a link to the preview that can be navigated.
smi_icon_checksmi_icon_checkIcon representing a confirmed action.
smi_icon_clocksmi_icon_clockIcon representing the image used for business hours banner.
smi_icon_errorsmi_icon_errorIcon representing an error.
smi_icon_failedsmi_icon_failedIcon representing an error that occured while sending a message.
smi_icon_file_audiosmi_icon_file_audioIcon representing an audio file attachment.
smi_icon_file_csvsmi_icon_file_csvIcon representing a CSV file with extension .csv.
smi_icon_file_excelsmi_icon_file_excelIcon representing an Excel file with extension .xls or .xlsx.
smi_icon_file_othersmi_icon_file_otherIcon representing a generic file attachment.
smi_icon_file_txtsmi_icon_file_txtIcon representing a text file with extension .txt.
smi_icon_file_videosmi_icon_file_videoIcon representing a video file attachment.
smi_icon_file_wordsmi_icon_file_wordIcon representing a word file with extension .doc or .docx.
smi_icon_file_xmlsmi_icon_file_xmlIcon representing a XML file with extension .xml.
smi_icon_formsmi_icon_formIcon representing the form message shown in the feed.
smi_icon_offlinesmi_icon_offlineIcon representing an offline state.
smi_icon_pre_chat_receiptsmi_icon_pre_chat_receiptIcon representing a checklist in the pre-chat receipt.
smi_icon_readsmi_icon_readIcon representing a read state.
smi_icon_sendingsmi_icon_sendingIcon representing a message in transit.
smi_icon_sentsmi_icon_sentIcon representing a successfully sent message.
smi_image_iconsmi_image_iconIcon representing an image placeholder in the feed.
smi_no_search_resultssmi_no_search_resultsIcon shown when there are no search results.
smi_options_menu_iconsmi_options_menu_iconIcon representing the conversation options navigation action.

Strings

To customize any UI text, create a strings.xml resource file in your app using the SDK's resource names. To learn more, see Customize Strings for Android.

Show Strings

Chat Feed Strings

KeywordDefault ValueDescription
smi_chat_feed_titleChatTitle for the chat feed view.
smi_chat_feed_accessibilityChat FeedAccessibility label for the chat feed container view.
smi_chat_add_buttonOpen option menu.Content description for the add button in the chat view to open the options menu.
smi_chat_start_conversationStart ConversationContent description for a button that is used to resubmit pre-chat fields mid-conversation.
smi_chat_start_conversation_feed_input_text_accessibilityFill out a pre-chat form to continue the conversationAccessibility announcement when the user needs to enter and resubmit pre-chat fields.
smi_chat_closed_conversationThis conversation has endedText displayed instead of the text input when a conversation has closed and can longer be interacted with.
smi_chat_badge_overlay_count9+The chat feed badge overlay unread message count for amounts equal to or over 10.

Chat Feed Input Strings

KeywordDefault ValueDescription
smi_feed_input_textType a messagePlaceholder text inside chat input field.
smi_feed_input_text_accessibilityMessage InputAccessibility label for identifying the input control.
smi_feed_input_buttonSendAction text for the send message button.
smi_feed_new_messagesNew MessagesA notification that alerts the user that there are new unread messages in the chat feed.
smi_feed_new_messages_accessibilityYou have new messages.An accessibility announcement that alerts the user that there are new unread messages in the chat feed.
smi_feed_new_messages_button_accessibilityScroll to bottom of chat feed.The description for the notification badge button that alerts a user they will be brought to the bottom of the feed.

Action Menu Strings

KeywordDefault ValueDescription
smi_feed_action_menu_photo_sendSend a PhotoAction Menu text for sending a photo.
smi_feed_action_menu_file_sendSend a FileAction Menu text for sending a file.
smi_feed_action_menu_photo_takeTake a PhotoAction Menu text for taking a photo.
smi_feed_action_menu_accessibilityAction MenuThe accessibility string for the Action Menu to the left of the text input

Delivery Status

KeywordDefault ValueDescription
smi_delivery_status_sendingSendingThe message auxiliary view that will display the sending message indicator.
smi_delivery_status_sentSentThe message auxiliary view that will display the sent message indicator.
smi_delivery_status_readReadThe message auxiliary view that will display the read message indicator.
smi_delivery_status_deliveredDeliveredThe message auxiliary view that will display the delivered message indicator.
smi_delivery_status_errorSend failed. Tap to retry.The message auxiliary view that will display the error message.
smi_delivery_status_error_unsupportedMediaTypeMessage Failed.The error message appears when a message failed due to an unsupported media type
smi_delivery_status_error_additional_information_requiredProvide additional info to proceed.The error message that appears when receiving a 417 error. This message corresponds to needing to resubmit pre-chat fields.
smi_delivery_status_error_accessibilityFailedThe concise failed status for accessibility
smi_delivery_status_error_hint_accessibilityDouble tap to retryHint for the user to double tap the message to retry
smi_local_message_identifier_accessibilityYour Message %sThe accessibility text for identifying messages sent from the local user
smi_message_received_event_accessibilityMessage received from %sThe accessibility announcement text that informs the user when a message has been received
smi_message_sending_event_accessibilityMessage sentThe accessibility announcement text that informs the user that their message has been sent

Network Connectivity Banner

KeywordDefault ValueDescription
smi_network_status_reconnectingWaiting to reconnectThe network connectivity banner text that will inform the user the network connection has been lost and is attempting to reconnect
smi_network_status_reconnecting_accessibilityNetwork connectivity is lost, attempting to reconnectThe accessibility announcement that informs the user when the network connection has been lost and is attempting to reconnect
smi_network_status_connectedConnectedThe network connectivity banner that will inform the user the network has connected after the network has lost connectivity
smi_network_status_connected_accessibilityNetwork connectivity establishedThe accessibility announcement that informs the user when the network is connected after having lost connectivity

Business Hours Banner

KeywordDefault ValueDescription
smi_business_hours_outsideNew chats aren\'t available outside of business hoursThe message that is shown in the chat feed banner when outside of business hours
smi_business_hours_outside_accessibilityNew chats aren\'t currently available. Try again during business hours.The accessibility announcement that informs the user that they are out of the set business hours and the contact center is closed

Typing

KeywordDefault ValueDescription
smi_typing_indicator_start_accessibility%s has started typingThe accessibility announcement that informs the user when a participant starts typing
smi_typing_indicator_stop_accessibility%s has stopped typingThe accessibility announcement that informs the user when a participant stops typing

Progress Indicators

KeywordDefault ValueDescription
smi_progress_indicator_single_participant%s is typing...The default label for a single participant progress indicator.
smi_progress_indicator_bot%s is responding...The default label for a bot progress indicator.
smi_progress_indicator_two_participants%1

$s and %2$

s are typing...
The default label for two participants typing.
smi_progress_indicator_multiple_participantsMultiple people are typing...The default label for multiple participants typing.
smi_progress_indicator_message_accessibility%1

$s %2$

s
The accessibility announcement for a bot progress indicator containing the bot display name and the progress message text.
smi_progress_indicator_queue_positionYour current queue position is %1$dThe current queue position label (e.g. Your current queue position is 10) displayed as a progress indicator.

Misc

KeywordDefault ValueDescription
smi_misc_separatorseparator used when conjoining information together in a string
smi_misc_unknownUnknownThis is used when a value or result cannot be determined
smi_action_cancelCancelCancel action to be used for cancel button and menus throughout the SDK.
smi_action_settingsSettingsSettings action for permission alerts
smi_file_size_megabyteMBSize of a file in megabytes
smi_unknown_entry_messageThis message type isn\'t supported.The error message that appears when the message type of the message in the chat feed isn't supported.

Alerts

KeywordDefault ValueDescription
smi_alert_title_failedMessage FailedAlert title text for the retry message alert.
smi_alert_title_permission_cameraAllow Camera AccessAlert title text for requesting camera access.
smi_alert_message_failedMessage failed to send. Retry?Confirmation text for the retry message alert.
smi_alert_message_permission_cameraTo use your camera, go to Settings and enable Camera access for this app.Explanation that the user must allow camera permission
smi_alert_action_retryRetryRetry action for the retry message alert.
smi_alert_attachment_limit_reachedAttachment limit reachedAlert when limit for number of attachments is reached.

Participant Changed

KeywordDefault ValueDescription
smi_participant_name_defaultParticipantDefault string for a participant with no displayName or subject configured.
smi_participant_changed_joined%s has joinedNotice that a participant has joined the conversation
smi_participant_changed_joined_accessibility%s has joined the conversationThe accessibility announcement that informs the user that a participant has joined the conversation
smi_participant_changed_left%s has leftNotice that a participant has left the conversation
smi_participant_changed_left_accessibility%s has left the conversationThe accessibility announcement that informs the user that a participant has left the conversation

PreChat

KeywordDefault ValueDescription
smi_pre_chat_required_accessibility%s is requiredThe accessibility string for the PreChat field if the field is required
smi_pre_chat_required%s *The string for a PreChat field label if the field is required
smi_pre_chat_submit_buttonChat with an AgentThe title of the PreChat submit button
smi_pre_chat_titleJust a few things before we connect you with an expert…The title of the PreChat forum
smi_pre_chat_choice_list_noneNoneLabel for the None option in a pre-chat choice list
smi_pre_chat_back_buttonBackThe back button for the prechat form
smi_pre_chat_error_field_requiredThis field is required.Error message shown when a required field fails PreChat validation
smi_pre_chat_error_valid_email_formatUse a valid email format.Error message shown when an email PreChat field fails PreChat validation
smi_pre_chat_error_valid_number_formatField can only contain numbers.Error message shown when a number PreChat field fails PreChat validation
smi_pre_chat_error_valid_phone_formatUse a valid phone number format.Error message shown when a phone PreChat field fails PreChat validation
smi_pre_chat_submission_review_titleSubmitted Form DetailsHeader for prechat submitted form details
smi_pre_chat_submission_card_titleForm submitted Tap to reviewText for prechat cell that shows in chat after submitting prechat
smi_back_button_accessibilityBackAccessibility text for hitting the back button
smi_exit_button_accessibilityExit to chat feedAccessibility text for hitting the exit button on pre chat submission screen
smi_checkbox_selected_accessibilityCheckbox selectedAccessibility text for when the checkbox is selected
smi_checkbox_not_selected_accessibilityCheckbox not selectedAccessibility text for when the checkbox is not selected
smi_terms_and_conditions_errorAccept the Terms and Conditions to continue.Error message displayed when the Terms and Conditions are required but not accepted.
smi_terms_and_conditions_acceptAcceptMessage displayed next to the checkbox to accept the Terms and Conditions.
smi_terms_and_conditions_accepted_accessibilityTerms and conditions is acceptedAccessibility label for terms and conditions box when it is accepted.
smi_terms_and_conditions_not_accepted_accessibilityTerms and conditions is not acceptedAccessibility label for terms and conditions box when it is accepted.
smi_pre_chat_error_accessibility%1

$s input. Error %2$

s.
Accessibility readout for prechat errors. The first parameter is the field name, the second field is the error on the field.

Attachments

KeywordDefault ValueDescription
smi_image_accessibilityImage message.Accessibility text for an image message in the chat feed or attachment preview.
smi_remove_image_button_accessibilityRemove image message.Accessibility text for the button to remove an image message from the input field.
smi_multiple_attachment_counter+%dA counter that takes an integer representing the number of file attachments not shown.
smi_image_preview_accessibilityImage preview.Accessibility text for the image preview dialog.
smi_image_preview_cancel_button_accessibilityClose image preview.Accessibility text for the button to close the image preview dialog.
smi_camera_gallery_button_accessibilityPhoto gallery.Accessibility text for the button to open the photo gallery.
smi_camera_switch_lens_button_accessibilitySwitch lens direction.Accessibility text for the button to switch the camera lens direction.
smi_camera_capture_button_accessibilityCapture photo.Accessibility text for the button to capture a photo.
smi_camera_view_capturing_accessibilityCamera capturing photoAccessibility text for the view that is displaying the phones camera capturing a photo
smi_image_viewer_jump_to_photo_accessibilityJump to photoAccessibility text for the jump to photo button in image viewer
smi_image_viewer_share_photo_accessibilityShare photoAccessibility text for the share button in image viewer
smi_image_viewer_download_photo_accessibilityDownload photoAccessibility text for the download button in image viewer
smi_image_saved_messageAttachment savedShown in popup when user taps the download button and the attachment successfully saves
smi_attachment_download_failed_messageFailed to save attachmentShown in popup when user clicks on download button and the attachment fails to save
smi_image_download_denied_titleAllow Photo AccessTitle shown in popup when user tries to save a photo with denied permission
smi_image_download_denied_bodyTo save photos, go to Settings and enable Photos access for this app.Message shown in popup when user tries to save a photo with denied permission
smi_file_format_unsupportedUnsupported file format.Message shown if user sends an unsupported file in chat
smi_file_format_unsupported_alternateFile type not supported, try: %sMessage show if the user sends an unsupported file in the chat and a list of alternate file types given as a suggestion.
smi_file_size_exceededAttachment is too large. Maximum size is %s.Message shown if the user sends an attachment that exceeds the max size that can be sent

Agent Transfer

KeywordDefault ValueDescription
smi_transfer_requested_event_textTransfer requested at %sA system message informing the user that a transfer to a service agent has been requested, and a string template indicating the time of the request.

Routing Failure

KeywordDefault ValueDescription
smi_routing_failure_event_textAgents are not available. Try again later.A default system message informing the user that routing to an service console agent has failed.

Routing Estimated Wait Time

KeywordDefault ValueDescription
smi_routing_initial_agentAn agent will be with you shortly.Shown when the routing type is initial. and EWT is available
smi_routing_wait_resolved_minutesYour expected wait time is %s minutes.Shown when the estimated wait time is greater than 60 seconds. Rounded up to the nearest minute
smi_routing_wait_resolved_shortYour expected wait time is less than one minute.Shown when the estimated wait time is less than or equal to 60 seconds

Loading Screen

KeywordDefault ValueDescription
smi_loading_screen_accessibilityActive loading screenA message that will be read out to the user when a loading screen is shown, and read out to the user when the loading screen is selected.

Link Preview Strings

KeywordDefault ValueDescription
smi_link_preview_accessibilityLink previewThe screen reader will read out link preview and then the name of the link

Message Search

KeywordDefault ValueDescription
smi_nothing_entered_in_searchNothing here yetMessage displayed when there’s nothing in the search bar and there are no recent searches
smi_no_search_resultsNo search resultsMessage displayed when there are no search results
smi_no_matching_resultsWe couldn\'t find what you\'re looking for. Try searching for something else.Message displayed when nothing matches the users search
smi_message_search_headerMessage SearchHeader for the message search page
smi_recent_searches_headerRecent SearchesHeader for the recent search list
smi_search_placeholder_textSearchPlaceholder text for the search bar
smi_today_timestamp_message_searchTodayTimestamp text for when the message was sent today
smi_yesterday_timestamp_message_searchYesterdayTimestamp text for when the message was sent yesterday
smi_users_nameYouThe name shown for the user in the time stamp row
smi_no_recent_searchesYou haven\'t performed a recent search. Enter keywords in the search field.Message displayed when there are no search results and no text is entered in the search field
smi_message_search_back_buttonBackThe back button for message search
smi_message_search_clear_search_text_accessibilityClear search textAccessibility text for clearing the search field in message search
smi_message_search_agent_avatar_accessibilityAgent avatarAccessibility text for the agent avatar in message search
smi_message_search_user_avatar_accessibilityUser avatarAccessibility text for the user avatar in message search
smi_message_search_agent_bot_accessibilityBot avatarAccessibility text for the bot avatar in message search
smi_message_search_result_item_accessibility%s, %s, %sAccessibility text for the message search result item

Copy Menu

KeywordDefault ValueDescription
smi_action_copyCopyText displayed in the context menu for the copy behavior

Participant Client Menu

KeywordDefault ValueDescription
smi_participant_client_menu_titleConversation OptionsText displayed in the header of the participant client menu. The participant client menu will contain actions a user can take in a chat feed. The header will display the name of the participant followed by Options.
smi_participant_client_menu_title_accessibilityConversation Options MenusThe accessibility message for the participant client menu

Form Message

KeywordDefault ValueDescription
smi_form_message_footer_submitSubmitText displayed in the footer menu of the Form Message for the submit button.
smi_form_message_footer_backBackText displayed in the footer menu of the Form Message for the back button.
smi_form_message_footer_nextNextText displayed in the footer menu of the Form Message for the next button.
smi_form_message_back_buttonBackThe back button for the secure form
smi_form_message_back_button_accessibilityBack to chat feedAccessibility text for hitting the back button on form message submission screen
smi_form_message_exit_screen_titleLeave the form?The main title for the secure form exit confirmation screen.
smi_form_message_exit_screen_subtitleAfter leaving the form, you can open it again in the messaging window. However, your progress isn\'t saved.The subtitle for the secure form exit confirmation screen.
smi_form_message_exit_screen_confirmLeave FormThe leave form button for the secure form exit confirmation screen.
smi_form_message_exit_screen_cancelCancelThe cancel button text for the secure form exit confirmation screen
smi_form_message_result_successForm SubmittedThe message shown in the chat bubble when a form has been successfully submitted.
smi_form_message_result_submittingForm SubmittingThe message shown in the chat bubble when a form is submitting.
smi_form_message_result_errorError Submitting FormThe message shown in the chat bubble when a form fails to submit.
smi_form_message_required_accessibility%s is requiredThe accessibility string for the form message field if the field is required
smi_form_message_required%s *The string for a form message field label if the field is required
smi_form_message_section_required_acccessibilityRequired: %sThe string for a form message field label if the field is required
smi_form_message_text_invalid_emailNot a valid emailThe string that is displayed below a form entry that indicates an invalid email has been entered.
smi_form_message_text_invalid_urlNot a valid urlThe string that is displayed below a form entry that indicates an invalid url has been entered.
smi_form_message_text_input_required_messageThis field is requiredThe string that is displayed below a form entry that indicates this item is required.
smi_form_message_option_required_messageOne or more options requiredThe string that is displayed below a form entry that indicates this item is required.
smi_form_message_divider%1

$d/%2$

d
The divider for the form message text field character counter
smi_form_message_text_input_accessibility%s double tap to editThe accessibility message for the grouped form text input
smi_form_message_text_input_required_accessibility%s is required. Double tap to editThe accessibility message for the group form text required input
smi_form_message_screen_accessibility%s ScreenThe accessibility message is show when a new screen is displayed in the form input
smi_form_error_accessibility%1

$s input. Error %2$

s.
Accessibility readout for form errors. The first parameter is the form field label. The second parameter is the error message on the field.

Carousel

KeywordDefault ValueDescription
smi_carousel_image_placeholder_accessibilityEmpty Carousel imageA placeholder icon to indicate there is no image for a carousel option.
smi_carousel_selected_icon_accessibilityOption selectedAn icon to indicate that an option has been selected for a carousel message.
smi_carousel_image_accessibilityCarousel imageThe default image content description for a carousel option, if no description is given.
smi_carousel_indicator_accessibilityPage %1

$d of %2$

d
Accessibility label for the carousel indicator
smi_carousel_indicator_dot_accessibilityGo to page %1

$d of %2$

d
Accessibility label for individual carousel indicator dots

Request Transcript

KeywordDefault ValueDescription
smi_transcript_request_buttonRequest Chat TranscriptThe title of the request transcript button in the participant client menu.
smi_transcript_titleChat TranscriptThe title of the request transcript screen.
smi_transcript_leave_buttonLeaveThe leave button on the leave transcript screen. This screen warns the user that if they leave without saving, the transcript is lost.
smi_transcript_cancel_buttonCancelThe cancel button on the leave transcript screen. This screen warns the user that if they leave without saving, the transcript is lost.
smi_transcript_leave_titleLeave TranscriptTitle of the leave transcript screen. This screen warns the user that if they leave without saving, the transcript is lost.
smi_transcript_leave_subtitleBe sure to save the transcript before leaving.Subtitle of the leave transcript screen. This screen warns the user that if they leave without saving, the transcript is lost.
smi_transcript_save_button_accessibilitySave TranscriptThe accessibility string for the save transcript button.
smi_transcript_share_button_accessibilityShare TranscriptThe accessibility string for the share transcript button.
smi_transcript_error_messageSomething went wrong. Please try again later.Error message to display on the error screen when the transcript fails to download from the server.
smi_transcript_alert_save_failedSave failedMessage to display when the request transcript fails to save on the device.
smi_transcript_alert_save_succeedSave was successfulMessage to display when a request transcript successfully saves on the device.

End Chat Session

KeywordDefault ValueDescription
smi_end_chat_menu_buttonEnd ChatThe title of the end chat button in the participant client menu.
smi_end_chat_titleEnd Chat?The title label on the end chat confirmation page.
smi_end_chat_subtitleAre you sure you want to end the chat session? You will be disconnected from the agent.The subtitle label on the end chat confirmation page.
smi_end_chat_confirmation_buttonEnd ChatThe end chat button label on the confirmation page.
smi_end_chat_cancelCancelThe cancel button label on the confirmation page.
smi_end_chat_error_messageSomething went wrong. Please try again later.Error message to display on the end chat confirmation page when there is an issue ending the chat
smi_fallback_message_close_buttonCloseThe close button label on the fallback message page.

Streaming Tokens

KeywordDefault ValueDescription
smi_streaming_text_cursorThe cursor to display while text is streaming in.
smi_streaming_message_accessibilityThe bot is respondingAccessibility readout for when a message is being streamed in.
smi_streaming_invalidThe previous response couldn’t be verified. The agent is generating a new response.Displayed when a streaming token was invalidated
smi_streaming_revisedRevisedDisplayed when a message was revised
smi_citation_inline_title\\\[%d\\]A string template for inline citations. Takes an integer representing the citation number.
smi_citation_source_button_title\[%1

$d] %2$

s
A string template for citation source button. Takes an integer representing the citation number and a string representing the url title
smi_session_status_changed_endedChat Ended • %sDisplayed in the chat feed when the chat session ends. Ex: Chat Ended • 12:34 PM

Packages

Link copied to clipboard
Link copied to clipboard