Requirements
Install the SDK
Build a UI SDK App
Build a Core SDK App
Manage Conversations
Customize Strings
Customize Icons
Degraded Experience in Older iOS Versions
Sample Apps
Enhanced Chat API Developer Guide
The UI SDK provides default text for all the messages that a user can encounter. You can customize the strings in your app using resource files.
This article applies to the following implementations:
| UI SDK | Core SDK |
|---|---|
| ✅ |
To customize these strings in your app, create an Localizable.strings localizable resource file in your app and override the string keywords. For example:
1"SMI.Feed.Input.Text" = "My custom text...";To learn more, see the Apple documentation on String Resources. To learn about which languages the SDK supports, see Language Support.
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Chat.Feed.Title | Chat | Title for the chat feed view. |
| SMI.Chat.Feed.Accessibility | Chat Feed | Accessibility label for the chat feed container view. |
| SMI.Chat.Start.Conversation | Start Conversation | Content description for a button that is used to resubmit pre-chat fields mid-conversation. |
| SMI.Chat.Start.Conversation.Feed.Input.Text.Accessibility | Fill out a pre-chat form to continue the conversation | Accessibility announcement when the user needs to enter and resubmit pre-chat fields. |
| SMI.Chat.Badge.Overlay.Count | 9+ | The chat feed badge overlay unread message count for amounts equal to or over 10. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Feed.Input.Text | Type a message | Placeholder text inside chat input field. |
| SMI.Feed.Input.Text.Accessibility | Message Input | Accessibility label for identifying the input control. |
| SMI.Feed.Input.Button | Send | Action text for the send message button. |
| SMI.Feed.New.Messages | New Messages | A notification that alerts the user that there are new unread messages in the chat feed. |
| SMI.Feed.New.Messages.Accessibility | You 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.Accessibility | Scroll 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. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Feed.Action.Menu.Title | Send an attachment? | Action Menu text for sending a photo. |
| SMI.Feed.Action.Menu.Photo.Send | Send a Photo | Action Menu text for sending a photo. |
| SMI.Feed.Action.Menu.File.Send | Send a File | Action Menu text for sending a file. |
| SMI.Feed.Action.Menu.Photo.Take | Take a Photo | Action Menu text for taking a photo. |
| SMI.Feed.Action.Menu.Accessibility | Action Menu | The accessibility string for the Action Menu to the left of the text input |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Delivery.Timestamp.Yesterday | Yesterday • %@ | The message auxiliary view that will display the time information for the day yesterday with the timestamp. |
| SMI.Delivery.Timestamp.Today | Today • %@ | The message auxiliary view that will display the time information for the day today with the timestamp. |
| SMI.Delivery.Status.Sending | Sending | The message auxiliary view that will display the sending message indicator. |
| SMI.Delivery.Status.Sent | Sent | The message auxiliary view that will display the sent message indicator. |
| SMI.Delivery.Status.Read | Read | The message auxiliary view that will display the read message indicator. |
| SMI.Delivery.Status.Delivered | Delivered | The message auxiliary view that will display the delivered message indicator. |
| SMI.Delivery.Status.Error | Send failed. Tap to retry. | The message auxiliary view that will display the error message. |
| SMI.Delivery.Status.Error.Additional.Information.Required | Provide 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.Accessibility | Failed | The concise failed status for accessibility |
| SMI.Delivery.Status.Error.Hint.Accessibility | Double tap to retry | Hint for the user to double tap the message to retry |
| SMI.Local.Message.Identifier.Accessibility | Your Message %@ | The accessibility text for identifying messages sent from the local user |
| SMI.Remote.Message.Identifier.Accessibility | %1$@ message %2$@ | The accessibility text for identifying messages sent from the remote user. %1$s is the name of the agent, %2$s will represent the message. |
| SMI.System.Message.Identifier.Accessibility | System message %@ | The accessibility text for identifying messages sent from the system user |
| SMI.Message.Received.Event.Accessibility | Message received from %@ | The accessibility announcement text that informs the user when a message has been received |
| SMI.Message.Sending.Event.Accessibility | Message sent | The accessibility announcement text that informs the user that their message has been sent |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Network.Status.Reconnecting | Waiting to reconnect | The network connectivity banner text that will inform the user the network connection has been lost and is attempting to reconnect |
| SMI.Network.Status.Reconnecting.Accessibility | Network connectivity is lost, attempting to reconnect | The accessibility announcement that informs the user when the network connection has been lost and is attempting to reconnect |
| SMI.Network.Status.Connected | Connected | The network connectivity banner that will inform the user the network has connected after the network has lost connectivity |
| SMI.Network.Status.Connected.Accessibility | Network connectivity established | The accessibility announcement that informs the user when the network is connected after having lost connectivity |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Business.Hours.Outside | New chats aren’t available outside of business hours | The message that is shown in the chat feed banner when outside of business hours |
| SMI.Business.Hours.Outside.Accessibility | New 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 |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Typing.Indicator.Start.Accessibility | %@ has started typing | The accessibility announcement that informs the user when a participant starts typing |
| SMI.Typing.Indicator.Stop.Accessibility | %@ has stopped typing | The accessibility announcement that informs the user when a participant stops typing |
| SMI.Typing.Indicator.Accessibility | %@ is typing | The accessibility label for the agent typing indicator |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Progress.Indicator.Single.Participant | %@ is typing… | The default label for a single participant progress indicator. |
| SMI.Progress.Indicator.Bot | %@ is responding… | The default label for a bot progress indicator. |
| SMI.Progress.Indicator.Two.Participants | %1$@ and %2$@ are typing… | The default label for two participants typing. |
| SMI.Progress.Indicator.Multiple.Participants | Multiple people are typing… | The default label for multiple participants typing. |
| SMI.Progress.Indicator.Message.Accessibility | %1$@ %2$@ | The accessibility announcement for a bot progress indicator containing the bot display name and the progress message text. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Misc.Separator | • | separator used when conjoining information together in a string |
| SMI.Misc.Unknown | Unknown | This is used when a value or result cannot be determined |
| SMI.Action.Cancel | Cancel | Cancel action to be used for cancel button and menus throughout the SDK. |
| SMI.Action.Settings | Settings | Settings action for permission alerts |
| SMI.File.Size.Megabyte | MB | Size of a file in megabytes |
| SMI.Unknown.Entry.Message | This message type isn’t supported. | The error message that appears when the message type of the message in the chat feed isn’t supported. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Alert.Title.Failed | Message Failed | Alert title text for the retry message alert. |
| SMI.Alert.Title.Permission.Camera | Allow Camera Access | Alert title text for requesting camera access. |
| SMI.Alert.Message.Failed | Message failed to send. Retry? | Confirmation text for the retry message alert. |
| SMI.Alert.Message.Permission.Camera | To use your camera, go to Settings and enable Camera access for this app. | Explanation that the user must allow camera permission |
| SMI.Alert.Action.Retry | Retry | Retry action for the retry message alert. |
| SMI.Alert.Attachment.Limit.Reached | Attachment limit reached | Alert when limit for number of attachments is reached. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Participant.Name.Default | Participant | Default string for a participant with no displayName or subject configured. |
| SMI.Participant.Changed.Joined | %@ has joined | Notice that a participant has joined the conversation |
| SMI.Participant.Changed.Joined.Accessibility | %@ has joined the conversation | The accessibility announcement that informs the user that a participant has joined the conversation |
| SMI.Participant.Changed.Left | %@ has left | Notice that a participant has left the conversation |
| SMI.Participant.Changed.Left.Accessibility | %@ has left the conversation | The accessibility announcement that informs the user that a participant has left the conversation |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Pre.Chat.Required.Accessibility | %@ is required | The accessibility string for the PreChat field if the field is required |
| SMI.Pre.Chat.Required | %@ * | The string for a PreChat field label if the field is required |
| SMI.Pre.Chat.Submit.Button | Chat with an Agent | The title of the PreChat submit button |
| SMI.Pre.Chat.Title | Just a few things before we connect you with an expert… | The title of the PreChat forum |
| SMI.Pre.Chat.Choice.List.None | None | Label for the None option in a pre-chat choice list |
| SMI.Pre.Chat.Back.Button | Back | The back button for the prechat form |
| SMI.Pre.Chat.Error.Field.Required | This field is required. | Error message shown when a required field fails PreChat validation |
| SMI.Pre.Chat.Error.Valid.Email.Format | Use a valid email format. | Error message shown when an email PreChat field fails PreChat validation |
| SMI.Pre.Chat.Error.Valid.Number.Format | Field can only contain numbers. | Error message shown when a number PreChat field fails PreChat validation |
| SMI.Pre.Chat.Error.Valid.Phone.Format | Use a valid phone number format. | Error message shown when a phone PreChat field fails PreChat validation |
| SMI.Pre.Chat.Submission.Review.Title | Submitted Form Details | Header for prechat submitted form details |
| SMI.Pre.Chat.Submission.Card.Title | Form submitted Tap to review | Text for prechat cell that shows in chat after submitting prechat |
| SMI.Back.Button.Accessibility | Back to chat feed | Accessibility text for hitting the back button on pre chat submission screen |
| SMI.Exit.Button.Accessibility | Exit to chat feed | Accessibility text for hitting the exit button on pre chat submission screen |
| SMI.Checkbox.Selected.Accessibility | Checkbox selected | Accessibility text for when the checkbox is selected |
| SMI.Checkbox.Not.Selected.Accessibility | Checkbox not selected | Accessibility text for when the checkbox is not selected |
| SMI.Terms.And.Conditions.Error | Accept the Terms and Conditions to continue. | Error message displayed when the Terms and Conditions are required but not accepted. |
| SMI.Terms.And.Conditions.Accept | Accept | Message displayed next to the checkbox to accept the Terms and Conditions. |
| SMI.Terms.And.Conditions.Accepted.Accessibility | Terms and conditions is accepted | Accessibility label for terms and conditions box when it is accepted. |
| SMI.Terms.And.Conditions.Not.Accepted.Accessibility | Terms and conditions is not accepted | Accessibility label for terms and conditions box when it is accepted. |
| SMI.Pre.Chat.Error.Accessibility | %1$@ input. Error %2$@. | Accessibility readout for prechat errors. The first parameter is the field name, the second field is the error on the field. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Image.Accessibility | Image message. | Accessibility text for an image message in the chat feed or attachment preview. |
| SMI.Remove.Image.Button.Accessibility | Remove image message. | Accessibility text for the button to remove an image message from the input field. |
| SMI.Multiple.Attachment.Counter | +%d | A counter that takes an integer representing the number of file attachments not shown. |
| SMI.Image.Preview.Accessibility | Image preview. | Accessibility text for the image preview dialog. |
| SMI.Image.Preview.Cancel.Button.Accessibility | Close image preview. | Accessibility text for the button to close the image preview dialog. |
| SMI.Camera.Gallery.Button.Accessibility | Photo gallery. | Accessibility text for the button to open the photo gallery. |
| SMI.Camera.Switch.Lens.Button.Accessibility | Switch lens direction. | Accessibility text for the button to switch the camera lens direction. |
| SMI.Camera.Capture.Button.Accessibility | Capture photo. | Accessibility text for the button to capture a photo. |
| SMI.Camera.View.Capturing.Accessibility | Camera capturing photo | Accessibility text for the view that is displaying the phones camera capturing a photo |
| SMI.Image.Viewer.Jump.To.Photo.Accessibility | Jump to photo | Accessibility text for the jump to photo button in image viewer |
| SMI.Image.Viewer.Share.Photo.Accessibility | Share photo | Accessibility text for the share button in image viewer |
| SMI.Image.Viewer.Download.Photo.Accessibility | Download photo | Accessibility text for the download button in image viewer |
| SMI.Header.Share.Image.Viewer | Image | Shown when user taps the share button while viewing an image in the attachment viewer screen |
| SMI.Header.Share.Gif.Viewer | GIF | Shown when user taps the share button while viewing a GIF in the attachment viewer screen |
| SMI.Header.Share.Pdf.Viewer | Shown when user taps the share button while viewing a PDF in the attachment viewer screen | |
| SMI.Image.Saved.Message | Attachment saved | Shown in popup when user taps the download button and the attachment successfully saves |
| SMI.Attachment.Download.Failed.Message | Failed to save attachment | Shown in popup when user clicks on download button and the attachment fails to save |
| SMI.Image.Download.Denied.Title | Allow Photo Access | Title shown in popup when user tries to save a photo with denied permission |
| SMI.Image.Download.Denied.Body | To 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.Unsupported | Unsupported file format. | Message shown if user sends an unsupported file in chat |
| SMI.File.Size.Exceeded | Attachment is too large. Maximum size is %@. | Message shown if the user sends an attachment that exceeds the max size that can be sent |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Transfer.Requested.Event.Text | Transfer requested at %@ | A 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. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Routing.Failure.Event.Text | Agents are not available. Try again later. | A default system message informing the user that routing to a service console agent has failed. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Routing.Initial.Agent | An agent will be with you shortly. | Shown when the routing type is initial. and EWT is available |
| SMI.Routing.Wait.Resolved.Minutes | Your expected wait time is %@ minutes. | Shown when the estimated wait time is greater than 60 seconds. Rounded up to the nearest minute |
| SMI.Routing.Wait.Resolved.Short | Your expected wait time is less than one minute. | Shown when the estimated wait time is less than or equal to 60 seconds |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Loading.Screen.Accessibility | Active loading screen | A 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. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Link.Preview.Accessibility | Link preview | The screen reader will read out link preview and then the name of the link |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Nothing.Entered.In.Search | Nothing here yet | Message displayed when there’s nothing in the search bar and there are no recent searches |
| SMI.No.Search.Results | No search results | Message displayed when there are no search results |
| SMI.No.Matching.Results | We couldn’t find what you’re looking for. Try searching for something else. | Message displayed when nothing matches the users search |
| SMI.Message.Search.Header | Message Search | Header for the message search page |
| SMI.Recent.Searches.Header | Recent Searches | Header for the recent search list |
| SMI.Search.Placeholder.Text | Search | Placeholder text for the search bar |
| SMI.Today.Timestamp.Message.Search | Today | Timestamp text for when the message was sent today |
| SMI.Yesterday.Timestamp.Message.Search | Yesterday | Timestamp text for when the message was sent yesterday |
| SMI.Users.Name | You | The name shown for the user in the time stamp row |
| SMI.No.Recent.Searches | You 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.Button | Back | The back button for message search |
| SMI.Message.Search.Clear.Search.Text.Accessibility | Clear search text | Accessibility text for clearing the search field in message search |
| SMI.Message.Search.Agent.Avatar.Accessibility | Agent avatar | Accessibility text for the agent avatar in message search |
| SMI.Message.Search.User.Avatar.Accessibility | User avatar | Accessibility text for the user avatar in message search |
| SMI.Message.Search.Agent.Bot.Accessibility | Bot avatar | Accessibility text for the bot avatar in message search |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Action.Copy | Copy | Text displayed in the context menu for the copy behavior |
| SMI.Action.Copy.Attachment | Copy Attachment | Text displayed in the context menu for copying an attachment when receiving part of a conversation entry with text and an attachment |
| SMI.Action.Copy.Text | Copy Text | Text displayed in the context menu for copying text when receiving part of a conversation entry with text and an attachment |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Participant.Client.Menu.Title | Conversation Options | Text 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.Accessibility | Conversation Options Menus | The accessibility message for the participant client menu |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Form.Message.Footer.Submit | Submit | Text displayed in the footer menu of the Form Message for the submit button. |
| SMI.Form.Message.Footer.Back | Back | Text displayed in the footer menu of the Form Message for the back button. |
| SMI.Form.Message.Footer.Next | Next | Text displayed in the footer menu of the Form Message for the next button. |
| SMI.Form.Message.Back.Button | Back | The back button for the secure form |
| SMI.Form.Message.Back.Button.Accessibility | Back to chat feed | Accessibility text for hitting the back button on form message submission screen |
| SMI.Form.Message.Exit.Screen.Title | Leave the form? | The main title for the secure form exit confirmation screen. |
| SMI.Form.Message.Exit.Screen.Subtitle | After 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.Confirm | Leave Form | The leave form button for the secure form exit confirmation screen. |
| SMI.Form.Message.Exit.Screen.Cancel | Cancel | The cancel button text for the secure form exit confirmation screen |
| SMI.Form.Message.Result.Success | Form Submitted | The message shown in the chat bubble when a form has been successfully submitted. |
| SMI.Form.Message.Result.Submitting | Form Submitting | The message shown in the chat bubble when a form is submitting. |
| SMI.Form.Message.Result.Error | Error Submitting Form | The message shown in the chat bubble when a form fails to submit. |
| SMI.Form.Message.Required.Accessibility | %@ is required | The accessibility string for the form message field if the field is required |
| SMI.Form.Message.Required | %@ * | The string for a form message field label if the field is required |
| SMI.Form.Message.Text.Invalid.Email | Not a valid email | The string that is displayed below a form entry that indicates an invalid email has been entered. |
| SMI.Form.Message.Text.Invalid.Url | Not a valid url | The string that is displayed below a form entry that indicates an invalid url has been entered. |
| SMI.Form.Message.Text.Input.Required.Message | This field is required | The string that is displayed below a form entry that indicates this item is required. |
| SMI.Form.Message.Option.Required.Message | One or more options required | The 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 | %@ double tap to edit | The accessibility message for the grouped form text input |
| SMI.Form.Message.Text.Input.Required.Accessibility | %@ is required. Double tap to edit | The accessibility message for the group form text required input |
| SMI.Form.Message.Screen.Accessibility | %@ Screen | The accessibility message is shown when a new screen is displayed in the form input |
| SMI.Form.Message.Option.Selected.Accessibility | %@ option selected | The accessibility message for a selected option in the form options menu |
| SMI.Form.Error.Accessibility | %1$@ input. Error %2$@. | Accessibility readout for form errors. The first parameter is the form field label. The second parameter is the error message on the field. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Carousel.Image.Placeholder.Accessibility | Empty Carousel image | A placeholder icon to indicate there is no image for a carousel option. |
| SMI.Carousel.Selected.Icon.Accessibility | Option selected | An icon to indicate that an option has been selected for a carousel message. |
| SMI.Carousel.Image.Accessibility | Carousel image | The default image content description for a carousel option, if no description is given. |
| SMI.Carousel.Indicator.Accessibility | Page %1$d of %2$d | Accessibility label for the carousel indicator |
| SMI.Carousel.Indicator.Dot.Accessibility | Go to page %1$d of %2$d | Accessibility label for individual carousel indicator dots |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Transcript.Request.Button | Request Chat Transcript | The title of the request transcript button in the participant client menu. |
| SMI.Transcript.Title | Chat Transcript | The title of the request transcript screen. |
| SMI.Transcript.Leave.Button | Leave | The 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.Button | Cancel | The 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.Title | Leave Transcript | Title of the leave transcript screen. This screen warns the user that if they leave without saving, the transcript is lost. |
| SMI.Transcript.Leave.Subtitle | Be 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.Accessibility | Save Transcript | The accessibility string for the save transcript button. |
| SMI.Transcript.Share.Button.Accessibility | Share Transcript | The accessibility string for the share transcript button. |
| SMI.Transcript.Error.Message | Something 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.Failed | Save failed | Message to display when the request transcript fails to save on the device. |
| SMI.Transcript.Alert.Save.Succeed | Save was successful | Message to display when a request transcript successfully saves on the device. |
| SMI.Transcript.Alert.Title | Save | The title of the alert that is shown after an attempt to save a request transcript on the device. |
| SMI.Transcript.Alert.Button.Title | Ok | The text for the confirm button in the alert shown after an attempt to save a request transcript on the device. |
| SMI.Transcript.Back.Accessibility | Back to options menu | Accessibility text for the back button in request transcripts. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.End.Chat.Menu.Button | End Chat | The title of the end chat button in the participant client menu. |
| SMI.End.Chat.Title | End Chat? | The title label on the end chat confirmation page. |
| SMI.End.Chat.Subtitle | Are 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.Button | End Chat | The end chat button label on the confirmation page. |
| SMI.End.Chat.Cancel | Cancel | The cancel button label on the confirmation page. |
| SMI.End.Chat.Error.Message | Something 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.Button | Close | The close button label on the fallback message page. |
| Keyword | Default Value | Description |
|---|---|---|
| SMI.Streaming.Text.Cursor | ▏ | The cursor to display while text is streaming in. |
| SMI.Streaming.Message.Accessibility | The bot is responding | Accessibility readout for when a message is being streamed in. |
| 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$@ | A string template for citation source button. Takes an integer representing the citation number and a string representing the url title |