Working with this SDK or planning to in the future? Make sure to subscribe to receive notifications of changes! When we update the Release Notes, you'll get a notification straight to your email of choice!

Version 6.0.1

iOS Messaging SDK

Release Date: September 2, 2020

Environmental Requirements

The iOS Mobile Messaging SDK version 6.0.1 is supported on iOS versions 11 through 13.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Contents

  • iOS SDK 6.0.1 contains same changes as 6.0.0
  • This version also compiles on the XCode 12 beta

Known Issues

  • The config bubbleEmailLinksRegex not working properly.
  • Crashes on fetched result controller (including but not limited to, Welcome Message & Welcome Message with Quick Replies)
  • Conversation view is not displayed properly while the phone is on low network conditions.
  • Media messages may not be sent successfully after network connection loss.
  • In VoiceOver mode, the content beneath the PDF viewer got announced, and this issue was found in 5.2.0.
  • Configs with the types of UIStatusBarStyle(conversationStatusBarStyle, secureFormUIStatusBarStyle and csatUIStatusBarStyle) are not working on iOS 13 due to dark mode.

Version 6.0.0

iOS Messaging SDK

Release Date: August 25, 2020

Environmental Requirements

The iOS Mobile Messaging SDK version 6.0.0 is supported on iOS versions 11 through 13. It is available on Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53). XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Bugs fixed

  • Fixed the issue with the iOS Mobile Messaging SDK where the updated message read status and message received status was not being provided to LiveEngage UI.
  • Fixed the issue pertaining to the Agent Typing indicator not showing up for consumers.
  • Fixed the issues to eliminate specific crash events.
  • Fixed the issue with reconnecting using expired JWT’s from the SDK cache was resolved.
  • Fixed the issue related to fetching historical data resulting in incorrect message states being delivered to consumers was resolved.
  • Fixed the issue whereby consumers may observe 2 welcome messages when skipping the CSAT.
  • Fixed the issue due to a discrepancy between system message background colors between window mode and container view mode within the conversation view.
  • Fixed the issue where the “failed to connect” banner appears briefly even if connected when returning from background.
  • Fixed the issue where the “conversation was resolved” message may not appear under certain SDK branding configurations.
  • Fixed the edge cases issues for displaying Welcome Messages.

New Features

  • We have unified the four messaging frameworks (LPInfra, LPMonitoring, LPMessagingSDK, and LPAMS) into 1 framework (LPMessagingSDK). This was done to alleviate confusion for our customers by providing a unified API for brands to query our APIs. Additionally the SDK size has decreased due to removal of duplicate and unnecessary code. We realize that our brands were unanimously using all four frameworks so we decided to lean into this flow by unifying the frameworks. Our public APIs can now be found under the ‘LPMessaging’ class. For more information about integration of the new framework, please follow the guide(link for the quick start).
  • When the ‘getEngagement’ request returns with an error message, we will now flush the domain cache providing the ability for subsequent requests to obtain updated domains. This functionality currently exists when connecting via the websocket, and now exists for this rest request as well.
  • When the messaging window is moved to the background, the socket now remains open for only 5 seconds rather than 60 seconds. This allows the iOS Mobile Messaging SDK to have parity with the Android SDK and will allow brands to experience a more unified experience across platforms.
  • The iOS Mobile Messaging SDK now uses os_log as its base logging object which allows brands to use the standard flow within Xcode to observe logs with the device console as well as sort logs by categories. We will be providing more categories as we continue to make improvements to the SDK allowing our customers to focus on specific behaviors and flows within the SDK.
  • In an effort to better support our customers by providing a more stable development experience we now support XCFrameworks. Please see our guide to how to implement the XCFrameworks and note any changes you may need to make to your project’s CI/CD or build settings to take advantage of this new format.
  • We now provide a soft “auto logout” feature whereby when a new user identifier is detected we will automatically logout the previous user information but not the brand information, and then allow the new user to attempt to login, as part of this work, we made some improvements to the SDK Authentication flow to provide a better experience when handling, invalidating and requesting JWTs.
  • We have made improvements to our current logging behavior.

Users using the enhanced Agent Workspace have the ability to share hyperlinks with consumers during a messaging conversation. Now, they can share it with consumers that are messaging over the Mobile SDK. Hyperlink example

KB article: Hyperlinks overview

How to enable: To enable this feature, please contact your LivePerson representative

Limitations:

  • “Link Preview” will be disabled if Hyperlink in messaging is enabled.
  • Hyperlink in messaging from consumer to agent is not supported.

New Attributes:

  • New configurations for hyperlink
  • markdownHyperlinkFromAgent
    • Enable or disable hyperlink support. Agent won’t be able to send hyperlink messages if set to false.
    • Type: bool
    • Default value: true
  • remoteUserBubbleHyperlinkColor
    • Set the link message text color.
    • Type: color
    • Default value: For iOS 13, we use UIColor.label, anything below that uses UIColor.black

Hyperlink color configuration

We have added new configurations to our Structured Content:

  • structuredContentButtonBorderColor
    • Sets border color for button type element on Structured Content
    • Type: color
    • Default value: lightBlue

Accessibility compliance highlights the need for links and buttons to have a distinctive UI characteristic, changing this value might break compliance.

  • structuredContentButtonTextColor
    • Sets text color for button type element on Structured Content
    • Type: color
    • Default value: For iOS 13, we use UIColor.label, anything below that uses UIColor.black
  • structuredContentTextColor
    • Sets text color for text type element on Structured Content
    • Type: color
    • Default value: For iOS 13, we use UIColor.label, anything below that uses UIColor.black

Known Issues

  • The config bubbleEmailLinksRegex not working properly.
  • Crashes on fetched result controller (including but not limited to, Welcome Message & Welcome Message with Quick Replies)
  • Conversation view is not displayed properly while the phone is on low network conditions.
  • Media messages may not be sent successfully after network connection loss.
  • In VoiceOver mode, the content beneath the PDF viewer got announced, and this issue was found in 5.2.0.
  • Configs with the types of UIStatusBarStyle(conversationStatusBarStyle, secureFormUIStatusBarStyle and csatUIStatusBarStyle) are not working on iOS 13 due to dark mode.

Version 5.2.0

iOS Messaging SDK

Release Date: May 27, 2020

Environmental Requirements

The iOS Mobile Messaging SDK version 5.2.0 is supported on iOS versions 11 through 13. It is available on Swift version 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15), and Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)

Bugs fixed

  • Fixed issue where white space between keyboard and message area with SDK embedded in tab bar view controller.
  • Fixed issue where a text typed by the user is shown on the input line place holder ("Write a message").
  • Fixed issue where typing indicator misaligned in Consumer text field.
  • Fixed issue where CSAT displays no Agent icon where agent icon present for agent.
  • Fixed issue where "didFinishWithExpiredToken" not trigger when using Code Flow.
  • Fixed issue where showConversation always create a new socket even when get out and get in within the app.
  • Fixed issue where the color code of System messages gets reset to default when going back into a conversation.
  • Fixed issue where not using device language until you log out of the SDK and back in.
  • Fixed issue where incorrect badge count being saved.
  • Fixed issue where creation date is not set when upload files.
  • Fixed multiple issues where multiple localization keys are missing.
  • Fixed issue where send button label doesn't auto fit with width.
  • Fixed issue where photo sharing screen is blocking host app from popping conversation view controller in the navigation view controller stack.
  • Fixed issue where 'scrollToBottomButtonBadgeCornerRadius' is not being reflect on the SDK.
  • Fixed issue where inaccurate unread message count between registering and receiving a push notification.
  • Fixed issue where case sensitive URLs not working.
  • Fixed multiple issues around structured content accessibility with better accessibility labels defined and better scrolling behavior within carousel elements.
  • Fixed multiple issues around quick reply accessibility with better scrolling behavior when quick reply buttons are off the screen.
  • Fixed issue where VoiceOver of secure form's header copy is not announced.
  • Fixed issue where VoiceOver reads "fill in form" when UI element is not visible when there are two secure forms on the conversation screen.
  • Fixed issue around audio sharing. The VoiceOver implementation surrounding the audio sharing feature has been refined to better articulate what the controls will do and keep the user from becoming confused as to their state while recording.
  • Fixed issue where attachment button in file sharing is announced as "image" in VoiceOver.
  • Fixed issue where in-line text announced as "Button" in VoiceOver but it is not a button in structured content.
  • Fixed issue where hyperlink messages from agent is announced as plain text in VoiceOver.
  • Fixed issue where multiple new messages are received and VoiceOver only reading the last message received.
  • Fixed issue where messages VoiceOver is interrupted by new system messages.

New Features

  • New Logging subsystem - New Logging subsystem, which introduces:
    • Granular log level controls can now be set as verbose, purely-informational, or completely-off as you desire.
    • Data Masking feature ensures no sensitive consumer data can be leaked through system logs, even if they're set to Verbose. Head over here to find out more!
  • Playback for Voice messages - Audio messages can now be stopped and previewed before sending them.
  • Scroll to bottom button - The width of the "scroll to bottom" button will be auto adjusted based on length of a message text. The button width can be auto adjusted up to half of the device's screen size. This is applicable for both portrait as well as landscape mode.
  • Push registration - Improved Unread Message Count
    • Get the count of unread messages that are not yet received by the consumer's device. This API returns the count through the provided callback which is a sum of unread messages in the open as well as closed conversation messages.
    • When there are unread messages waiting for the consumer within the brand app, this information can be pushed to display in the app’s notification badge. Within the app, brands can develop their own visualization of a badge, such as a number, icon or other marker to show unread messages.
    • This API method uses a threshold mechanism of 10 seconds. If this API is called within 10 seconds from the last request was made, the counter will be returned from SDK cache otherwise a new request to the server will be made to fetch the latest count.
    • Two new APIs (getUnreadMessagesCount and isRegisteredForPushNotifications) introduced.
    • Two getUnreadMessagesCount APIs deprecated. For more information, please check Messaging APIs in the Deprecated methods.
    • New LPConversationsHistoryStateToDisplay - Add a new enum value (all) for LPConversationsHistoryStateToDisplay. Heasd over here to find out more!

      Known Issues

  • Lag of scroll upon first load: When configured the scrolling configuration as "ScrollToBottom", there is a lag between showing the conversation screen and scrolling to the bottom.

Version 5.1.1

iOS Messaging SDK

Release Date: January 22, 2020

Environmental Requirements

The iOS Mobile Messaging SDK version 5.1.1 is supported on iOS versions 11 through 13. It is avaliable on Swift version 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15), and Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9).

Bugs fixed

  • Fixed issue were CSAT was appearing for auto closed conversations
  • Fixed issue where Separator line was being shown while configurations.enableConversationSeparatorLine was disabled

New Features

  • If the user has denied access before for Audio, Photos, or Camera, the SDK now shows an alert upon usage informing the user that access can be enabled in the settings app.

The message, title, and options buttons for this alert can be customized by updating the values of the LPLocalizable.strings for the keys matching below.

permissionPopUpDeniedOptionNotNow permissionPopUpDeniedOptionGoToSettings permissionPopUpDeniedTitle

permissionPopUpDeniedMicrophoneDescription permissionPopUpDeniedCameraDescription permissionPopUpDeniedPhotoLibraryDescription

permissionPopUpRestrictedTitle permissionPopUpRestrictedDescription

For more information on how to override localize keys, see the String Localization page.


Version 5.1.0

iOS Messaging SDK

Release Date: January 2, 2020

Environmental Requirements

The iOS Mobile Messaging SDK version 5.1.0 is supported on iOS versions 11 through 13. It is avaliable on Swift version 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15), and Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9).

Bugs fixed

  • Issue with background color for Agent Avatar image
  • Allow ability to wrap text with in a clickable option for Structured content

Accesibility fixed

  • "Fill in form" button does not inform user when it is still loading
  • Quick reply text is announced automatically but buttons are not
  • VoiceOver begins announcing survey questions as they are published to the chat before they finish loading, causing them to be partially announced, interrupted, then announced again
  • If agent sends a hyperlink, the post is announced as plain text, user has no way to know it can be activated
  • Elements with functionality of hyperlinks are being announced as buttons
  • Attachments are always announced as "image"
  • Separator bar after completing PCS survey can receive focus

New Features

Scroll Behavior Configuration - clients can customize the scroll behavior for the following scenarios:

  • showConversation the SDK window is shown via the call showConversation
  • backgroundToForeground the SDK Conversation is brought from background to foreground state
  • scrollToBottomButtonPressed the SDK scroll to bottom button is pressed
  • pushNotificationTapped a native push notification was tapped and the SDK API setPushNotificationTapped was called.

For more information, see the Scroll Behavior Configuration page.

unreadMessagesDivider no longer impacts scroll behavior or prevents scrollToBottomButton from being display.

Version 5.0.0

iOS Messaging SDK

Release Date: October 28, 2019

Environmental Requirements**

The iOS Mobile Messaging SDK version 5.0.0 is supported on iOS versions 11 through 13. It is avaliable on Swift version 5.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9), Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7), and Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5). The iOS Mobile Messaging SDK no longer supports iOS 10.

Bugs fixed

  • Fixed issue where Real-time Masking Auto Message is only triggered once.
  • Fixed several issues where a crash could occur in the suspended state.

New Features

  • Dark Mode Support - The iOS Mobile Messaging SDK Supports Dark Mode for iOS 13.
    For More information see: Attributes Page
  • Support for Sheets - The iOS Mobile Messaging SDK supports Sheets and allows for configuration supporting many of the modal presentation views within the SDK.
  • We have changed how we version the iOS SDK. We now follow Apple's standard of using the 'Bundle versions string, short' property for the SDK version.
  • We have updated our default assets within the SDK to support vector representation.
Dark Mode in iOS 13

We are proud to support dark mode for iOS 13. We have modified how we use UIColors in the SDK. Alll default colors used are now subclasses of UIColor. This will lend many benefits for our consumers using these default colors (except for Structured Content messages as explained above). Additionally, developers who wish to customize the appearance of the iOS Mobile Messaging SDK only need to pass in UIColors supporting UITraitCollection userinterfacestyles .light or .unspecificied and .dark to have the LPConfig attributes support dark mode. This is explained in more detail in the Attributes Page.

With the update of the modal sheet presentation style in iOS 13 we found it exciting that consumers will have more context about their activity in the iOS Mobile Messaging SDK when filling out a CSAT, selecting media to share, or filling out secure content. However, we anticipate that not all users want to use the default configuration so we have provided a new API located in the LPConfig object modalPresentationStyle. Our default configuration is .fullscreen, however this can be set to most of the UIPresentationStyles (we do not support .none or .popover. If an unsupported value is passed in for this parameter, we will default to .fullscreen. Additionally, because of how the presenting view is kept alive, some behaviors have changed for non .fullscreen presentation styles. We have set the camera view mode to .fullscreen following Apple's User Interface guidelines and we do not allow for configuration of this view.

When CSAT's are dismissed and the consumer is not currently at the bottom of the conversation view, the consumer will no longer be scrolled to the bottom. Now, consumers will remain where they have navigated to in the history when the CSAT is dismissed.

Finally, when in a modal view and the unread message banner appears in the conversation view, it will not be removed when the modal view activates until the consumer interacts with the conversation by sending a message or reloading the view.

Known Issues

  • iOS 13 and Structured Content messages: Currently, structured content message colors are sent from the Conversational Cloud Agent Workspace as hexadecimal colors and we cannot be certain of the appearance setting the consumer will have enabled as the structured content message arrives. Currently the iOS Mobile Messaging SDK does not support converting these colors to an alternate appearance for Dark Mode. Therefore we ask our customers to ensure that colors selected for the structured content JSON are visually legible for both appearance modes for backgrounds and text within the iOS Mobile Messaging SDK.

  • iOS 13 and Secure Form Navigation Bar: Currently, due to an updated modal navigation appearance for iOS 13, the custom background color and text color for the secureFormNavigationBackgroundColor and secureFormNavigationTitleColor attributes may not be applied for iOS 13 if the modalPresentationStyle is not set to .fullscreen.

Deprecation and Obsoleted API's

Previously, our deprecated APIs were set to show deprecation version based on the SDK version. We have changed this to reflect deprecation based on the iOS version that was current at the time of deprecation. This value is approximate for deprecated APIs that have been deprecated for more than a year. Going forward, we will deprecate based on the current iOS version which should work well with Xcode to notify developers of newly deprecated APIs as we work to improve our code and your developer experience. Additionally we are now utilizing 'Obsoleted'. All currently deprecated APIs will be Obsoleted after iOS version 13.3.

LPConfig Obsoleted Properties
  • enableFileSharing , use fileSharingFromAgent instead
  • enablePhotoSharing , use fileSharingFromConsumer instead
  • secureFormUIStatusBarStyleLightContent, use secureFormUIStatusBarStyle instead
  • csatUIStatusBarStyleLightContent, use csatUIStatusBarStyle instead
  • ttrBannerOpacityAlpha, use supported light/dark colors on 'ttrBannerBackgroundColor' and 'ttrBannerTextColor' instead
  • enableStrucutredContent, use enableStructuredContent instead
  • customButtonIconName, use customButtonImage instead
  • customButtonDescription, use customButtonAccessibilityDescription key in Localization language files instead
  • showUrgentButtonInTTRNotification, reason Urgent button was excluded from TTR view. Marking conversation as urgent is available now only from the conversation menu.
  • readReceiptTextDistributed, use readReceiptTextDistributed key in Localization language files instead
  • readReceiptTextRead, use readReceiptTextRead key in Localization language files instead

Version 4.1.0

iOS Messaging SDK

Release date: September 16, 2019

Environmental Requirements

The iOS Mobile Messaging SDK version 4.1.0 is compatible with Xcode 10.3, Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5), and supported on iOS versions 10 through 12.

The iOS Mobile Messaging SDK version 4.1.0 is supported on iOS versions 10 through 12. It is avaliable on Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5) and Swift version 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3).

Bug fixed

  • Fixed issue with missing unread message banner when agent send only one message
  • Fixed issue with no option to disable push registration when calling showConversation.
  • Fixed issue with missing survey bot question in the surveyData object in messaging interactions API.
  • Fixed issue with accessibility large font breaks timestamp constraints
  • Fixed issue with missing animation for typing after scroll to the bottom while agent is typing.
  • Fixed issue with customized image for send button "sendButtonDisabledColor" is not working.
  • Fixed issue with LinkPreviewBorderWidth changes is not reflected on SDK.
  • Fixed issue with voice over failing to read message author or time. Additionally voice over failing to read message time for structure content.
  • Fixed issue with crash on conversation screen.
  • Updated public headers from the umbrella header format to have both simulator and device headers in a single file.

New Feature

# File sharing from consumer to agent

Mobile Messaging SDK v4.1 improves upon the current consumer photo sharing feature.

Consumers can now share information via files with agents such as documents, transaction details and others. This can provide agents with the info they need in order to better help the consumer. Consumers can also download files from resolved conversations.

The iOS SDK supports previewing all the supported file types on the device as per the iOS operating system by tapping on the thumbnail image.

Support for Bitcode is Enabled

The Liveperson SDK no longer requires Bitcode to be 'Disabled'.

Supported document formats from consumer to agent:

  • PDF
  • DOCX
  • PPTX
  • XLSX

Photo and file sizes

  • Thumbnail - 30 KB (base64-encoded)
  • Max upload size allowed - 5 MB uncompressed

Any file larger than 5 MB selected from document picker will trigger an alert view: File limit alert view

Notes and limitations

  • Both photo sharing and file sharing are two way in SDK version 4.1 (agent-to-consumer and consumer-to-agent)

  • If an attempt to view a photo or file is unsuccessful, an error icon covers the thumbnail. Upon retry, the file attempts to download again. Retry can be attempted as many times as possible (in case of a poor network) until the file is downloaded successfully.

  • The consumer can return to a resolved conversation to view the photos, as long as the photos are part of the conversation history.

  • For authenticated users, backgrounding the app while uploading the photo does not get interrupted.

  • For unauthenticated sessions, consumers must tap the photo again with each visit because the history gets cleared when a session expires or logs the consumer out.

  • For app running on iOS version 10.3 or lower with iCloud capability, file sharing from iOS SDK will use iCloud folder as file provider.

  • For app running on iOS version 10.3 or lower without iCloud capability, file sharing from iOS SDK will be disabled (The entry point of file sharing will be hidden.)

  • For app running on iOS version 11 or higher, file sharing from iOS SDK will use native Files app as file provider.

How photo and file sharing works

For more details about how photo and file sharing feature, see Photo and File Sharing

Entry point:

  1. paperclip button for presenting the file sharing menu : How photo and file sharing works

  2. Document button in the file sharing menu for presenting the native document picker: How photo and file sharing works

New configuration introduced:

/// Custom file image in the file Sharing Menu.
public var fileSharingMenuFileImage: UIImage?
/// Custom file image in the file Sharing Menu.
public var fileSharingMenuFileImage: UIImage?
/// Image for custom the thumbnail of unsupported files in file sharing
public var fileSharingUniversalFileThumbnailimage: UIImage? = nil
/// Image for custom the thumbnail of PDF files in file sharing
public var fileSharingPDFFileThumbnailimage: UIImage? = nil
/// Image for custom the thumbnail of PPTX files in file sharing
public var fileSharingPPTXFileThumbnailimage: UIImage? = nil
/// Image for custom the thumbnail of DOCX files in file sharing
public var fileSharingDOCXFileThumbnailimage: UIImage? = nil
/// Image for custom the thumbnail of XLSX files in file sharing
public var fileSharingXLSXFileThumbnailimage: UIImage? = nil

For more details about new configuration see Attributes

Known issue:

  1. When the files number exceed the maxNumberOfSavedDocumentsOnDisk. The SDK will deletes random files to keep the document number within maxNumberOfSavedDocumentsOnDisk (Expected behavior is to delete the oldest ones.)
  2. Attachment button accessbilityLabel is not updated accordingly.

Version 4.0.0

iOS Messaging SDK

Release date: July 24, 2019

Environmental requirements

The iOS Mobile Messaging SDK version 4.0.0 is supported on iOS versions 10 through 12. It is avaliable on Swift version 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3).

Bug fix

  • Fixed issue with login when using certificate pinning while renewing certificates.
  • SDK not recognizing an engagement, causing an issue when registering for campaign for messaging (C4M) where the SDK did not recognize the engagement language.
  • LPConversationsHistoryStateToDisplay in close state updating message as read for an open conversation.
  • Hidden element is read on accessibility mode.
  • Voiceover no longer announces hidden button of submitted secure form.
  • Accessibility on element corrected when downloading a file.
  • Styled Quick Reply now showing on conversation screen.
  • Spacing on top of conversation view after rotating device.
  • Incorrect pluralization for unread message banner in English.
  • Fixed crash in web socket handler.
  • Fixed crash when receiving a file without a thumbnail preview.
  • Corrected execute permissions

Updates

  • Migrated table view cells from storyboard to xibs.

Version 3.9.5

iOS Messaging SDK

Release date: July 15, 2019

Environmental requirements

The iOS Mobile Messaging SDK version 3.9.5 is compatible with Xcode 10.2.1, Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5), and supported on iOS versions 10 through 12.

Bug fix

On non-window mode, history is not loaded and pull to refresh is not visible for few iOS 12 devices.


Version 3.9.4

iOS Messaging SDK

Release date: July 15, 2019

Environmental Requirements

Supports Xcode 10.2 and Swift version 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3), or Objective-C, and supported on iOS versions 10 through 12.

Bug fix

On non-window mode, history is not loaded and pull to refresh is not visible for few iOS 12 devices.


Version 3.9.3

iOS Messaging SDK

Environmental requirements

The iOS Mobile Messaging SDK version 3.9.3 is compatible with Xcode 10.2.1, Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5), and supported on iOS versions 10 through 12.

Bug fix

The First Time Ever Welcome Message displayed randomly throughout a conversation. Exposed the Welcome message API to Objective-C


Version 3.9.2

iOS Messaging SDK

Release date: July 3, 2019

Environmental Requirements

Supports Xcode 10.2 and Swift version 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3), or Objective-C, and supported on iOS versions 10 through 12.

Bug fix

The First Time Ever Welcome Message displayed randomly throughout a conversation. Exposed the Welcome message API to Objective-C


Version 3.9.1

iOS Messaging SDK

Release date: June 18, 2019

Environmental Requirements

The iOS Mobile Messaging SDK version 3.9.1 is compatible with Xcode 10.2.1, Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5), and supported on iOS versions 10 through 12.

Bug fixed

Reported in SDK 3.7.1 on iOS. When the customer sent messages just before their current token expires, the agent did not receive one or more of the messages, resulting in data loss. After the initial token expires, the system should issue another token to reconnect and send all messages regardless if the token expires or not.

New Feature

Photo and File sharing

Mobile Messaging SDK v3.9 introduces a feature for agents within Conversational Cloud to share photos or files with the consumers.

Agents can share:

  • Photos: Reference photos or photos of any product to visually guide consumers with product awareness, steps on how to use the product, or review comments of a product. They can also share photos in a resolved conversation to resume the conversation with the consumer. Consumers can tap on the photo to view it full screen or share it through the default app on their device.

  • Files: Agents can also share files to provide consumers with information such as mortgage documents, product catalog, or transaction details as requested by consumers. The agent can also share files in a resolved conversation to resume the conversation with the consumer. Consumers can download files through the picker application to a location on their device (internal or external).

The iOS SDK supports previewing all the supported file types on the device as per the iOS operating system by double-clicking on the thumbnail image.

When the agent shares any supported file type from the LE, if the consumer isn't within the conversation view, they get a notification from the customer app only if the push notification is enabled. Otherwise, when the consumer returns to the conversation screen, a thumbnail for the photo or file appears in the conversation window.

Supported formats

  • PNG
  • JPG/JPEG
  • GIF (non-animated) - previewed as a static image only
  • PDF
  • DOCX
  • PPTX
  • XLSX

Photo and file sizes

  • Thumbnail - 30 KB (base64-encoded)
  • Max upload size allowed - 5 MB uncompressed

    For SDKs previous to 3.8. The max upload size allowed is 3 MB.

Notes and limitations

  • Photo sharing is two way (agent-to-consumer and consumer-to-agent), but file sharing is one way only (agent-to-consumer) for now.

    For SDKs previous to 3.8: Photo sharing is one-way only (from consumer-to-agent, but not vice versa) and available for the Mobile Message SDK only.

  • If an attempt to view a photo or file is unsuccessful, an error icon covers the thumbnail. Upon retry, the file attempts to download again. Retry can be attempted as many times as possible (in case of a poor network) until the file is downloaded successfully.

  • The consumer can return to a resolved conversation to view the photos, as long as the photos are part of the conversation history.

  • If an agent sends an unsupported file, a message displays indicating the file type shared with the consumer is not supported, and the agent should retry sending a supported file format. On the consumer side, they see an empty message with no content.

  • For authenticated users, backgrounding the app while loading the photo does not get interrupted.

  • For unauthenticated sessions, consumers must tap the photo again with each visit because the history gets cleared when a session expires or logs the consumer out.

How photo and file sharing works

How photo and file sharing works

Step 1. Set app permissions

  1. Set the photo library privacy settings:

    • Key: NSPhotoLibraryUsageDescription

    • Value: "A message that tells the user why the app is requesting access to the user's photo library."

    • Key: NSPhotoLibraryAddUsageDescription

      Supported on iOS 11 and newer. Use if not sharing photos from consumer to agent.

    • Value: A message that tells the user why the app is requesting write only access to the user's photo library.

      Important: The user must explicitly grant permission for your app to access Photos. Prepare your app for this requirement by providing justification strings. The justification string is a localizable message that you add to your app's Info.plist file to tell the user why your app needs access to the user's photo library. For more details, see Requesting Authorization to Access Photos.

  2. Set the camera privacy settings:

    • Key: NSCameraUsageDescription

    • Value: "Camera Privacy Setting for Conversational Cloud Mobile App Messaging SDK for iOS"

  3. Set the file sharing privacy settings:

    iOS supports the preview of file types per iOS operating system and requires some configurations to be enabled within the Host App's plist file. Enabling supports file sharing, and the export and saving of photos.

    • Key: UIFileSharingEnabled: Application supports iTunes file sharing

    • Value: YES

    • Key: LSSupportsOpeningDocumentsInPlace: Supports opening documents in place

    • Value: YES

      Warning: If this functionality is important to your user flow, enable at the user's risk. If you enable this setting, the consumer can save documents or photos to a directory belonging to the host app. However, we recommend not enabling this feature due to a current limitation within the LivePerson SDK, the SQL files are also made public if this setting is enabled.

Step 2. Enable or disable photo and file sharing within the SDK

  1. Change the boolean value:

    LPConfig.defaultConfiguration.enablePhotoSharing
    

    By default, the value is set to false.

    LPConfig.defaultConfiguration.enableFileSharing
    

    By default, the value is set to true.

  2. Contact your Account Team to have the feature enabled on your account.

Step 3. Change the settings

  1. Set the max number of photos or files to save on disk (each is configured separately):

    // photos
    LPConfig.defaultConfiguration.maxNumberOfSavedFilesOnDisk    
    
    // document files
    LPConfig.defaultConfiguration.maxNumberOfSavedDocumentsOnDisk
    

    The default is 20. If exceeding the max value of photos or files, the SDK deletes the oldest downloaded file.

  2. Change the background color of attachment menu:

    LPConfig.defaultConfiguration.photosharingMenuBackgroundColor
    
  3. Change the text of buttons:

    LPConfig.defaultConfiguration.photosharingMenuButtonsTextColor
    
  4. Change the menu button's background color:

    LPConfig.defaultConfiguration.photosharingMenuButtonsBackgroundColor
    
  5. Change the menu button's tint color:

    LPConfig.defaultConfiguration.photosharingMenuButtonsTintColor
    
  6. Customize the navigation bar on UIDocumentationInteractionController:

    Window Mode:

    The UIDocumentationInteractionController adopts applicable branding customizations that have been set, for example:

    • conversationNavigationBackgroundColor sets the NavController tint color with translucence set to false.

    • conversationNavigationTintColor colors the L & R bar buttons as well as the title color.

    Window Mode

    View Controller Mode:

    Your custom applicable navigation bar traits apply to the UIDocumentationInteractionController.

    View Controller Mode

You can find all the related configurations in the resources ID table, under Photo Sharing. The color, font selections and other customizations of the message bubbles for file and photo sharing from agents adhere to the remoteUserBubble configurations. For the messages containing photos being shared from consumer to agent can be configured via the userBubble customizations.


Version 3.9.0

iOS Messaging SDK

Release date: June 18, 2019

Environmental Requirements

The iOS Mobile Messaging SDK version 3.9 is compatible with Xcode 10.2 Swift version 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3), or Objective-C, and supported on iOS versions 10 through 12.

Bug fixed

Reported in SDK 3.7.1 on iOS. When the customer sent messages just before their current token expires, the agent did not receive one or more of the messages, resulting in data loss. After the initial token expires, the system should issue another token to reconnect and send all messages regardless if the token expires or not.

New Feature

Photo and File sharing

Mobile Messaging SDK v3.9 introduces a feature for agents within Conversational Cloud to share photos or files with the consumers.

Agents can share:

  • Photos: Reference photos or photos of any product to visually guide consumers with product awareness, steps on how to use the product, or review comments of a product. They can also share photos in a resolved conversation to resume the conversation with the consumer. Consumers can tap on the photo to view it full screen or share it through the default app on their device.

  • Files: Agents can also share files to provide consumers with information such as mortgage documents, product catalog, or transaction details as requested by consumers. The agent can also share files in a resolved conversation to resume the conversation with the consumer. Consumers can download files through the picker application to a location on their device (internal or external).

The iOS SDK supports previewing all the supported file types on the device as per the iOS operating system by double-clicking on the thumbnail image.

When the agent shares any supported file type from the LE, if the consumer isn't within the conversation view, they get a notification from the customer app only if the push notification is enabled. Otherwise, when the consumer returns to the conversation screen, a thumbnail for the photo or file appears in the conversation window.

Supported formats

  • PNG
  • JPG/JPEG
  • GIF (non-animated) - previewed as a static image only
  • PDF
  • DOCX
  • PPTX
  • XLSX

Photo and file sizes

  • Thumbnail - 30 KB (base64-encoded)
  • Max upload size allowed - 5 MB uncompressed

    For SDKs previous to 3.8. The max upload size allowed is 3 MB.

Notes and limitations

  • Photo sharing is two way (agent-to-consumer and consumer-to-agent), but file sharing is one way only (agent-to-consumer) for now.

    For SDKs previous to 3.8: Photo sharing is one-way only (from consumer-to-agent, but not vice versa) and available for the Mobile Message SDK only.

  • If an attempt to view a photo or file is unsuccessful, an error icon covers the thumbnail. Upon retry, the file attempts to download again. Retry can be attempted as many times as possible (in case of a poor network) until the file is downloaded successfully.

  • The consumer can return to a resolved conversation to view the photos, as long as the photos are part of the conversation history.

  • If an agent sends an unsupported file, a message displays indicating the file type shared with the consumer is not supported, and the agent should retry sending a supported file format. On the consumer side, they see an empty message with no content.

  • For authenticated users, backgrounding the app while loading the photo does not get interrupted.

  • For unauthenticated sessions, consumers must tap the photo again with each visit because the history gets cleared when a session expires or logs the consumer out.

How photo and file sharing works

How photo and file sharing works

Step 1. Set app permissions

  1. Set the photo library privacy settings:

    • Key: NSPhotoLibraryUsageDescription

    • Value: "A message that tells the user why the app is requesting access to the user's photo library."

    • Key: NSPhotoLibraryAddUsageDescription

      Supported on iOS 11 and newer. Use if not sharing photos from consumer to agent.

    • Value: A message that tells the user why the app is requesting write only access to the user's photo library.

      Important: The user must explicitly grant permission for your app to access Photos. Prepare your app for this requirement by providing justification strings. The justification string is a localizable message that you add to your app's Info.plist file to tell the user why your app needs access to the user's photo library. For more details, see Requesting Authorization to Access Photos.

  2. Set the camera privacy settings:

    • Key: NSCameraUsageDescription

    • Value: "Camera Privacy Setting for Conversational Cloud Mobile App Messaging SDK for iOS"

  3. Set the file sharing privacy settings:

    iOS supports the preview of file types per iOS operating system and requires some configurations to be enabled within the Host App's plist file. Enabling supports file sharing, and the export and saving of photos.

    • Key: UIFileSharingEnabled: Application supports iTunes file sharing

    • Value: YES

    • Key: LSSupportsOpeningDocumentsInPlace: Supports opening documents in place

    • Value: YES

      Warning: If this functionality is important to your user flow, enable at the user's risk. If you enable this setting, the consumer can save documents or photos to a directory belonging to the host app. However, we recommend not enabling this feature due to a current limitation within the LivePerson SDK, the SQL files are also made public if this setting is enabled.

Step 2. Enable or disable photo and file sharing within the SDK

  1. Change the boolean value:

    LPConfig.defaultConfiguration.enablePhotoSharing
    

    By default, the value is set to false.

    LPConfig.defaultConfiguration.enableFileSharing
    

    By default, the value is set to true.

  2. Contact your Account Team to have the feature enabled on your account.

Step 3. Change the settings

  1. Set the max number of photos or files to save on disk (each is configured separately):

    // photos
    LPConfig.defaultConfiguration.maxNumberOfSavedFilesOnDisk    
    
    // document files
    LPConfig.defaultConfiguration.maxNumberOfSavedDocumentsOnDisk
    

    The default is 20. If exceeding the max value of photos or files, the SDK deletes the oldest downloaded file.

  2. Change the background color of attachment menu:

    LPConfig.defaultConfiguration.photosharingMenuBackgroundColor
    
  3. Change the text of buttons:

    LPConfig.defaultConfiguration.photosharingMenuButtonsTextColor
    
  4. Change the menu button's background color:

    LPConfig.defaultConfiguration.photosharingMenuButtonsBackgroundColor
    
  5. Change the menu button's tint color:

    LPConfig.defaultConfiguration.photosharingMenuButtonsTintColor
    
  6. Customize the navigation bar on UIDocumentationInteractionController:

    Window Mode:

    The UIDocumentationInteractionController adopts applicable branding customizations that have been set, for example:

    • conversationNavigationBackgroundColor sets the NavController tint color with translucence set to false.

    • conversationNavigationTintColor colors the L & R bar buttons as well as the title color.

    Window Mode

    View Controller Mode:

    Your custom applicable navigation bar traits apply to the UIDocumentationInteractionController.

    View Controller Mode

You can find all the related configurations in the resources ID table, under Photo Sharing. The color, font selections and other customizations of the message bubbles for file and photo sharing from agents adhere to the remoteUserBubble configurations. For the messages containing photos being shared from consumer to agent can be configured via the userBubble customizations.


Version 3.8.2

iOS Messaging SDK

Environmental Requirements

The iOS Mobile Messaging SDK version 3.8.2 is compatible with Xcode 10.2.1, Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5), and supported on iOS versions 10 through 12.

New Feature

Welcome message with quick reply options

Version 3.8 of the Mobile Messaging SDK introduces a Welcome message with quick reply options in the conversation window. When a consumer starts a new conversation, or a new customer visits the site, brands can send the first message with a list of quick replies of common intents.

You can configure the Welcome message as a simple text message with or without quick replies, for example:

Welcome to our support! What can we help you with today?

[Questions about existing account] [open a new account] [tech support]

A consumer’s quick reply selection or answer gets inserted as their first message in the conversation, which opens the conversation in the Conversational Cloud agent workspace.

How to enable
        //Welcome message
let welcomeMessageParam = LPWelcomeMessage(message: "Hello Mr.Bond")

        //adding options
        let options: [LPWelcomeMessage.MessageOption] = [
            LPWelcomeMessage.MessageOption(value: "music", displayName: "awesome tunes"),
            LPWelcomeMessage.MessageOption(value: "food", displayName: "Delicious food "),
        ]
        do {
            try welcomeMessageParam.set(options: options)
        } catch {
            print(error.localizedDescription)
        }

        //ConversationViewParams
        let conversationViewParams = LPConversationViewParams(conversationQuery: conversationQuery,
                                                              containerViewController: nil,
                                                              isViewOnly: false,
                                                              conversationHistoryControlParam: conversationHistoryControlParam,
                                                              welcomeMessage: welcomeMessageParam)
//show conversation
LPMessagingSDK.instance.showConversation(conversationViewParams,  authenticationParams: authenticationParams)

Limitations You can configure up to 24 quick reply options for the user to chose.

  • You have a maximum of 25 characters for your title, but anything over displays an ellipsis after the 22nd character. When building your client, you have control over the character limit for the title.

  • When the consumer ends the conversation, the window remains open, and the Welcome message appears again.

  • Quick reply messages do not get recorded in the conversation history.

  • The conversational metadata (ExternalId) does not get populated.

"metadata": [
  {
    "type": "ExternalId",
    "id": "Yes-1234"
  }
]

Bug Fixes

  • When the unreadMessagesDividerEnabled attribute equaled false, the conversation window did not jump/scroll to the latest messages received by the agent as expected. Regardless of unreadMessagesDividerEnabled value, the conversation screen will always scroll to the last position where the user left off.

    By default, the Unread Message Divider separator appears in the message view. When enabled, this feature does not prevent the badge or message text from displaying on the Scroll to Bottom button. Instead, the Unread Message Divider system message displays above the unread messages within the view of the user when returning to the conversation view. When disabled, the separator does not appear, and the unread message badge count displays on the Scroll to Bottom button.

  • Fallback to Signup Flow still existed. The bug prevented users from starting an authenticated conversation, and instead, the conversation started an unauthenticated visitor mode chat.

  • Send Image (From Gallery) failed. The bug prevented users from uploading images larger than 3MB, resulting in a ‘file too large’ message. Version 3.8 of the Mobile Messaging SDK increased the size limit to 5MB.

  • On iOS 12.2 Swift 5, the conversation screen did not show the sent or received messages and the margins appeared between messages.

  • Accessibility: voice over read old conversations. The bug prevented the voice over feature, when enabled, to read the current conversation, and instead, skipping back to old conversations.

  • When trying to reconnect with a JWT after the initial token expired, an INVALID JWT warning appeared and showed a black bar even though the conversation continued without error.

  • Before the token expired, the agent did not receive one or more messages resulting in data loss. The bug prevented messages from being sent regardless of the token expiration.

  • For iOS versions lower than 12. When starting an unauthenticated conversation then backgrounding the app and then foregrounding it again, the loading screen remained displayed. The bug prevented users from going in and out of the conversation without issue.

iOS API Updates

LPAMSFacade / LPMessagingAPI

New for 3.8

public class func createWelcomeLocalMessage(_ dialog: Dialog, welcomeMessage: LPWelcomeMessage, overrideTime: Date = Date()) -> Message?

Changes for 3.7.1 (DEPRECATED)

public class func createWelcomeLocalMessage(_ dialog: Dialog, overrideTime: Date = Date()) -> Message?
LPConversationViewParams

New for 3.8

public init(conversationQuery: ConversationParamProtocol,
                containerViewController: UIViewController? = nil,
                isViewOnly: Bool = false,
                conversationHistoryControlParam: LPConversationHistoryControlParam = LPConversationHistoryControlParam(historyConversationsStateToDisplay: .none),
                welcomeMessage: LPWelcomeMessage = LPWelcomeMessage(message: nil))

Changes for 3.7.1 (DEPRECATED)

public init(conversationQuery: ConversationParamProtocol,
                containerViewController: UIViewController? = nil,
                isViewOnly: Bool = false,
		conversationHistoryControlParam: LPConversationHistoryControlParam = LPConversationHistoryControlParam(historyConversationsStateToDisplay: .none))
)})
MAX_SWIFT_ALLOWED_UPLOAD_PHOTO_SIZE_IN_BYTE

New for 3.8

MAX_SWIFT_ALLOWED_UPLOAD_PHOTO_SIZE_IN_BYTE = 5MB

Changes for 3.7.1

MAX_ALLOWED_UPLOAD_PHOTO_SIZE_IN_MB = 3MB


Version 3.8.1

iOS Messaging SDK

Environmental Requirements

The iOS Mobile Messaging SDK version 3.8.1 is compatible with Xcode 10.2.0, Swift version 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3), and supported on iOS versions 10 through 12.

New Feature

Welcome message with quick reply options

Version 3.8 of the Mobile Messaging SDK introduces a Welcome message with quick reply options in the conversation window. When a consumer starts a new conversation, or a new customer visits the site, brands can send the first message with a list of quick replies of common intents.

You can configure the Welcome message as a simple text message with or without quick replies, for example:

Welcome to our support! What can we help you with today?

[Questions about existing account] [open a new account] [tech support]

A consumer’s quick reply selection or answer gets inserted as their first message in the conversation, which opens the conversation in the Conversational Cloud agent workspace.

How to enable
        //Welcome message
let welcomeMessageParam = LPWelcomeMessage(message: "Hello Mr.Bond")

        //adding options
        let options: [LPWelcomeMessage.MessageOption] = [
            LPWelcomeMessage.MessageOption(value: "music", displayName: "awesome tunes"),
            LPWelcomeMessage.MessageOption(value: "food", displayName: "Delicious food "),
        ]
        do {
            try welcomeMessageParam.set(options: options)
        } catch {
            print(error.localizedDescription)
        }

        //ConversationViewParams
        let conversationViewParams = LPConversationViewParams(conversationQuery: conversationQuery,
                                                              containerViewController: nil,
                                                              isViewOnly: false,
                                                              conversationHistoryControlParam: conversationHistoryControlParam,
                                                              welcomeMessage: welcomeMessageParam)
//show conversation
LPMessagingSDK.instance.showConversation(conversationViewParams,  authenticationParams: authenticationParams)

Limitations You can configure up to 24 quick reply options for the user to chose.

  • You have a maximum of 25 characters for your title, but anything over displays an ellipsis after the 22nd character. When building your client, you have control over the character limit for the title.

  • When the consumer ends the conversation, the window remains open, and the Welcome message appears again.

  • Quick reply messages do not get recorded in the conversation history.

  • The conversational metadata (ExternalId) does not get populated.

"metadata": [
  {
    "type": "ExternalId",
    "id": "Yes-1234"
  }
]

Bug Fixes

  • When the unreadMessagesDividerEnabled attribute equaled false, the conversation window did not jump/scroll to the latest messages received by the agent as expected.

    By default, the Unread Message Divider separator appears in the message view. When enabled, this feature does not prevent the badge or message text from displaying on the Scroll to Bottom button. Instead, the Unread Message Divider system message displays above the unread messages within the view of the user when returning to the conversation view. When disabled, the separator does not appear, and the unread message badge count displays on the Scroll to Bottom button.

  • Fallback to Signup Flow still existed. The bug prevented users from starting an authenticated conversation, and instead, the conversation started an unauthenticated visitor mode chat.

  • Send Image (From Gallery) failed. The bug prevented users from uploading images larger than 3MB, resulting in a ‘file too large’ message. Version 3.8 of the Mobile Messaging SDK increased the size limit to 5MB.

  • On iOS 12.2 Swift 5, the conversation screen did not show the sent or received messages and the margins appeared between messages.

  • Accessibility: voice over read old conversations. The bug prevented the voice over feature, when enabled, to read the current conversation, and instead, skipping back to old conversations.

  • When trying to reconnect with a JWT after the initial token expired, an INVALID JWT warning appeared and showed a black bar even though the conversation continued without error.

  • Before the token expired, the agent did not receive one or more messages resulting in data loss. The bug prevented messages from being sent regardless of the token expiration.

  • For iOS versions lower than 12. When starting an unauthenticated conversation then backgrounding the app and then foregrounding it again, the loading screen remained displayed. The bug prevented users from going in and out of the conversation without issue.

iOS API Updates

LPAMSFacade / LPMessagingAPI

New for 3.8

public class func createWelcomeLocalMessage(_ dialog: Dialog, welcomeMessage: LPWelcomeMessage, overrideTime: Date = Date()) -> Message?

Changes for 3.7.1 (DEPRECATED)

public class func createWelcomeLocalMessage(_ dialog: Dialog, overrideTime: Date = Date()) -> Message?
LPConversationViewParams

New for 3.8

public init(conversationQuery: ConversationParamProtocol,
                containerViewController: UIViewController? = nil,
                isViewOnly: Bool = false,
                conversationHistoryControlParam: LPConversationHistoryControlParam = LPConversationHistoryControlParam(historyConversationsStateToDisplay: .none),
                welcomeMessage: LPWelcomeMessage = LPWelcomeMessage(message: nil))

Changes for 3.7.1 (DEPRECATED)

public init(conversationQuery: ConversationParamProtocol,
                containerViewController: UIViewController? = nil,
                isViewOnly: Bool = false,
		conversationHistoryControlParam: LPConversationHistoryControlParam = LPConversationHistoryControlParam(historyConversationsStateToDisplay: .none))
)})
MAX_SWIFT_ALLOWED_UPLOAD_PHOTO_SIZE_IN_BYTE

New for 3.8

MAX_SWIFT_ALLOWED_UPLOAD_PHOTO_SIZE_IN_BYTE = 5MB

Changes for 3.7.1

MAX_ALLOWED_UPLOAD_PHOTO_SIZE_IN_MB = 3MB


Version 3.8.0

iOS Messaging SDK

Environmental Requirements

The iOS Mobile Messaging SDK version 3.8 is compatible with Xcode 10.2.1, Swift version 5.0.1 (swiftlang-1001.0.82.4 clang-1001.0.46.5), and supported on iOS versions 10 through 12.

The iOS Mobile Messaging SDK version 3.8 is not compatible with simulators when running in an Objective-C project.

New Feature

Welcome message with quick reply options

Version 3.8 of the Mobile Messaging SDK introduces a Welcome message with quick reply options in the conversation window. When a consumer starts a new conversation, or a new customer visits the site, brands can send the first message with a list of quick replies of common intents.

You can configure the Welcome message as a simple text message with or without quick replies, for example:

Welcome to our support! What can we help you with today?

[Questions about existing account] [open a new account] [tech support]

A consumer’s quick reply selection or answer gets inserted as their first message in the conversation, which opens the conversation in the Conversational Cloud agent workspace.

How to enable
        //Welcome message
let welcomeMessageParam = LPWelcomeMessage(message: "Hello Mr.Bond")

        //adding options
        let options: [LPWelcomeMessage.MessageOption] = [
            LPWelcomeMessage.MessageOption(value: "music", displayName: "awesome tunes"),
            LPWelcomeMessage.MessageOption(value: "food", displayName: "Delicious food "),
        ]
        do {
            try welcomeMessageParam.set(options: options)
        } catch {
            print(error.localizedDescription)
        }

        //ConversationViewParams
        let conversationViewParams = LPConversationViewParams(conversationQuery: conversationQuery,
                                                              containerViewController: nil,
                                                              isViewOnly: false,
                                                              conversationHistoryControlParam: conversationHistoryControlParam,
                                                              welcomeMessage: welcomeMessageParam)
//show conversation
LPMessagingSDK.instance.showConversation(conversationViewParams,  authenticationParams: authenticationParams)

Limitations You can configure up to 24 quick reply options for the user to chose.

  • You have a maximum of 25 characters for your title, but anything over displays an ellipsis after the 22nd character. When building your client, you have control over the character limit for the title.

  • When the consumer ends the conversation, the window remains open, and the Welcome message appears again.

  • Quick reply messages do not get recorded in the conversation history.

  • The conversational metadata (ExternalId) does not get populated.

"metadata": [
  {
    "type": "ExternalId",
    "id": "Yes-1234"
  }
]

Bug Fixes

  • When the unreadMessagesDividerEnabled attribute equaled false, the conversation window did not jump/scroll to the latest messages received by the agent as expected.

    By default, the Unread Message Divider separator appears in the message view. When enabled, this feature does not prevent the badge or message text from displaying on the Scroll to Bottom button. Instead, the Unread Message Divider system message displays above the unread messages within the view of the user when returning to the conversation view. When disabled, the separator does not appear, and the unread message badge count displays on the Scroll to Bottom button.

  • Fallback to Signup Flow still existed. The bug prevented users from starting an authenticated conversation, and instead, the conversation started an unauthenticated visitor mode chat.

  • Send Image (From Gallery) failed. The bug prevented users from uploading images larger than 3MB, resulting in a ‘file too large’ message. Version 3.8 of the Mobile Messaging SDK increased the size limit to 5MB.

  • On iOS 12.2 Swift 5, the conversation screen did not show the sent or received messages and the margins appeared between messages.

  • Accessibility: voice over read old conversations. The bug prevented the voice over feature, when enabled, to read the current conversation, and instead, skipping back to old conversations.

  • When trying to reconnect with a JWT after the initial token expired, an INVALID JWT warning appeared and showed a black bar even though the conversation continued without error.

  • Before the token expired, the agent did not receive one or more messages resulting in data loss. The bug prevented messages from being sent regardless of the token expiration.

  • For iOS versions lower than 12. When starting an unauthenticated conversation then backgrounding the app and then foregrounding it again, the loading screen remained displayed. The bug prevented users from going in and out of the conversation without issue.

iOS API Updates

LPAMSFacade / LPMessagingAPI

New for 3.8

public class func createWelcomeLocalMessage(_ dialog: Dialog, welcomeMessage: LPWelcomeMessage, overrideTime: Date = Date()) -> Message?

Changes for 3.7.1 (DEPRECATED)

public class func createWelcomeLocalMessage(_ dialog: Dialog, overrideTime: Date = Date()) -> Message?
LPConversationViewParams

New for 3.8

public init(conversationQuery: ConversationParamProtocol,
                containerViewController: UIViewController? = nil,
                isViewOnly: Bool = false,
                conversationHistoryControlParam: LPConversationHistoryControlParam = LPConversationHistoryControlParam(historyConversationsStateToDisplay: .none),
                welcomeMessage: LPWelcomeMessage = LPWelcomeMessage(message: nil))

Changes for 3.7.1 (DEPRECATED)

public init(conversationQuery: ConversationParamProtocol,
                containerViewController: UIViewController? = nil,
                isViewOnly: Bool = false,
		conversationHistoryControlParam: LPConversationHistoryControlParam = LPConversationHistoryControlParam(historyConversationsStateToDisplay: .none))
)})
MAX_SWIFT_ALLOWED_UPLOAD_PHOTO_SIZE_IN_BYTE

New for 3.8

MAX_SWIFT_ALLOWED_UPLOAD_PHOTO_SIZE_IN_BYTE = 5MB

Changes for 3.7.1

MAX_ALLOWED_UPLOAD_PHOTO_SIZE_IN_MB = 3MB


Version 3.7.1

iOS Messaging SDK

Environmental Requirements

Supports Xcode 10.2 and Swift version 5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3), or Objective-C.


Version 3.7.0

iOS Messaging SDK

Environmental Requirements

iOS Mobile App SDK v3.7 is compatible with XCode 10, Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1) and is supported on iOS versions 10 through 12.

iOS SDK 3.7 compatibility with XCode 10.2, Swift 5 will be released as 3.7.1 on or before April 5 2019.

API Updates

LPAMSFacade.swift

New method for 3.7:

public class func resolveConversation(_ conversation: Conversation, completion: (() -> Void)? = {()})
public class func resolveConversationForConversationQuery(_ conversationQuery: ConversationParamProtocol, completion: (() -> Void)? = {()})

Deprecated method (3.6.1):

public class func resolveConversation(_ conversation: Conversation)
public class func resolveConversationForConversationQuery(_ conversationQuery: ConversationParamProtocol)

LPConversationViewParams.swift

New for 3.7

LPConversationViewParams initializer requires LPConversationHistoryControlParam

Changes for 3.6.1

LPConversationViewParams initializer takes optional LPConversationHistoryControlParam

LPConversationHistoryControlParam.swift

New for 3.7

LPConversationHistoryControlParam can no longer be nil for ConversationViewController

Changes for 3.6.1

LPConversationHistoryControlParam can be nil for ConversationViewController

SocketRocket

New for 3.7 Namespacing for SR dependency.

Bug Fixes

  • Signup/Unauthenticated Users were unable to start a new Conversation after PCS.
  • Web socket Handler crashed the host-app in production.
  • SDK crashes when receiving an empty Structured Content Card.
  • When clicking the default back button, the socket wouldn't close.
  • PCS would not show when the user resolved a conversation using a Custom View.
  • In-app push sometimes showed the real message instead of the masking message.
  • Memory Leaks found in SDK.
  • Local Notification were displayed on alert rather than on top of the screen.
  • Namespacing internal 3rd party libraries to prevent a collision.

Version 3.6.1

iOS Messaging SDK

Environmental Requirements

iOS Mobile App SDK v3.6.1 is compatible with XCode 10, Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1) and is supported on iOS versions 10 through 12.

Bug Fixes

The LPMessagingSDKNotificationDelegate delegate call did not trigger.


Version 3.6.0

iOS Messaging SDK

Environmental Requirements

iOS Mobile App SDK v3.6 is compatible with XCode 10, Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1) and is supported on iOS versions 10 through 12.

API Updates

Infra/LPInfraFacade.swift

New method:

public class func unregisterPusherFor( brandId: String, completion: @escaping ()->(), failure: @escaping ( error: Error)->())

Deprecated method:

public class func unregisterPusher( brand: Brand, completion: @escaping ()->(), failure: @escaping ( error: Error)->())
Updated Pusher Errors:
Error Code Error
-1 non supported Device (ie simulator)
-2 network unreachable
-4 no response from server
-5 token expired
-10 failed to register
-20 failed to unregister
-30 failed to get unread message count

Bug Fixes

  • CSAT submit button is disabled in window mode.

  • Socket won't close with non-custom back button.

  • QR button visibility issues when toggling application state.

  • Application instability caused by future time set on device.

  • Multiple apps on device each sharing user cannot deregister from pusher.

  • LPTMesssagingSDKTokenExpired delegate call not being triggered.

  • Reconnecting in unauthenticated fails after JWT expires.

  • System messages do not change to Chinese while device is language is Chinese and the region is in China. Currently SDK system messages do not support the scenario in which language and region are not in sync (For example, device language is in Chinese while the region is in the US).

  • “Still Connecting…” error when app is brought to foreground using springboard.

  • Connection issues after establishing network connection in background and returning to conversation.

  • Cannot resume unauthenticated conversation when toggling between app states.

  • Cannot continue typing in an authenticated conversation if app is placed into the background before sending 1st message.

  • Customers can get stuck in signup flow.

  • Protocol sniffing appears to not be compatible with iOS 12.

  • Constant “Loading…” message in unauthenticated flow after opening Notifications Center.

  • Optimization of determining application state during UI transitions.

  • For 1st unread message, no indication of “Unread Messages” is set within the conversation window.

  • Automatic messages no longer appear outside of conversation window while in background state.

  • Socket connectivity for active conversation without network connection.

Known Issues

Through a series of changing application state, extended backgrounding, and intermittent messaging, occasionally (4%) the user can produce a state where some messages do not appear. Work-around for consumer is reloading the conversation view.


Version 3.5.0

iOS Messaging SDK

Environmental Requirements

iOS Mobile App SDK v3.5 is compatible with Xcode 10, Swift 4.2 and iOS versions 10 through 12

Known Issue

There is a known issue related to entering the conversation view controller with an expired token. The consumer observes a "still connecting" message which can be resolved by exiting and re-entering the conversation view controller.

Bug Fixes

  • When an unauthenticated consumer attempts to reconnect after their session expires (when using JSON Web Tokens) the connection fails.

  • Push notifications are not being received when going to background (minimizing app) due to issues with network.

  • When a consumer is in active conversation and an agent resolves the conversation, the unread message indicator appears but there are new messages visible and the consumer can not scroll down.

  • Consumer can not scroll to the latest message when there is no assigned agent and the conversation is closed.

  • Conversation does not automatically scrolls to the bottom when survey starts/ends.

  • When returning from background banner indicating the count of unread messages is incorrect.

  • App freezes (experiences recursive cycles) on phones which the time has been set in the future. Interim solution: Retry attempts have been limited for consumers with expired JSON Web Tokens trying to authenticate. Once this limit is hit, LP Messaging SDK will post the SDK_AUTHENTICATION_FAILED notification which will trigger the LPMessagingSDKAuthenticationFailed delegate method. A client app can use either of these mechanisms to stop the authorization attempt and notify the consumer they need to obtain a valid token. After the notification has been posted the authentication retries will be reset.

  • In the Agent Console, the consumer conversation information (OS Type & Device) is not updated while switching platforms IOS/Android or OS versions. Update: Update: The current design of Conversational Cloud platform cannot currently accommodate this request. This can be implemented in a future Conversational Cloud platform update.

API Update

  • The LPInfraFacad method registerPusherWithLoginFlow(brand) has been updated to registerPusherWithLoginFlow(brand: Brand, authenticationParams: LPAuthenticationParams?) allowing for an optional 'Authentication Parameters' dictionary to be passed to aid in determining the status and routing of authentication for the current consumer.

Version 3.4.0

iOS Messaging SDK

iOS Mobile App SDK v3.4 does not include new features and there are no API changes.

Environment Requirements

iOS Mobile App SDK v3.4 is compatible with Xcode 10, Swift 4.2 and iOS versions 9 through 12.

Bug Fixes

  • App crash when setting the phone’s time to future.

  • In some cases, when going into the conversation screen, the keyboard covers the text area.

  • Unauthenticated conversation doesn’t get connected when providing an engagement using an entry point.

  • When using unauthenticated messaging and setting the history flag to false, in case the conversation was resolved while the SDK was in the background, the conversation screen will be stuck and the consumer will not be able to start a new conversation.

  • Accessibility - Secure Form description is not announced properly.

  • Monitoring APIs - SDK is not using the returned VID when querying "getEngagement" request. This might cause a longer time for getting a response.

  • In some cases, when the consumer returns to an ongoing conversation, error shows up and the consumer cannot send any messages.

  • Redundant CSAT is shown when Agent activates PCS in conversation.

  • In some cases, when the JWT expires there is no delegate being triggered after showConversation method is called.


Version 3.3.0

iOS Messaging SDK

iOS Mobile App SDK v3.3 contains support for the Post Conversation Survey feature, support for iOS 12, Xcode 10 and Swift 4.2 and addresses several bugs reported by customers.

Environment Requirements

iOS Mobile App SDK v3.3 is compatible with Xcode 10, Swift 4.2 and iOS versions 9 through 12.

Main Features

Post Conversation Survey

Available to all customers? No. Please contact account team.

Description

The post conversation survey enables brands to both collect feedback and measure their success from their consumers after conversations have taken place. The survey is delivered via a conversational experience to drive higher completion rates and provide consumers with the best experience possible.

Brands can customize the survey to their needs, including predefined questions (CSAT, NPS and FCR), custom questions and free text, as well as the ability to configure the logic and flow from question to question.

This enables brands to prove the success of messaging and compare their KPIs across different channels. Additional information about Post Conversation Survey can be found here .

Support for iOS 12, Xcode 10 & Swift 4.2

Available to all customers? Yes.

Description

Mobile App SDK v3.3 supports iOS 12, Xcode 10 & Swift 4.2.

Bug Fixes

  • In some cases, when consumers would go into the conversation screen, the loading progress bar would get stuck.

  • When starting to fill a secure form, if a customer exits out of the form and opens a new secure form, the values from the first form appear in the new form for about a second and then disappear.

  • When applying a regex for real time masking, the entire string will be affected rather than only the matching part.

  • Missing auto scroll to bottom when a conversation is closed.

  • The first message is hidden when using the Control History APIs. After sending the second message, all messages will be visible.

  • In some cases, when consumers send the app to the background and later return to the conversation screen, the socket will not get connected and the consumer will not be able to send/receive messages.

  • When going into the conversation screen after the app was killed, the screen will be scrolled to the top instead of to the bottom.

  • When replacing rootViewController, in-app push notifications stops working.

  • If a failure occurred while unregistering for Push Notifications, customers were unable to logout from the SDK.

  • When Voiceover is turned on, the Secure Forms ‘X’ button reads “stop” instead of “close”.

  • When Voiceover is turned on and the send button is customized, the send message button reads as “button” instead of the button’s functionality.

  • When Voiceover is turned on, when reading messages, agent reads as “agent” instead of the agent’s nickname.

Known Issues

  • Resolving unauthenticated conversations fails when setting the flag ‘show history for closed messaging conversations’ to no. The feature works as expected when the flag is set to yes.

Version 3.2.6

iOS Messaging SDK

Version 3.2.6 includes fixes for the following bugs:

  1. In some cases, when consumers sent the app to the background and later returned to the conversation screen, the socket would not get connected and the consumer was not able to send or receive messages.

  2. After killing the app, getEngagement (a Monitoring API method) would not return the details of the open conversation.


Version 3.2.5

iOS Messaging SDK

Version 3.2.5 includes fixes for the following bugs:

  1. In some cases, when consumers would go into the conversation screen, the loading progress bar would get stuck.

  2. When starting to fill a secure form, if a customer exits out of the form and opens a new secure form, the values from the first form appears in the new form for a ~second and then disappeared.

  3. When applying a regex for real time masking, the entire string will be affected rather than only the matching part.
  4. Missing auto scroll to bottom when a conversation is closed.

  5. The first message is hidden when using the Control History APIs. After sending the second message, all messages will be visible.

  6. In some cases, when consumers send the app to the background and later return to the conversation screen, the socket will not get connected and the consumer will not be able to send\receive messages.

  7. When going into the conversation screen after the app was killed, the screen will be scrolled to the top instead to the bottom.

  8. When replacing rootViewController, in-app push notifications stops working.

  9. If a failure occurred while unregistering for Push Notifications, customers were unable to logout from the SDK

The full release notes can be found Here


Version 3.2.4

iOS Messaging SDK

iOS Messaging SDK v3.2.4 contains the following bug fix:

Symptom:

The SDK would crash after the user sent messages in iOS 12.

Fix:

The user can now send messages without an SDK crash when running on iOS 12.


Version 3.2.3

iOS Messaging SDK

iOS Messaging SDK v3.2.3 contains the following bug fix:

Symptom:

When a consumer tried to enter into an existing conversation after the agent marked it as closed, loading the history failed and the consumer couldn't see the conversation window.

Fix:

The SDK will now clear the notification and history manager when logging out. This will cause removal of empty conversations from previous sessions and loading the history will fetch only relevant conversations.


Version 3.2.2

iOS Messaging SDK

iOS Messaging SDK v3.2.2 contains the following bug fixes:

Symptom:

When calling getEngagement while there is an active conversation which is not related to a campaign, the response returns an error.

Fix:

When calling getEngagement while there is an active conversation which is not related to a campaign, a response will be returned with the available information.

Symptom:

In some cases, the badge counter was returned with an incorrect value, which represents a previous value. For example, when an agent sent messages while the conversation screen was in the background.

Fix:

Badge counter is now showing the actual value.

Symptom:

In case of a failure in ‘logout’, the user’s data might be displayed with empty message bubbles the next time that the consumer opens the conversation screen.

Fix:

The user’s data is now cleared as expected only if the ‘logout’ succeeded.

Symptom:

In some cases, the badge counter was returned with an incorrect value, which represents a previous value.

Fix:

Badge counter is now showing the actual value regardless the state of the conversation.


Version 3.2.1

iOS Messaging SDK

iOS Messaging SDK v3.2.1 contains the following bug fixes:

Symptom:

When trying to get the number of unread messages and the token expired, the SDK doesn’t provide a relevant indication.

Fix:

When trying to get the number of unread messages and the token expired, a token expired callback will now be returned.


Version 3.2.0

iOS Messaging SDK

Version 3.2 roll-out: July 1st 2018

Main Features

Audio Messaging

Type: Consumer Experience Feature Available to all customers? No. Please contact your account team.

Consumers are now able to send Audio messages to brands which makes the communication even better.

In Audio messages, the Brands can configure:

  1. The maximum length of the message (15 seconds - 2 minutes long by default)
  2. Enable/Disable the feature
  3. Max stored audio messages on device
  4. Tooltips text
Unauthenticated In-App Messaging

Type: Developer Experience Feature

Available to all customers? Yes.

Brands can communicate with their consumers in an unauthenticated manner while being able to leverage additional Conversational Cloud capabilities such as Campaigns for Messaging.

Unauthenticated messaging allows brands to:

  1. Easier & quicker on-boarding to Conversational Cloud

  2. Having pre authentication messaging use cases, for example, assistance with password recovery

  3. The ability to use Campaigns while having unauthenticated conversations

Quick Replies

Type: Consumer Experience Feature

Available to all customers? Yes.

Quick Replies enrich the consumer experience by using rich text interactions that guide the consumer throughout the conversation. The consumer is presented with a number of brief answers that can be selected in order to navigate the conversation in the right path.

The Quick Replies can contain the same actions as Structured Content buttons:

  1. Publish text

  2. Link

  3. Navigation

As Quick Replies contain predefined values, the feature can dramatically improvie communication with Bots and improve both consumer experience and operational efficiency.

Type: Consumer Experience Feature

Available to all customers? Yes.

Structured Content experience is enriched with the Carousel allowing more capabilities, more use cases and moving agents one step forward in being able to provide end to end assistance.

The Carousel consists of more than one card at a time, side by side and the consumer can swipe between cards.

Experience and Branding Enhancements

Type: Consumer Experience Feature

Available to all customers? Yes.

The SDK allows Brands to customize the SDK even more, giving a personal touch to their cusomers.

Large Emojis

When using Emojis in a conversation:

  1. One Emoji - the Emoji will be enlarged to an extra large size.

  2. Two Emojis - the Emojis will be enlarged to a Large size.

  3. More than two Emojis or Emojis with text - the Emojis' size will be small.

Conversation Window Background Image

A new way for Brands to set their own background in conversations to add a more personal touch.

APIs

New APIs
API Description
LPMonitoringIdentity - added new object to be used as a param in the LPMonitoringAPI. The object replaced consumerId which is now deprecated.
func getEngagement(identities: [LPMonitoringIdentity], monitoringParams: LPMonitoringParams?, completion: @escaping (_ response: LPGetEngagementResponse)->(), failure: @escaping (_error: NSError)->()) Use this API to get an engagement for a consumer in an appInstallationId context. The returned value is based on the provided Engagement Attributes. As an optional parameter, you can pass SDE Data which includes Entry Points or any other Engagement Attributes for routing the Parameters:
- identities: an array of identity objects of type LPMonitoringIdentity which includes the details on the consumer and issuer
- monitoringParams: an instance of includes optional Array of Entry Points and an optional dictionary of Engagement Attributes
- completion: completion block with response of type LPGetEngagementResponse. This response includes sessionID and visitorID along with LPEngagementDetails object.
- failure: failure block with an error in case the request fails
func sendSDE(identities: [LPMonitoringIdentity], monitoringParams: LPMonitoringParams, completion: @escaping (_ response: LPSendSDEResponse)->(),failure: @escaping (_ error: NSError)->()) Use this API to report Engagement Attributes for a consumer in an appInstallationId context including show and accept impression. Parameters:
- identities: an array of identity objects of type LPMonitoringIdentity which includes the details on the consumer and issuer
- monitoringParams: an instance of LPMonitoringParams includes optional Array of Entry Points and an optional dictionary of Engagement Attributes. Additional optional parameter is PageID which is used for Page identification for sending events on the current engagement. PageID will be received in LPSendSDEResponse and in LPGetEngagementResponse
- completion: completion block with response of type LPSendSDEResponse. This response includes sessionID and visitorID and pageID for future use.
- failure: failure block with an error in case the request fails
LPAuthenticationType - a new enum. Was added to LPAuthenticationParams This enum is used for determine the authentication type with the following options:
- signup (default) // old unauthenticated method. Is deprecated as of July 2019
- unauthenticated
- authenticated
registerPushNotifications → Added new optional parameter authenticationParams: func registerPushNotifications(token: Data, notificationDelegate: LPMessagingSDKNotificationDelegate? = nil, alternateBundleID: String? = nil, authenticationParams: LPAuthenticationParams? = nil) If passing authentication params, this method will register immediately to LPPusher, the registration will be performed when calling showConversation
Deprecated APIs
API
func addContentToMessage(text: String) from LPMessagingSDK
func getEngagement(consumerID: String?, monitoringParams: LPMonitoringParams?, completion: @escaping (_ response: LPGetEngagementResponse)->(), failure: @escaping (_ error: NSError)->())
func sendSDE(consumerID: String, monitoringParams: LPMonitoringParams, completion: @escaping (_ response: LPSendSDEResponse)->(), failure: @escaping (_ error: NSError)->())
Callbacks

New Callbacks

API Description
LPMessagingSDKUnauthenticatedUserExpired() Called when an unauthenticated user expired and can no longer be in use. When this callback is invoked, the previous open conversation will be closed locally.
LPMessagingSDKPushRegistrationDidFinish() Called when the SDK registration for LP Pusher service has been succeeded. Pusher is the service that responsible for Remote Push Notifications routing and delivering from and to APNS.
LPMessagingSDKPushRegistrationDidFail(_ error: NSError) Called when the SDK registration for LP Pusher service has failed with error. Pusher is the service that responsible for Remote Push Notifications routing and delivering from and to APNS.
Configurations

General Configurations

Parameter Description Default Value
ttrShouldShow Toggling this on will show TTR notifications. When the auto messages feature is enabled, TTR notifications will not be displayed regardless of this parameter. true
announceAgentTyping This configuration already existed. If true, show agent is typing indicator in selected position and accessibility will announce when agent is typing a message to the consumer. If false, will not show any indication, and will not announce when agent is typing a message. true
showAgentTypingInMessageBubble If true, shows agent is typing indicator in a message bubble. If false, show indicator under Agent label in navigator bar. If announceAgentTyping is false, will not show any "is typing" indicator regardless of current value true
Experience and Branding Enhancements
Parameter Description Default Value
enableEnlargeEmojis When true, user and remote user messages containing one or two emojis will be enlarged in chat. Messages with one emoji will be the largest, two emojis will be large, and 3 or more will be displayed as normal text. false
conversationBackgroundPortraitImage When not nil, will be used as the conversation portrait background image. nil
conversationBackgroundLandscapeImage When not nil, will be used as the conversation landscape background image nil
conversationBackgroundImageContentMode Defines the content mode of the conversation background image. .scaleToFill
Structured Content
Parameter Description Default Value
structuredContentBubbleTopLeftCornerRadius Sets the corner radius of the top left corner of a Structured Content card 8
structuredContentBubbleTopRightCornerRadius Sets the corner radius of the top right corner of a Structured Content card 8
structuredContentBubbleBottomLeftCornerRadius Sets the corner radius of the bottom left corner of a Structured Content card 8
structuredContentBubbleBottomRightCornerRadius Sets the corner radius of the bottom right corner of a Structured Content card 8
Audio Messaging
Parameter Description Default Value
recordingDurationLimit: TimeInterval Maximum time frame for recording audio message (in seconds). 120
enableAudioSharing True - Enables Audio Sharing feature, False - Disables Audio Sharing false
maxNumberOfSavedAudioFilesOnDisk This number represents how many audio files will be saved on the disk. Exceeding files are deleted when the app closes. 20
Quick Replies
Parameter Description Default Value
quickReplyButtonVerticalPadding Distance between the bottom and top edges of the button to the bottom and top edges of the text 10.0
quickReplyButtonHorizontalPadding Distance between the right and left edges of the button to the right and left edges of the text 15.0
quickReplyVerticalMargin Vertical margin between quick reply buttons 10.0
quickReplyHorizontalMargin Horizontal padding between quick reply buttons 10.0
quickReplyButtonBorderWidth Border size of Quick Reply buttons 1.0
Updated Configurations
Configuration Description Old Value New Value
inputTextViewCornerRadius User Input TextView corner radius 17.0 20.0

Strings Localization

General Strings
Key Description Default Value
isTyping Indication that appears while Agent is typing a new message. "typing…"
Quick Replies
Key Description Default Value
quickReplyButton Accessibility string when hovering on the Quick Replies control. "Quick reply button"
outOf Accessibility string when hovering on the Quick Replies button "out of"
Unauthenticated Messaging
Key Description Default Value
unauthenticatedUserExpiredTitle The title of the presented dialog when the identity is expired. New Conversation
unauthenticatedUserExpiredMessage The body of the presented dialog when the identity is expired. "Hi there! As we haven't seen you for a while, we're opening a new conversation for you"
Audio Messaging
Key Description Default Value
toolTipLongTapToRecord Tooltip shown when short tapping the mic button. "Long tap to record"
toolTipReleaseButtonForRecording Tooltip shown when keeping mic tapped. "Release for recording"
toolTipRecordLimitReached Tooltip shown when the maximum recording time reached. “Recording limit has been reached, click to send”

Features Enablement Chart

Feature Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Audio Messaging Yes Yes Yes Yes Yes
Unauthenticated Messaging Yes Yes Yes Yes Yes
Quick Replies Yes Yes Yes Yes No
Structured Content Carousel Yes Yes Yes Yes No
Branding Enhancements No No No Yes Yes

Version 3.1.5

iOS Messaging SDK

Version 3.1.5 supports Xcode 9.3 & Xcode 9.4

Symptom:

Control History APIs are not exposed to Objective C.

Fix:

The Control History APIs are now exposed

Symptom:

LPMessagingSDKCSATScoreSubmissionDidFinish delegate was called when getting history, even if the CSAT was already submitted.

Fix:

LPMessagingSDKCSATScoreSubmissionDidFinish is now called only after the CSAT is submitted.


Version 3.1.4

iOS Messaging SDK

Version 3.1.0.24 - Supports Xcode 9.2 Version 3.1.4 - Supports Xcode 9.3

Symptom:

In some cases where two consumers use the same device (one after the other), push notifications directed to the first consumer were routed to the device although a different consumer was using it.

Fix:

Before registering a new consumer for push notification, we make sure the previous consumer was unregistered.

Symptom:

In some cases, when using older iOS versions (~iOS 9) and older devices, and fetching additional history, the UI of the conversation screen breaks and from time to time, the app might crash as well.

Fix:

The UI will maintain its structure after fetching additional history and prevent a possible crash.

Symptom:

After a brand calls to Clear History, the conversation is removed from the UI but when the consumer navigates back to the screen the history is presented again.

Fix:

History will not be presented after calling Clear History.

Symptom:

In some cases, when the SDK is trying to connect to LivePerson’s servers, there is no indication for the consumer.

Fix:

An indication will be presented while the SDK attempts to connect to the server.


Version 3.1.3

iOS Messaging SDK

Version 3.1.0.23 - Supports Xcode 9.2 Version 3.1.3 - Supports Xcode 9.3

The version contains the following bug fixes:

Symptom:

When a consumer scrolls inside the conversation window, returns to the app and then back to the conversation, their position inside the screen is not saved and they need to navigate back to their previous position.

Fix:

The consumer’s position within the conversation window is saved. When the consumer returns to the conversation, they will return to the same place they were when they navigated away from the screen.

Symptom:

In some cases, when fetching additional history, the UI of the conversation screen breaks.

Fix:

The UI will maintain its structure after fetching additional history.

Symptom:

When a consumer starts a conversation and leaves the messaging screen while moving the app to background, then returns to the messaging screen after the JWT has expired, they will not be able to continue the conversation and sending messages will be disabled.

Fix:

The JWT expiration is now verified before each socket connection. If it expires, a callback of tokenExpired will be invoked.

Symptom:

When calling the API of removeConversation() from viewWillDisappear() when the conversation has been resolved, the socket will be closed while the CSAT is being presented to the consumer. As a result, the CSAT submit button is disabled.

Fix:

The socket will not be closed while the CSAT is being presented.


Version 3.1.2

iOS Messaging SDK

Version 3.1.0.22 - Supports Xcode 9.2 Version 3.1.2 - Supports Xcode 9.3

The version contains the following bug fixes:

Symptom:

Consumer is typing indication appears to the agent when the keyboard is opened and not when the consumer actually starts typing.

Fix:

Consumer is typing view will be presented to agent on a keystroke.

Symptom:

When a consumer scrolls inside the conversation window, goes back to the app and back to the conversation, the position inside the screen will not be saved.

Fix:

The position inside the screen is saved. When the consumer will go back to the conversation, the position will be the same as it was when leaving the screen.

Symptom:

Agent’s first name appears in the in app notification instead of the nickname.

Fix:

Added the nickname of the agent instead of the first name.


Version 3.1.1

iOS Messaging SDK

Added support for Xcode 9.3 and Swift 4.1


Version 3.1.0

iOS Messaging SDK

These are the main feature releases available in the Mobile App Messaging SDK version 3.1 for iOS.

Version 3.1 planned roll-out: March 18th 2018

Version Specific System Requirements Document

New functionalities

Campaign for messaging

Type: Developer Experience Feature

Available to all customers? Yes.

The addition of campaigns for mobile app and web messaging will allow brands to manage their engagements easily and efficiently across these channels, targeting customers based on unauthenticated attributes or locations and routing them to a desired skill.

Being able to track customer activity in all areas of the brand app and provide information on these interactions to Conversational Cloud boosts agent efficiency and enables more accurate reporting.

Using the Monitoring APIs, brands can:

  1. Report on the customer’s journey inside the app

  2. Get engagements based on the reported SDEs

  3. Route conversations to a specific skill (based on engagements)

Monitoring APIs

The below APIs enable brands to use Campaigns for Messaging inside the brand’s app

New APIs Description
Added monitoringInitParams to LPMessagingSDK.initialize() → func initialize(_ brandID: String? = nil, monitoringInitParams: LPMonitoringInitParams? = nil) throws Added new optional monitoringInitParams: LPMonitoringInitParams object to allow using Monitoring. SDK can be initialized once without monitoringInitParams and then have another initialize call using this param. Passing monitoringInitParams is mandatory when using MonitoringAPI capabilities
Added to LPMessasgingSDK.instance.getConversationBrandQuery → func getConversationBrandQuery(_ brandID: String, campaignInfo: LPCampaignInfo? = nil) -> ConversationParamProtocol Added new optional campaignInfo: LPCampaignInfo object to be able to pass a new Campaign to conversation. Campaign includes Engagement info which allows to control the consumer's routing.
LPCampaignInfo initialization: LPCampaignInfo(campaignID: Int, engagementID: Int, engagementContextID: String, sessionID: String? = nil, visitorID: String? = nil) Object to be able to pass a new Campaign to conversation. Campaign includes Engagement info which allows to control the consumer's routing. Note: sessionID and visitorID are optional parameters. If these values are not used or left as nil, then the SDEs will only be sent for use in routing rules and conditions. They will not appear to the agent. If you add them into the constructor then the SDEs will be visible to the agent.
LPMonitoringAPI → Added new API interface which should be called using: LPMonitoringAPI.instance.xxxx func getEngagement(consumerID: String?, monitoringParams: LPMonitoringParams?, completion: @escaping (_ response: LPGetEngagementResponse)->(), failure: @escaping (_ error: NSError)->()) Use this API to get an engagement for a consumer in an appInstallationId context. When calculating eligibility the decision is based on the SDEs and other parameters. Based on messaging campaign concept As an optional parameter, you can pass SDE Data which includes Entry Points and Engagement Attributes for routing the conversation. Parameters:
  • consumerID: an optional brand app consumer ID to get the engagement for
  • monitoringParams: an instance of includes optional Array of Entry Points and an optional dictionary of Engagement Attributes
  • completion: completion block with response of type LPGetEngagementResponse. This response includes sessionID and visitorID along with LPEngagementDetails object.
  • failure: failure block with an error in case the request fails
func sendSDE(consumerID: String, monitoringParams: LPMonitoringParams, completion: @escaping (_ response: LPSendSDEResponse)->(), failure: @escaping (_ error: NSError)->()) Use this API to report an engagement attributes (SDEs) for a consumer in an appInstallationId context. Parameters:
  • consumerID: an optional brand app consumer ID to get the engagement for
  • monitoringParams: an instance of includes optional Array of Entry Points and an optional dictionary of Engagement Attributes
  • completion: completion block with response of type LPGetEngagementResponse. This response includes sessionID and visitorID along with LPEngagementDetails object.
  • failure: failure block with an error in case the request fails

Please note: while the APIs are already available in the SDK, the backend will be available in mid-April. Please consult your account team before using the APIs.

The following additional conditions and configurations are required:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Yes Yes Yes Yes Yes
Conversation History Control

Type: Developer Experience Feature

Available to all customers? Yes.

To enhance control of customer data retention, scalability and performance, and support the EU’s General Data Protection Regulation (GDPR), open conversations will be loaded from a real time service while closed conversations will be loaded from a history service.

The change will be seamless for brands who upgrade to SDK version 3.1. Brands choosing not to upgrade to SDK v3.1 will be able to view the conversation history from the last 14 days. The history stored on the consumer’s device will also be available.

The following additional conditions and configurations are required:*

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Yes No No No No
History and Active Conversation View

Type: Developer Experience Feature

Available to all customers? Yes.

New APIs will give brands control over the conversations presented in the conversation window. For example, brands can choose to present only the last 180 days of conversation history.

These APIs can be used together with getengagement (Monitoring APIs) to decide how to present conversations history according to whether there is an open conversation or not. For example, if there is no open conversation, brands can present a ‘View conversation history’ button which will present only the closed conversations from the last 180 days.

The new APIs allows:

  • Getting an indication if there is an open conversation or not (Monitoring APIs)

  • Controlling which conversations will be presented by status (open\closed)

  • Controlling the time frame of presented conversations (by days)

  • When using historyConversationsMaxDays, LPConversationHistoryMaxDaysDateType will decide if to filter by the conversations' start date or end date. When not providing a value, startConversationDate will be the default.

History and Active Conversation APIs
New APIs Description
LPConversationViewParams → LPConversationHistoryControlParam → historyConversationsStateToDisplay: LPConversationsHistoryStateToDisplay? Allows to control which conversation will be presented when opening the conversation screen, by status (open or closed)
LPConversationViewParams → LPConversationHistoryControlParam → historyConversationMaxDaysType: LPConversationHistoryMaxDaysDateType? = startConversationDate When using historyConversationsMaxDays, LPConversationHistoryMaxDaysDateType will decide if to filter by the conversations' start date or end date. When not providing a value, startConversationDate will be the default.
LPConversationViewParams → LPConversationHistoryControlParam → historyConversationsMaxDays: UInt? Allows to control the amount of conversations history that will be presented when opening the conversation screen by days.

The following additional conditions and configurations are required:*

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Yes No No No No

New Strings Localizations

New Strings Localization Description
conversationEmptyState There are currently no conversations at this time

New parameters

Branding and configuration parameters

Type: Parameters

Available to all customers? Yes

The Mobile App Messaging SDK v3.1 exposes additional branding configuration parameters.

The new parameters may control text, padding of conversation UI elements and more.

Parameter name and default value Description Image
LPConfig → csatYesNoButtonsCornerRadius: Double = 25 Makes CSAT Yes/No buttons corner radiuses customizable (through LPConfig).
LPConfig → messageStatusNumericTimestampOnly: Bool = false When false (default), timestamps will display information relative to when sent/distributed/read (e.g. 'sent 5 minutes ago'. When true, will show as numeric only (e.g. '11:32').
LPConfig → photoSharingMenuCameraImage: UIImage Custom Camera image in the photo sharing menu.
LPConfig → photoSharingMenuLibraryImage: UIImage Custom Library image in the photo sharing menu.
LPConfig → photoSharingOpenMenuImageButton: UIImage Photo sharing open menu custom button.
LPConfig → photoSharingCloseMenuImageButton: UIImage Photo sharing close menu custom button
LPConfig → conversationEmptyStateTextColor: UIColor() = black Color code for the empty state label

Key for items as follows:

Backend update: This feature requires an update to the backend.

Backend enablement: This feature requires items to be toggled on in the backend.

Backend configuration: This feature requires configuration in the backend.

SDK enablement: This feature requires items to be toggled on in the SDK.

SDK configuration: This features requires items to be configured in the SDK.


Version 3.0.0

iOS Messaging SDK

New functionalities

Certificate Pinning

Type: Security Feature

Available to all customers? No. Contact support for more details.

Certificate Pinning allows increased security on top of the commonly used SSL protocol for mobile apps. It assists to prevent certificate hijacks and mitigates implications from compromised certificate authorities. By using Certificate Pinning, apps have an additional validation of the server’s certificate.

The object certPinningPublicKeys was added to the object LPAuthenticationParams. Please note: using the new object without completing the onborading process will result in failures while trying to communicate with LivePerson’s servers.

The following additional conditions and configurations are required:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Yes Yes Yes Yes Yes
Xcode 9.2 and Swift 4.0.2 Support

Type: Developer Experience Feature

Available to all customers? Yes

The Mobile App Messaging SDK v3.0 was built and certified with Xcode 9.2 in Swift 4.0.2 and also supports Xcode 9.1.

List of certified and supported devices extended

The following devices are now also supported and/or certified to host our Mobile App Messaging SDK:

Operating system
Model iOS 9.x iOS 10.x iOS 11.x
iPhone 8 N/A N/A Certified
iPhone 8+ N/A N/A Certified
iPhone X N/A N/A Certified

A full list of supported and certified devices can be found in the Conversational Cloud System Requirements document.

Key for items as follows:

Backend update: This feature requires an update to the backend.

Backend enablement: This feature requires items to be toggled on in the backend.

Backend configuration: This feature requires configuration in the backend.

SDK enablement: This feature requires items to be toggled on in the SDK.

SDK configuration: This features requires items to be configured in the SDK.


Version 2.9.4

iOS Messaging SDK

Version 2.9.4 planned roll-out: December 21th 2017

Fixed issue

Symptom:

For iOS 11, the app might crash when closing the conversation screen while receiving new messages.

Fix:

Improved memory allocation for conversation screen

Xcode 9.2 and Swift 4.0.2 Support

Type: Developer Experience Feature


Version 2.9.3

iOS Messaging SDK

Version 2.9.3 planned roll-out: November 29th 2017

Version Specific System Requirements Document

These are the main feature releases available in the Mobile App Messaging SDK version 2.9 for iOS.

Accessibility Updates

Bug: Structured content focus for new messages

Symptom:

When consumer has opened the conversation screen, connectivity bar shows there is no connection and there is no connectivity to the messaging service. This symptom will occur in the following case:

Brands which implement UIDevice Extension with 'var modelName: String' that returns device name string containing white spaces.

Fix:

SDK will now trim the whitespace of the device modelName and connectivity will work as expected.

Bug: Structured content image resolution

Symptom:

UI overlaps of time stamp label over the message when sending a Link Preview message, while setting 'bubbleTimestampTopPadding' with a value.

Fix:

Overlap will no longer occur due to backend fixes.


Version 2.9.0

iOS Messaging SDK

Version 2.9 planned roll-out: November 12th 2017

Version Specific System Requirements Document

These are the main feature releases available in the Mobile App Messaging SDK version 2.9 for iOS.

New functionalities

Xcode 9.1 and Swift 4.0.2 Support

Type: Developer Experience Feature

Available to all customers? Yes

The Mobile App Messaging SDK v2.9 was built and certified with Xcode 9.1 in Swift 4.0.2.

Customers wishing to use the Mobile App Messaging SDK v2.9 must upgrade their Xcode to 9.1 and their Swift version to 4.0.2.

iPhone X Device Support

Type: Device Support Feature

Available to all customers? Yes

The Mobile App Messaging SDK v2.9 is now supported on the iPhone X.

New parameters

Branding and configuration parameters

Type: Parameters

Available to all customers? Yes

The Mobile App Messaging SDK v2.9 exposes additional branding configuration parameters.

New parameters may control text, padding of conversation UI elements and more.

Parameter name and default value Description Image
customFontNameDateSeparator: String? Custom font for Timestamp. Fonts that are not part of the iOS families must be defined in the App's Info.plist. fontname
dateSeparatorFontSize : UIFontTextStyle = .footnote Defines the Date Separator font text style. fontsize
dateSeparatorTopPadding: Float = 0.0 Defines the Date Separator top spacing. toppadding
dateSeparatorBottomPadding: Float = 0.0 Defines the Date Separator bottom spacing. bottompadding
remoteUserAvatarLeadingPadding: Float = 8.0 Defines the remote avatar leading spacing (from the left edge to the avatar). leadingpadding
remoteUserAvatarTrailingPadding: Float = 8.0 Defines the remote avatar Trailing spacing (from the avatar to the bubble). trailingpadding
bubbleTopPadding: Float = 10.0 Defines the bubble top spacing.
bubbleBottomPadding: Float = 10.0 Defines the bubble bottom spacing.
bubbleLeadingPadding: Float = 10.0 Defines the bubble leading spacing.
bubbleTrailingPadding: Float = 10.0 Defines the bubble trailing spacing.
inputTextViewTopBorderColor: UIColor = UIColor.clear Input TextView top border color. The default color is clear.
conversationSeparatorFontSize: UIFontTextStyle = .caption1 Defines the Conversation Closed separator font size. separatorfont
conversationSeparatorFontName: String? Custom font name for Conversation Closed separator. Fonts that are not part of the iOS families must be defined in App's Info.plist. separatorfontname
conversationSeparatorTopPadding: Float = 5.0 Defines the Conversation Closed Separator Top spacing. separatortoppadding
conversationSeparatorBottomPadding: Float = 7.0 Defines the Conversation Closed label to separator line spacing. separatorbottompadding
conversationSeparatorViewBottomPadding: Float = 7.0 Defines the conversation separator view bottom spacing. viewbottompadding
customRefreshControllerImagesArray:Array<UIImage>? = nil Array of images for creating the custom refresh controller. The controller will loop the images; two or more images are required for the array to take effect. imagesarray
customRefreshControllerAnimationSpeed:Float = 2 Custom refresh controller speed animation; defines the full images loop time. A smaller value will create a higher speed animation.
bubbleTimestampTopPadding: Float = 2.0 Defines the bubble Timestamp top spacing. timestamptoppadding
bubbleTimestampBottomPadding: Float = 5.0 Defines the bubble Timestamp bottom spacing. timestampbottompadding

Version 2.8.0

iOS Messaging SDK

Version 2.8 planned roll-out: September 27th 2017

Version Specific System Requirements Document

These are the main feature releases available in the Mobile App Messaging SDK version 2.8 for iOS.

Structured content enablement (GA in SDK)

Type: Feature

Available to all customers? No - early adopters only.

The beta version was released in v2.7 (for a full description, refer to the v2.7 release notes). The SDK delivers structured content enablement only; the feature will be made fully productive in October. In v2.8 the feature is enabled by default in the SDK.

The dictionary of template elements can be found here.

What does enablement mean?

Until rollout is complete, the structured content capability in SDK v2.7 was flagged as a Beta feature. The feature has an enablement toggle in the SDK which was disabled by default.

In SDK v2.8, it is enabled by default.

The toggle may be switched on or off as part of the SDK implementation within the host app, however it is highly recommended not to release the SDK in the host app with structured content enabled until end to end flow has been fully tested on the brand’s account.

Inapp Messaging SDK toggle -

  • iOS - enableStructuredContent

Related properties: Structured content

The following additional conditions and configurations are required:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Yes Yes Yes Yes Yes

Automatic messages for messaging

Type: Feature

Available to all customers? No - early adopters only.

Description

Automatic Messages (AKA System Messages) are predefined messages about events that occur in the conversation and are sent to the consumer as the events occur. Their purpose is to gain the consumer’s trust in the messaging channel, by setting expectations and giving the consumer visibility over the agent’s availability.

Auto messages are triggered upon specific events that are detected by the system (e.g. the consumer opens a new conversation, the conversation is transferred to another agent, the time to respond is updated, etc.). When the auto messages are sent, they are displayed to the consumer and the agent within the conversation transcript, and they also appear in the conversation’s history both on the consumer’s side and in LE.

Notes:

  • Messages are supported in all Conversational Cloud languages.

  • The content of each message can be edited by the brand.

  • Skill variation is supported, including enabling/disabling the messages for each skill.

  • Certain messages can have different parameters, such as the time the conversation is in the queue before the message is sent.

  • Dynamic text can be added to the messages, which will be replaced with a runtime value, such as agent name.

  • Auto messages do not affect whom the conversation is pending, nor the time to respond.

  • They are filtered out of the reports by default (unless manually included).

The following auto messages are supported:

  • New conversations

  • A consumer opens a conversation during working hours

  • A consumer opens a conversation for the first time ever, during working hours

  • Off hours

  • A consumer opens a conversation during off hours

  • A consumer opens a conversation for the first time ever, during off hours

  • The consumer sends the first message during off hours in an open conversation

  • Time to respond

  • The response time is updated manually by the agent

  • The consumer marks the conversation as urgent

  • The consumer dismisses the conversation urgent state

  • Consumer/Agent non-responsive

  • The consumer has not responded for X seconds/minutes/hours

  • The agent did not respond for X seconds/minutes/hours

  • Conversation is in queue for X mins/hours

  • Transfers and connection to agents

  • The conversation is transferred to a different skill

  • The agent returns the conversation to the queue

  • The consumer is connected to an agent

  • Conversation participants

  • Agent manager joins the conversation

  • The joined agent manager leaves the conversation

How to enable auto messages

Auto messages will be enabled for early adopters upon release. Please contact your account manager for more information.

IMPORTANT NOTES:

When auto messages are enabled, they are all enabled by default and all have the default text. It is advised to review them immediately and modify them to suit the brand’s needs.

Once auto messages are enabled, the SDK does not show toast messages which were presented in the past.

The following messages remain in the SDK :

  • Introduction message from the consumer’s first ever conversation. Make sure you do not have a collision between that message and auto messages.

  • Conversation resolved message

The following additional conditions and configurations are required:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Yes Yes Yes Yes Yes

Unread messages badge

When there are unread messages waiting for the consumer within the brand app, this information can be pushed to display in the app’s notification badge. Within the app, brands can develop their own visualization of a badge, such as a number, icon or other marker to show unread messages.

The unread messages number is passed to the SDK through LP Push service with every push.

IMPORTANT NOTES :

A push is sent to the last device which was registered to the LP push service, meaning that the unread messages indication can be fetched by only one device.

  • If the user is using two devices in parallel, the device that does not receive push events will receive updates of the unread message indicator only once that a message has been sent from that device and the push arrives to it.

  • In addition, if a conversation is ongoing in web messaging, then the push will not arrive to the device, since the web-socket is already open.

Getting the unread message badge counter

This API method uses a threshold mechanism of 10 seconds from the last time the badge retrieved from the server. If calling this method within less than 10 seconds, the counter will be returned from cache otherwise, it will be fetched again with new data. ​ ​ Parameters:

  • conversationQuery: conversationQuery: used to identify the related brand

  • completion: called once the operation ends successfully

  • failure: called once the operation failed

Related properties: Unread messages badge

Related API: Unread messages badge API

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Yes No No No Yes

Set icon for "Send" button

Brands are now able to choose and configure their own icon for the 'Send’ button for Mobile App Messaging conversations.

How to configure the send button icon:

  1. Ensure the SDK is set to use an icon and not text for the Send button (isSendMessageButtonInTextMode = false)

  2. Set the icon - sendButtonImage: UIImage

IMPORTANT NOTES:

The chosen icon must adhere to Apple’s guidelines for custom icons.

Related properties: Send button

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes

iOS11, Xcode 9 and Swift 4/Swift 3.2 Certification, and removal of iOS8 from supported list

The Mobile App Messaging SDK v.28 was built and certified with Xcode 9 in Swift 4/ Swift 3.2 for iOS11.

The following devices were certified with iOS11:

  • iPhone 6

  • iPhone 7

With this new certification, support for iOS8 was removed.

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes

Customizable bubble corners

The radius of the corners of message bubbles can now be configured by the brand. There are 8 different parameters to be configured: the 4 corners of the agent message bubble and the 4 corners of the consumer message bubble.

The corners of the scroll button may also be set.

Related properties: Bubble corners

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes

Reconnect attempt termination callback

The new callback will be invoked when all connection retries have failed:

Related callback: Reconnect attempt termination callback

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes

Logout - add completion closure/failure

This method is a destructive method that is typically used to clean a user’s data before a second user logs into the same device or simply to log the current user out.

The method carried out the following steps:

  • Unregisters from the push notification service.

  • Clears all SDK persistent data.

  • Cleans running operations (see destruct).

  • Invokes destruct() method

Parameters:

  • completion: a completion block for successful logout. The completion block will be invoked only if all logout steps succeeded.

  • failure: a failure block with a specified error for logout failure. The failure block will be invoked if at least one of the logout steps has failed.

Related API: Logout API

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes

New event - conversation interactions

The conversation interactions event communicates the Inactive time interval within seconds of the user last touching the screen. This interval applies to the scroll/messaging/action menus and any other general action on the conversation screen.

Note: If the screen is not active or the application is running in the background, the API will return -1.

Reset events:

  • send message

  • text edit change

  • scroll

  • viewDidAppear

  • appWillEnterForeground

  • tap

  • long press

  • WindowContainerViewController -

  • menuButtonClicked

  • WindowContainerViewController -

  • customButtonClicked

Clear events:

  • viewDidDisappear

  • appWillEnterBackground

Related API: Conversation interactions API

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes
  • Key for items as follows:

Backend update: This feature requires an update to the backend.

Backend enablement: This feature requires items to be toggled on in the backend.

Backend configuration: This feature requires configuration in the backend.

SDK enablement: This feature requires items to be toggled on in the SDK.

SDK configuration: This features requires items to be configured in the SDK.

New properties

Structured content

The following properties for structured content can now be configured:

Name Description Default
enableStrucutredContent: Bool Enable or Disable toggle for Structured Content feature in conversations. true
Bubble corners

The following properties for customizable bubble corners can now be configured:

Name Description Default
userBubbleTopLeftCornerRadius:Float = 8 Top left radius corner on the user bubble. Note (applies to all bubble corner properties): Setting the radius to a value greater than 0.0 causes the bubble's layer to begin drawing rounded corners on its background. This attribute affects the bubble's masking and it is recommended to use a corner radius which at maximum equals to half of the bubble's height. Setting a corner radius larger than half of the bubble's height will cause the text to cut visually. 8
userBubbleTopRightCornerRadius:Float = 8 Top right radius corner on the user bubble 8
userBubbleBottomLeftCornerRadius:Float = 8 Bottom left radius corner on the user bubble 8
userBubbleBottomRightCornerRadius:Float = 0 Bottom right radius corner on the user bubble 0
remoteUserBubbleTopLeftCornerRadius:Float = 8 Top left radius corner on the remote bubble 8
remoteUserBubbleTopRightCornerRadius:Float = 8 Top right radius corner on the remote bubble 8
remoteUserBubbleBottomLeftCornerRadius:Float = 0 Bottom left radius corner on the remote bubble 0
remoteUserBubbleBottomRightCornerRadius:Float = 8 Bottom right radius corner on the remote bubble 8

Unread messages badge

The following properties for the unread messages badge can be configured:

Name Description Default
unreadMessagesCornersRadius:Float = 8 Sets the corner radius of the unread messages cell 8

Scroll to bottom button

The following properties for the scroll to bottom button can now be configured:

Name Description Default
scrollToBottomButtonCornerRadius:Float = 20 Sets the top left and bottom left radius of the scroll to bottom button 20
scrollToBottomButtonBadgeCornerRadius:Float = 12 Sets the radius of the scroll to bottom badge corners 12

Send button

The following properties for the send button can now be configured:

Name Description Default
sendButtonImage: UIImage Custom send button image in the conversation screen Arrow icon

Controller bubble

The following properties for the controller bubble can now be configured:

Name Description Default
controllerBubbleTextColor : UIColor Color code for the text of the controller bubble UI color

New APIs

Conversation interactions API

func getInactiveUserInteractionTimeInterval(_conversationQuery: ConversationParamProtocol) -> TimeInterval

  • Returns: Inactive TimeInterval (Double)

Unread messages badge API

func getUnreadMessagesCount(conversationQuery: ConversationParamProtocol, completion: @escaping ( badgeCounter: Int)->(), failure: @escaping (_ error:NSError)→())

Logout API

func logout(completion: @escaping ()->(), failure: @escaping (_ error: Error)→())

####New Callbacks

Reconnect attempt termination callback

func LPMessagingSDKConnectionRetriesFailed(_error: NSError)


Version 2.7.0

iOS Messaging SDK

These are the main feature releases available in the Mobile App Messaging SDK version 2.7 for iOS. Version 2.7 roll-out: September 3rd 2017

Version Specific System Requirements Document

New functionalities

Structured content enablement (Beta)

*This version of the SDK delivers structured content enablement only; the feature will be made fully productive in October.

Description Structured message templates and elements, such as cards, images and deep linking buttons, turn a simple app interaction into a conversational user experience. They support a huge variety of messaging interactions and enable:

  • Clearer communication with bots, so commands are more easily understood.
  • The ability to trigger actions, such as deep-linking navigation, confirmations and transactions, directly from a conversation
  • Improved sales through product promotion and simplification of the purchasing process
  • An overall improved and more efficient service - just what consumers expect from messaging

SDK 2.7 structured content capabilities Structured content capabilities are being gradually rolled out during September-October 2017. Dedicated documentation for structured content will be published as part of the gradual rollout.

Mobile App Messaging SDK v2.7 has a structured content renderer for the following elements:

  • Image
  • Text
  • Button
  • Clicks (actions and meta-data)

Full list of elements dictionary will be published during the gradual rollout.

What does enablement mean? Until rollout is complete, the structured content capability in SDK v2.7 is flagged as a Beta feature. The feature has an enablement toggle in the SDK which is disabled by default.

The toggle may be switched on as part of the SDK release within the host app, however it is highly recommended not to release the SDK in the host app with structured content enabled until end to end flow has been fully tested on the brand’s account.

In addition to structured content enablement, SDK v2.7 also has a few branding properties and one callback which can be configured and used.

The following additional conditions and configurations are required:*

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
Yes Yes Yes Yes Yes
Tablet split-screen supportability

To ensure that consumers using tablets can connect with brands while enjoying the tablet experience, brands can enable tablet applications to host the conversation window within an application page, as a fragment for Android or viewcontroller for iOS.

Until now the SDK has provided support for a full page layout for messaging conversations. SDK 2.7 provides full support for conversations in a split-screen with viewcontroller / fragment modes. Brands can own the wrapper and host the conversation in split-screen.

A full list of supported and certified devices can be found in the Conversational Cloud System Requirements document. The following additional conditions and configurations are required:*

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A N/A
Connectivity status bar

The connectivity status bar ensures consumers are always kept informed about the status of their connection, including:

  • Online/ Offline status
  • Attempting to connect to Conversational Cloud service
  • Continuing attempt to connect to Conversational Cloud service
  • Retry

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A N/A
Secure form branding enhancements

To enable brands to adjust the secure form visuals to accurately reflect their brand experience, the following configurations are now available:

  • Secure form fonts
  • Bubble loader indicator color

The secure form is essentially a web page running in a web view, within the messaging conversation. As such, the web page may run predefined fonts which can be set by the SDK remotely.

By default, the font is set to Helvetica. However brands can choose from any of the fonts on the following secure form supported fonts list:

Aria, Arial, Arial Black, Bookman Old Style, Comic Sans MS, Courier New, Garamond, Georgia, Helvetica, HelveticaNeue, HelveticaNeue-Light, Impact, Lato, Lucida Console, Lucida Sans Unicode, MS Sans Serif, MS Serif, Palatino Linotype, Tahoma, Times New Roman, Trebuchet MS, Verdana.

The following additional conditions and configurations are required*:

  1. Secure forms should be configured and set on LE
  2. For fonts settings and bubble loading indicator :
Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes
Message selection

When the consumer selects a message with a long tap, the background color of the message will change, to indicate to the user that it has been selected. The color of the selected message can be configured by the brand.

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes
App level DB encryption

To protect and encrypt conversation data in DB on the application level, Jailbroken iPhone conversation data in DB is now protected with an app level key for encryption. Every message is now encrypted and decrypted in RunTime.

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A N/A
View-only mode

The SDK now offers a new RunTime mode in addition to the edit mode, known as view-only mode. View-only mode means consumers can see the full conversation, but the keyboard and text input area are not displayed. In this mode, new messages can arrive, but the consumer will not be able to respond. This mode gives brands greater control over how consumers are able to use messaging within the brand’s app. Future SDKs will support additional modes.

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes
Photo sharing permissions callback

When a consumer shares photos during a conversation, a banner appears asking them to grant permission for the app to have access to their camera and/ or photo library.

If the consumer refuses permission, the SDK sends a callback to the host app. Brands are then able to run a customized and branded banner with a second request for the consumer to grant the appropriate photo sharing permissions.

In order to present a custom banner, brands can create and present a new UIAlertViewController as well as a UIView, and present them on the SDK container ViewController or the root UIWindow.

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes

Key for items as follows:

Backend update: This feature requires an update to the backend. Backend enablement: This feature requires items to be toggled on in the backend. Backend configuration: This feature requires configuration in the backend. SDK enablement: This feature requires items to be toggled on in the SDK. SDK configuration: This features requires items to be configured in the SDK.

New properties

Structured content

The following properties for structured content can now be configured:

Name Description Default
structuredContentBubbleBorderWidth: Double Structured Content bubble border width in pixels. 1.0
structuredContentBubbleBorderColor: UIColor Structured Content bubble border color. #004dc9
enableStrucutredContent: Bool Enable or Disable toggle for Structured Content feature in conversations. false
Connectivity status bar

The following properties for the connectivity status bar can now be configured:

Name Description Default
connectionStatusConnectingBackgroundColor: UIColor Color code for the background of the connectivity status bar while connecting. #f5f5f5f2
connectionStatusConnectingTextColor: UIColor Color code for the text of the connectivity status bar while connecting. #46474a
connectionStatusFailedToConnectBackgroundColor: UIColor Color code for the background of the connectivity status bar when connection fails. #000000cc
connectionStatusFailedToConnectTextColor: UIColor Color code for the text of the connectivity status bar when connection fails. UIColor.white
Secure form branding

The following properties for the secure form branding can now be configured:

Name Description Default
secureFormCustomFontName: String Secure form custom font name to be used when the user is completing the secure form. If not set, the default font is Helvetica. Helvetica
secureFormHideLogo: Bool Hiding the secure form logo at the top of the form. false
secureFormBubbleLoadingIndicatorColor: UIColor Secure form loading indicator color when loading the form before opening. #46474a
Message selection branding

The following properties for the user avatar can now be configured:

Name Description Default
remoteUserBubbleLongPressOverlayColor: UIColor Color of the remote user's bubble overlay when the user long taps the bubble. The overlay will appear as long as the menu controller appears on the bubble. When the menu is dismissed, the overlay will disappear too. In order to show the overlay, “enableBubblesOverlayOnLongPress” should be true. UIColor.black
remoteUserBubbleLongPressOverlayAlpha: Float The Alpha of the remote user's bubble overlay when the user long taps the bubble. The value can be 0.0 - 1.0. The overlay will appear as long as the menu controller appears on the bubble. When the menu is dismissed, the overlay will disappear too. In order to show the overlay, enableBubblesOverlayOnLongPress should be true. 0.3
userBubbleLongPressOverlayColor: UIColor Color code for the background of the visitor bubble. UIColor.black
userBubbleLongPressOverlayAlpha: Float Color code for the outline color. 0.3

New classes

LPConversationViewParams

This class represents an object to determine the conversation mode, filter and container, for example, Container, Window or ViewOnly.

class LPConversationViewParams: NSObject {
 	var conversationQuery: ConversationParamProtocol!
    var containerViewController: UIViewController? // nil = WindowMode
 	var isViewOnly = false
}
LPAuthenticationParams

This class represents an object to determine the properties of an authenticated connection. If using an authenticated connection, this parameter must be passed: LPAuthenticationParams supports Code Flow login or Implicit Flow login. For Implicit Flow, pass 'jwt' parameter only. For Code Flow, pass 'authCode' and 'redirectURI' only.

class LPAuthenticationParams: NSObject {
    var authenticationCode: String? // Code Flow authentication
    var jwt: String? // Implicit Flow authentication
 	var redirectURI: String? // Code Flow authentication
}

New APIs

View-only API
func showConversation(_ conversationViewParams: LPConversationViewParams, authenticationParams: LPAuthenticationParams? = nil)

This method is used to open the conversation screen.

New reconnect API
func reconnect(_ conversationQuery: ConversationParamProtocol, authenticationParams: LPAuthenticationParams

When using SSO in an authenticated connection, an auth-code is passed to the SDK. The session in this case might have an expiration date. To reconnect with a new token, use the 'reconnect’ API and pass the new token.

This method reconnects the conversation's connection for a conversation query and reconnects open related webSockets and sync the conversation with its latest updates.

Deprecated APIs

  func showConversation(_ conversationQuery: ConversationParamProtocol, authenticationCode: String? = nil, containerViewController: UIViewController? = nil)

This method has been deprecated in SDK version 2.7. Use showConversation(_ conversationViewParams: LPConversationViewParams, authenticationParams: LPAuthenticationParams? = nil)

    func reconnect(_ conversationQuery: ConversationParamProtocol, authenticationCode: String)

This method was deprecated since SDK version 2.7.0. Use reconnect(_ conversationQuery: ConversationParamProtocol, authenticationParams: LPAuthenticationParams]

New callbacks

Photo sharing permissions callback
optional func LPMessagingSDKUserDeniedPermission(_ permissionType: LPPermissionTypes)
CSAT launched callback
   optional func LPMessagingSDKConversationCSATDidLoad(_ conversationID: String?)
CSAT skipped callback
   optional func LPMessagingSDKConversationCSATSkipped(_ conversationID: String?)

New strings

Structured content
"newStructuredContentMessage" = "New message";
"structuredContentAccessibilityMap" = "Map";
Connectivity status bar
"connectionStatusBarConnecting" = "Connecting...";
"connectionStatusBarStillConnecting" = "Still connecting...";
"connectionStatusBarFailedToConnect" = "Failed to connect to the server.";
Accessibility
"structuredContentAccessibilityMap" = "Map";

Version 2.5.0

iOS Messaging SDK

These are the main feature releases available in the Mobile App Messaging SDK version 2.5 for iOS.

Version 2.5 roll-out: July 2nd 2017

Version Specific System Requirements Document

New functionalities
Custom fonts

in order for consumers to enjoy the full brand experience while messaging in-app, brands are able to configure certified operating system fonts to appear in the messaging window. The fonts can be used across all elements, or only for the font within the message bubble.

The SDK also supports the use of a brand’s own customized fonts (although these are not certified).

Custom fonts are not supported for Native iOS properties such as:

  • Activity mode - Overflow menu

  • Popup messages

The following additional conditions and configurations are required:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes
Tablet supportability

To ensure that consumers using tablets can connect with brands while enjoying the tablet experience, Mobile App Messaging is now supported on these devices, in window mode and activity mode, and in both portrait and landscape layouts.

All supported devices have gone through automation tests and all certified devices have gone through both automation and manual testing.

Device iOS 8.x iOS 9.x iOS 10.x
iPad 5 (2017) N/A N/A Certified

A full list of supported and certified devices can be found in the Conversational Cloud System Requirements document.

Connectivity improvements

The user experience when connecting to the app has been significantly improved. When users first log-in, and during all subsequent attempts, the login process is now much smoother and faster.

In addition, other aspects such as feature and conversation history will also be more rapid as a result of the improvements.

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A N/A
Default Agent Avatar

The SDK now offers brands a to use a default agent avatar of their own.

Related properties: User avatar

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes
  • Key for items as follows: Backend update: This feature requires an update to the backend. Backend enablement: This feature requires items to be toggled on in the backend. Backend configuration: This feature requires configuration in the backend. SDK enablement: This feature requires items to be toggled on in the SDK. SDK configuration: This features requires items to be configured in the SDK.
Photo Sharing Button Colors

Brands now have the ability to set camera button colors in addition to the Send button colors.

Related properties: Photo sharing

The following additional conditions and configurations are required*:

Backend update Backend enablement Backend configuration SDK enablement SDK configuration
N/A N/A N/A N/A Yes

New properties

The following properties of the secure form bubble on the agent side can now be configured:

Custom Fonts
Name Description Example Default
customFontNameConversationFeed: String? = nil The font name for all elements of the conversation feed. CustomFonts Empty (use the device font)
customFontNameNonConversationFeed: String? = nil The font name for all elements that are not in the conversation feed. CustomFonts Empty (use the device font)
Photo Sharing

Configuring Camera's button colors

Name Description Example Default
cameraButtonEnabledColor The camera button color when in enabled mode in the conversation screen. The button will be presented only if the photo sharing feature is enabled. CameraColor #0362AC
cameraButtonDisabledColor The camera button color when in disabled mode in the conversation screen. The button will be presented only if the photo sharing feature is enabled. CameraColor #8B8A8F
User Avatar
Name Description Default
remoteUserDefaultAvatarImage The default avatar image of the remote user. When assigned, this image will disable remoteUserAvatarBackgroundColor and remoteUserAvatarIconColor configurations. If the remote user has an avatar image in his profile, this attribute will be ignored. nil

Version 2.3.1

iOS Messaging SDK

Mobile App Messaging SDK v2.3.1 for iOS contains the following bug fix:

Symptom:

For one minute after the consumer had navigated away from the conversation window, any arriving messages would not display. They would only appear in the conversation window after the minute had passed.

Fix: The following capability which was first introduced in v2.3 has been disabled to avoid this bug : “Presence enablement for photo sharing - beta*”.


Version 2.3.0

iOS Messaging SDK

Version Specific System Requirements Document

These are the main feature releases available in the Mobile App Messaging SDK version 2.3 for iOS.

iOS Developer Enhancements

The Conversational Cloud in-app SDK is fully compatible with the most recent versions of Apple’s developer tools, Xcode 8.3 and Swift 3.1.

The SDK is also compatible with CocoaPods, a dependency manager for Swift and Objective-C Cocoa projects. CocoaPods has thousands of libraries and is used in over 2 million apps. It can help you scale your projects elegantly and provides a standard format for managing external libraries.

Note: Sample Apps are now using CocoaPods.

CocoaPods Installation

  1. Install cocoapods using the following command:

    $ gem install cocoapods

  2. Navigate to your project folder and init new pod using the following command:

    $ pod init

  3. Podfile should be created under your project’s folder.

    To integrate Liveperson Messaging SDK into your Xcode project using CocoaPods, specify it in your Podfile:

    source 'https://github.com/LivePersonInc/iOSPodSpecs.git' platform :ios, '8.0' use_frameworks!

    target '' do pod 'LPMessagingSDK' end
  4. Run the following command in the terminal under your project folder:

    $ pod install

  5. In project settings, navigate to the Build Phases tab, and click the + button to add a New Run Script Phase. Add the script below in order to loop through the frameworks embedded in the application and remove unused architectures (used for the simulator). This step is a workaround for the known iOS issue and is necessary for archiving your app before publishing it to the App Store.

bash "${SRCROOT}/Pods/LPMessagingSDK/LPMessagingSDK/LPInfra.framework/frameworks-strip.sh"
Secure form for Mobile App Messaging

The secure form gives consumers the confidence to submit sensitive information, such as credit card data and social security numbers, while messaging in-app. The form also enables agents to safely carry out secure processes, such as payment, identification and authorisations.

The form can be tailored to match the Mobile App Messaging experience and has a time-out expiry, for added security.

This feature requires consulting services support. For more information, please refer to the Conversational Cloud secure form for messaging documentation.

Release Notes Secure Form

Related properties: Agent PCI bubble Related strings: PCI

List of certified and supported devices extended

The following devices are now also supported and/or certified to host our Mobile App Messaging SDK:

iPhone

  Operating system  
Device iOS 9.x iOS 10.x
iPhone SE Supported Supported

iPad

  Operating system    
Device iOS 8.x iOS 9.x iOS 10.x
Air 2 (2014) Supported Supported Supported
Mini 4 (2015) N/A Supported Supported
iPad Pro (2016) N/A Supported Supported
iPad 5 (2017) N/A N/A Supported
Presence enablement for photo sharing - beta*

Presence enablement for photo sharing provides consumers with the ability to receive notifications while uploading a photo, whether they remain within the app or keep it running in the background.

The Web Socket remains open for a maximum of 60 seconds (using Background Task) when the app or conversation window moves to the background. This scenario is also applicable for non photo sharing flows.

Photo sharing is a beta feature.


Version 2.0

iOS Messaging SDK

Version Specific System Requirements Document

These are the main feature releases available in the Mobile App Messaging SDK version 2.0.

Photo sharing for iOS and Android (Beta)

Consumers can now add photos directly into a messaging conversation, enabling them to describe an item and share it with their agent. Photo sharing supports multiple image sizes, and all shared images are logged in All Conversations. This feature is available for Facebook messenger, web messaging, and Mobile App Messaging, on both Android and iOS.

Release Notes Photo Sharing

Accessibility for messaging

The Mobile App Messaging SDK now supports accessibility WCAG Level A and Level AA and CATO.

Release Note Accessibility

Brands can now configure their own regular expressions to create hyperlinks which link directly to relevant pages or actions.

Expressions can be configured for the following commands:

  • Call
  • Email
  • URL

Release Notes Hyperlinks

In-conversation shortcut to new messages

A shortcut can now be configured to appear within the conversation when there are new messages available. This saves the consumer time when scrolling within messaging conversations. Clicking on the shortcut navigates the visitor straight to the new messages so they can quickly and easily continue the conversation.

Release Note In-conversation

Set icon for send button

Brands now have the ability to replace the Send button in a messaging conversation with a paper plane (Android) or arrow (iOS). This icon can be customized to match the brand’s colors.

When sending a link within an Mobile App Messaging conversation, a preview of the link page will display within the thread, giving the consumer a useful overview of the link content.

Ability to remove resolved divider in thread

Brands are now able to configure the removal of the resolved divider within a thread. The divider usually appears underneath the system message noting that the conversation has been resolved. This creates the feel of one ongoing, undisrupted conversation for consumers using messaging.

Release Notes Ability to Remove Release Notes Ability to Remove

Add callback to SDK for agent picture click

In order to provide brands with greater insight into consumer activity within the messaging window, Conversational Cloud will provide a callback when a consumer clicks on the agent’s picture in the conversation. The brand can then decide what action they would like to take, for example opening an agent profile or enlarging the picture.

Release Notes Add Callback

Enhancement: Configure CSAT Timeout

Brands can now configure for how long a CSAT form will be displayed to the consumer after the messaging conversation is resolved by the agent. This applies to consumers who exit the conversation before it is resolved.

Brands can select from the following options:

  • The CSAT form never times out, and will be displayed to the consumer when they reopen the conversation regardless of the amount of time that has passed since the conversation was resolved.

  • The number of minutes from when the conversation was resolved to when the form will no longer be displayed.