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.19.0

iOS Messaging SDK

Release Date: Mar 29, 2024

Environment requirements

The iOS Mobile Messaging SDK version 6.19.0 is supported on iOS versions 13 through 17.

This XCFramework was compiled with Swift version Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51), which means it will work Swift version 5.7.1 and above.

XCFramework is supported on CocoaPad versions 1.13.0 and greater.

Bugs fixed

  • Fix the conversation screen is not automatically scrolling to the bottom after a date from the date picker is selected.
  • Fix Unstable UI on Date Picker / Appointment List when the device is rotated to landscape on bigger screen devices. The date picker is no longer using the deprecated portrait forcing mechanism for small-screen devices.
  • Fix SDK is showing an empty navigation bar animating out of the screen after the date selection is confirmed.
  • Fix disabling enableLinkPreview disables enableRealTimeLinkPreview
  • Fix the appointment list does not highlight the focused date correctly in some cases
  • Fix Buttons fill available space when rendering the structured content.
  • Fix SDK ignores URLs when the message contains a hyperlink
  • Fix SDK shows an Unread message notification If successive long messages are received while the screen is still scrolling.
  • Fix the behavior of Voice Over to let users focus on individual cards instead of only the whole carousel.
  • Fix the background color is not transparent for the image of the agent avatar while the agent is typing.
  • Fix the margin for the text label inside Structured Content, It is no longer rendered closer to the bottom of the container.
  • Fix Cobrowse invitation having a default white background even on dark conversation background color.

Features

  • SDK can now render the Welcome Message that has been set on Window Configuration on Mobile Engagement. Reach out to your account representative to enable and adjust.
  • SDK now allows users to switch to picture-in-picture mode. This allows users to minimize the call view while the call is still active and see/interact with the chat view.

Picture in Picture is supported on iOS 14.3+. Previous versions will default to full screen call view.

Enhancements


Version 6.18.1

iOS Messaging SDK

Release Date: Mar 22, 2024

Environment requirements

The iOS Mobile Messaging SDK version 6.18.1 is supported on iOS versions 13 through 17.

This XCFramework was compiled with Swift version Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51), which means it will work Swift version 5.7.1 and above.

XCFramework is supported on CocoaPad versions 1.13.0 and greater.

Bugs fixed

  • Fix for privacy manifest containing unneeded reason codes for File Timestamp Section

Version 6.18.0

iOS Messaging SDK

Release Date: Jan 31, 2024

Environment requirements

The iOS Mobile Messaging SDK version 6.18.0 is supported on iOS versions 13 through 17.

This XCFramework was compiled with Swift version Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51), which means it will work Swift version 5.7.1 and above.

XCFramework is supported on CocoaPad versions 1.13.0 and greater.

Bugs fixed

  • Fix callbacks Index "LPMessagingSDKConnectionStateChanged" to only return "true" once when the view is ready (after the queries to UMS and history API are completed).
  • Fix when the container view controller has a translucent navigation bar, the toast banner within the SDK on the conversation screen was not displaying properly.
  • Fix and apply all the following paddings for all consumer/remote messages:

    remoteUserAvatarLeadingPadding, remoteUserAvatarTrailingPadding, bubbleTimestampTopPadding, bubbleTimestampBottomPadding, bubbleTopPadding, bubbleBottomPadding, bubbleLeadingPadding, bubbleTrailingPadding

Features

  • "Offline Messaging": When enabled, lets consumers to interact with messaging screen immediately instead of having them waiting for loading process to be completed and prevents showing a blocking loading view.
    1. Attribute "offlineMessagingEnabled": true/ false
    2. Attribute "pcsBehaviorForOfflineMessages": 0 as default value. Possible values and functions:

      1 - remove offline messages from dialog and do not send them to UMS, continue with PCS dialog

      2 - resolve active PCS dialog and send offline messages to a new conversation

      0 / other values - do nothing, just send offline messages to the same dialog

    3. Other "UI attributes": offlineLoaderColor, offlineLoaderBackgroundColor, offlineLoaderCornerRadius, offlineLoaderWidthPercentage, offlineLoaderHeight, offlineLoaderAnimationSpeed.
  • Add a "speech recognition" feature to trigger the device's speech-to-text capability. Once enabled, a custom speech recognition button will appear in the input-text view area. Please ensure to include the required permissions to your application.
    1. Attribute "enableSpeechRecognition": true/ false to enable this feature.
    2. Attribute "speechRecognitionInputDurationInSeconds": default 10.0 (seconds). Max duration of input inactivity for speech recognition to be automatically disabled.
    3. New localized strings key:

      A11Y related: "accessibilityVoiceRecognitionButton", "accessibilityVoiceRecognitionButtonActivationHint", "accessibilityVoiceRecognitionButtonDeactivationHint", "accessibilityVoiceRecognitionButtonErrorHint", "accessibilityVoiceRecognitionInsertedText"

      UI related: "voiceRecognitionPlaceHolder"

Enhancements

  • Allow style changes on Welcome Message options for quick replies. Please check our guide for more information.

Enhancements / Features

  • Add privacy manifest files to describe the data LP iOS Messaging SDK collects and the reasons required APIs it uses.

Version 6.17.0

iOS Messaging SDK

Release Date: Dec 20, 2023

Environment requirements

The iOS Mobile Messaging SDK version 6.17.0 is supported on iOS versions 13 through 17.

This XCFramework was compiled with Swift version Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51), which means it will work Swift version 5.7.1 and above.

XCFramework is supported on CocoaPad versions 1.13.0 and greater.

Bugs fixed

  • Fix a bug where Secure Forms submissions are not sent into a new socket if the token expires while the form is open.

Features (internal)

  • Added internal logging metrics (OpenTelemetry) to collect SDK performance data. This feature is turned off by default, and we only enable sampling data collection for specific brands in response to performance enhancement request.

Version 6.16.0

iOS Messaging SDK

Release Date: October 26th, 2023

Environment requirements

The iOS Mobile Messaging SDK version 6.16.0 is supported on iOS versions 13 through 17.

In the previous version, it was noted that the SDK would be updated to the minimum iOS target of iOS 13. The minimum target for this version is now 13 and it will no longer compile with less than 13. There is no support even at a compilation level for iOS 12 from this version on.

This XCFramework was compiled with Swift version Apple Swift version 5.7.1 (swiftlang-5.7.1.135.3 clang-1400.0.29.51), which means it will work Swift version 5.7.1 and above.

Apple silicon is supported on this version

XCFramework is supported on CocoaPad versions 1.13.0 and greater.

Accessibility Bugs fixed / Enhancement

  • The focus of the screen reader when structured content is being read is now moved to the item that it is reading instead of staying on the whole cell when a new message comes in.
  • When using accessibility options structured content borders could be incorrect and have been fixed.

Bugs fixed

  • Several changes to both appointment list and date picker content which will resolve issues of improperly set dark mode colors as well as setting colors when flipping between dark and light mode without relaunching the content.
  • Resolved an issue where in some scenarios call accept and rejoin buttons for cobrowse would be square instead of circles.
  • Resolved an issue where the agent typing indicator would not show after the user opened a link and then returned.
  • Resolved an issue where the unread message count could be incorrect after PCS questions were answered by the user and the user would log out and back in.
  • Resolved an issue where the message status (sent, delivered, read, etc.) was not updating correctly if the conversation had files sent from web messaging and then opened in the SDK.
  • Resolved an issue where the survey bot would still show in the header after the survey was closed.
  • Resolved an issue where older message timestamps would not always be updated and could go stale if the cells were not reloaded yet.
  • Resolved an issue where the unread message count in the scroll to bottom button could be cut off if the message was only one character.
  • Resolved an issue where there could be a crash while scrolling through an appointment list days list.
  • Resolved an issue where the agent name would not show in conversation history after logging out and logging in at the end of the conversation where it shows the close reason.
  • Resolved an issue where a link could not be tapped while the keyboard was open.
  • Resolved issues where unread message count would be cleared if pull down to fetch history was completed or the file attachment menu was opened.
  • Removed a duplicated navigation bar in the file preview screen.

Features

  • Added new PKCE Oauth Support which contains a new method getPKCEParams()and a new field in the LPAuthenticationParams object the codeVerifier. Further details will be contained in the LPAuthenticationParams and function documentation. LPAuthenticationParams getPKCEParams

Enhancements

  • Updated table view headers to align with footers to prevent discrepancies.
  • Compilation support for iOS 12 has been fully dropped to allow the use of newer Apple API within the development of the iOS SDK.
  • In-app push notifications now dismiss on tap and not just on swipe up to dismiss.
  • The SDK now has added functionality to be used through SPM as well as the previously existing manual and Cocoapod options. There are further details on the quick start page. QuickStart
  • Due to the change of the minimum iOS version target to 13 several availability flags have been removed internally as they are no longer necessary.
  • Added a digital signature to the iOS SDK to be identifiable by brands build processes.

Version 6.15.0

iOS Messaging SDK

Release Date: August 17, 2023

Environment requirements

The iOS Mobile Messaging SDK version 6.15.0.895 is supported on iOS versions 13 through 16.

This version will be the last version where the iOS target is set to iOS 12. This version can be compiled with iOS 12 while not being supported. Future versions will have iOS targets set to 13 and will no longer allow compilation with iOS 12.

This XCFramework was compiled with Swift version Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1), which means it will work Swift version 5.5 and above.

M1 processor is supported for use with this version.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Accessibility Bugs fixed / Enhancement

  • If a user is typing in the text input area with voice-over on the voiceover focus would shift to onto a new message instead of staying on the text input area when a Structured Content item was sent by an agent.
  • All headings now contain heading markups.

Bugs fixed

  • Scroll to bottom button doesn't appear after opening a file and returning to the SDK.
  • Files are duplicated when the app is force closed and the upload hasn't been completed.
  • App crash when a conversation is resolved while a file is mid-upload.
  • Metadata is incorrect when sending a Date Picker selection (single or range).
  • Date format in the date picker ignores the LPConfig language set.
  • Structured Content cards may change size when going from background to foreground or when opening a link and then returning to the SDK.
  • Image size changes when rotating the device back and forth.
  • Missing agent name on resolve message if the conversation was resolved by an agent.
  • Date picker footer will always be in English
  • Sending agent messages with markdown links break the message bubble in some situations
  • Files duplicate when a user selects a Quick Reply option while the file is still uploading.
  • In some situations, while archiving and there is no set background color for a structured content item it would have a grey background.
  • App crashes when repeatedly sent to background and foreground while the conversation history params are set to CLOSED and the conversation is closed.
  • Unread message divider appears twice or shows the wrong count.
  • Internal getEngagement refresh for monitoring API when using the JWE solution will no longer refresh with an existing token which can potentially be expired.
  • On newer messaging backends consumer messages could duplicate more frequently based on incoming events.
  • Appointment list slot times localization doesn't reflect language correctly.
  • Scroll to bottom button is shown and tappable when conversation history is empty.
  • Appointment List localization is not correct on a fresh launch of a fresh install.

Features

  • History fetching logic has been updated to support a new data masking feature which allows you to select how long until the masking will take effect on sensitive data on an account level. This functionality is not set in the SDK and is set in the account backend. Reach out to your account representative to enable and adjust.
  • Welcome message is now further able to be customized at points it previously was unable to be. It can now be updated more frequently allowing for specific consumer targeting. Further details will be in the welcome message sections of the documentation. - setWelcomeMessage

Enhancements

  • Several removals of outdated and no longer used code.

Version 6.14.0

iOS Messaging SDK

Release Date: June 28, 2023

Environment requirements

The iOS Mobile Messaging SDK version 6.14.0.888 is supported on iOS versions 13 through 16.

This XCFramework was compiled with Swift version Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1), which means it will work Swift version 5.5 and above.

M1 processor is supported for use with this version.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Accessibility Bugs fixed / Enhancement

  • Add VoiceOver support for ‘link’ hint when the consumer receives a message with a link from an agent while the consumer screen position is not at the bottom.
  • Avoid scroll-to-bottom button automatically highlighting by VoiceOver in various situations and only will be highlighted by touching manually.
  • Make sure VoiceOver focus on the appropriate message position after tapping the scroll-to-bottom button.
  • Make link within consumer or agent messages tappable by voice over when link-preview is turned off.

Accessibility Features

  • Queue new message announcement. Announce the new messages sequentially or not based on the feature flag announceEventsSequentially.

Bugs fixed

  • Render Structured Content fully in different situations
  • Some app-crash reported in iOS SDK v6.9, fixed potential app-crash related to “LPMessagingSDK.Dialog.logDescription.getter”.
  • Display correct unread message bubble divider in the conversation screen after log-out and re-login for ongoing conversation.
  • Fixed SDK branding and configuration spelling error: appointmetnCustomOutputDateFormat -> appointmentCustomOutputDateFormat, appointmentConfirmationViewBackroundColor -> appointmentConfirmationViewBackgroundColor.
  • Prevent the SDK from creating a new conversation with a blank first message due to subscription on the wrong dialog ID.
  • Avoid calling LPMessagingSDKConversationEnded delegate method multiple times for the same conversation.
  • Prevent two consecutive pusher unregister API requests from SDK.

Features

  • Support to show Initial message as part of Conversation on Conversational Cloud has been added. This improves Agents' context and remove the extra explanation for consumer. This also allows AI automation like intents and dynamic routing, to quickly determine the next best action that the conversation should take. 'Messaging.Send_Consumer_Message_Metadata' should be enabled on Acount Configurations.
  • Support for supplying JWT/JWE tokens to getEngagement (with additional authParams) method. Refers to Advanced Features\Campaigns page for sample code snippet. !Important: This method only works with the Implicit and Code Flow authentication method.

Enhancements

  • Parsing HTML tags using the HTML data has been replaced by custom tag parser, to prevent rendering the Controller bot Welcome Message multiple times.
  • SDK added additional encrypt/decrypt process with Secure Enclave-stored key whenever SDK read/write data from the keychain.

New configurations

announceEventsSequentially

Enable or disable queue new message announcement. This controls whether VoiceOver announces new messages sequentially or not.

  • Type: Bool
  • Default Value: true

Version 6.13.0

iOS Messaging SDK

Release Date: April 30, 2023

Environment requirements

The iOS Mobile Messaging SDK version 6.13.0.873 is supported on iOS versions 13 through 16.

This XCFramework was compiled with Swift version Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1), which means it will work Swift version 5.5 and above.

M1 processor is supported for use with this version.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Bugs fixed

  • Voice over does not announce Structured Content with only one Basic Element. It now announces "This message has extra content" and content is announced on focus.
  • Voice over announces same text twice when Structured Content with only one non layout item in the container. Voice over now announces "This message has extra content" and content is announced on focus.
  • Welcome Message does not display every time despite frequency is set to .everyConversation
  • Multiple consumer IDPs feature does not support JWKS flow.
  • Conversation ID is stuck or wrong on GetEngagement if Consumer resolves the conversation and starts another conversation without leaving the conversation screen.
  • Keychain Item Might have wrong accessibility attribute If it was previously saved.
  • Crash might occur while scrolling using the scroll to bottom button.
  • Conversation Screen shows history on relaunch after history is cleared on non-window mode.
  • Date Picker allows user the confirm range selection without selecting dates.

Enhancements

  • Date Picker, month/year selection is now opens with already selected month and stays in sync with focused month.
  • Date Picker now automatically scrolls the current or closest date in the selection range.

Version 6.12.0

iOS Messaging SDK

Release Date: March 07, 2023

Environment requirements

The iOS Mobile Messaging SDK version 6.12.0.870 is supported on iOS versions 13 through 16.

This XCFramework was compiled with Swift version Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1), which means it will work Swift version 5.5 and above.

M1 processor is supported for use with this version.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Bugs fixed

  • Removed hang risk warning on socket library by refactoring the threading.
  • Some situations where in-app push notifications could not appear if the root controller was reset were fixed. In-app notifications should always appear now.
  • After clearing history, the history should no longer be able to be pulled. The history could still be fetched for up to 10 minutes due to some rounding in the history API. This has been prevented.
  • Long pressing links should no longer result in crashes intermittently.
  • Sending markdown in an unsupported manner should no longer result in a crash when fetched from history.
  • Submitted Secure Forms will no longer have a lingering border-line from the removed field.
  • Certain scenarios could cause the unread message divider to reappear and iterate even after reading all messages. This has been resolved.
  • A crash could occur if a consumer left something typed into the input field without sending it and then closed the view within unauth messaging. This has been prevented.
  • Fixed setUserProfile method being called unnecessarily if registerPushNotifications was invoked with an alternateBundleId.

Features

  • Support for Multiple IDP has been added to the SDK. The host app must supply an issuer display name into the authentication params if the default IDP is not used. Further details LPAuthenticationParams

Enhancements

  • Previously, the SDK would make more requests than needed to the push notification server to reset the unread count. This has been refactored to reduce the number of requests and only to be called when needed.
  • Updates have removed warnings that may fire in the Xcode console about "NSKeyedUnarchiveFromData."
  • Many classes have been updated to conform up to date Apple standards. This should show fewer warnings appearing in the SDK or console logs.
  • Improvements have been made to filesharing to allow new configurations of the photo compression as well as photo height and width. More details will be contained in the configuration sections.
  • A new language identifier has been added to allow Mexican Spanish to be localization. The identifier is es-MX.

New configurations

maxPhotoCompression
  • Description: CGFloat which adjusts the jpg compression used on an image. Lower is more compression higher is less compression. The value must be between 0 to 1.
  • Type: CGFloat
  • Default value: 0.50
  • Available since: 6.12.0
maxPhotoWidthSize
  • Description: CGFloat adjusts the max width in pixels for a sent image. Must be between 0 to 1600.
  • Type: CGFloat
  • Default value: 800
  • Available since: 6.12.0
maxPhotoHeightSize
  • Description: CGFloat adjusts the max height in pixels for a sent image. Must be between 0 to 1600.
  • Type: CGFloat
  • Default value: 800
  • Available since: 6.12.0

Version 6.11.0

iOS Messaging SDK

Release Date: December 16, 2022

Environment requirements

The iOS Mobile Messaging SDK version 6.11.0.860 is supported on iOS versions 13 through 16.

This XCFramework was compiled with Swift version Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1), which means it will work Swift version 5.5 and above.

With this release we are also providing support for the M1 chip.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Bugs fixed

  • On iOS 15 and above the configurations secureFormNavigationBackgroundColor, secureFormNavigationTitleColor, csatNavigationBackgroundColor, csatNavigationTitleColor were not working.
  • The welcome message was not shown even if the welcome message frequency was set to .everyConversation in a scenario when the user resolves the conversation and leaves the conversation screen quickly.
  • Unauthorized conversations were not able to continue after app relaunch. The SDK was showing a connection error.
  • Unauthorized conversations were not able to reconnect on foregrounding the app when JWT expired in the background.
  • Unable to send or receive messages after opening the file in another program and returning to the app by tapping on the app name in the top left corner.
  • When opening the conversation screen and rotating the device to landscape mode, there was an empty space on either side of the input text view on iPhone X and above.
  • The SDK was storing the push token being passed in method isRegisteredForPushNotifications that was further used to register for push notifications on calling showConversation method.
  • The app was crashing sometimes on login completion due to a thread safety issue.
  • The clickable area for the in-app toast banner was reduced if a top offset was provided.
  • The keyboard was blocking the user input field when the conversation screen shown within UITabBarController with translucent tabbar.
  • There were some incorrect values present in some localization string files causing app crashes.
  • Incoming structured content was shown as within the in-app toast banner when the conversation screen was closed and the socket was still open for some time.
  • The brand app's navbar color was changed to the SDK conversation screen's navbar color after the conversation screen was dismissed.

Enhancements

  • Provide a method in SDK to get registered for push notification with raw string token instead of device token data. This string token will be used as it is (without hex decoding) to register for the pusher and for the pusher to communicate with the client's proxy server instead of APNS.
  • Integrate the new pusher API to clear all unread messages count/badges for a given consumer irrespective of the conversation that is being displayed currently based on a branding configuration.
  • Provide a feature flag to enable/disable StepUp authentication.

New configurations

pusherClearBadgeCount
  • Description: Bool is used to clear the unread badge count for all the unread messages of all the conversations at once on Pusher whenever the user comes to the conversation screen.
  • Type: Bool
  • Default value: false
  • Available since: 6.11.0
shouldPerformStepUp
  • Description: If set to "true", then the UnAuth conversation can be stepped up.
  • Type: Bool
  • Default value: false
  • Available since: 6.11.0s

Version 6.10.0

iOS Messaging SDK

Release date: October 07, 2022

Environment requirements

The iOS Mobile Messaging SDK version 6.10.0.849 is supported on iOS versions 13 through 16.

This XCFramework was compiled with Swift version Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1), which means it will work Swift version 5.5 and above.

With this release we are also providing support for the M1 chip.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Bugs fixed

  • Cleared history is not coming back until user does re-login.
  • Phone numbers with spaces sent in messages are dial-able.
  • Fixed auto-layout constraints for in-app toast view to suppress warning being printed on XCode console.
  • Secure form message cell is fully accessible.
  • Convey the meaning of images through tooltip and the behavior if those are tap-able links within structured content.
  • Make a voice over announcement when a conversation ends by either consumer or agent.
  • Structured content elements font size will increase/decrease depending on font category.
  • Avoid welcome message being shown momentarily while loading conversation history.
  • Structured content text element is not cutting off content from trailing boundary.
  • Removing old proactive message from conversation when a new proactive message is opened.
  • LPMessagingSDKAgentDetails callback is being called when agent has changed to survey bot.
  • Set same height for structured content carousel buttons.
  • Stop clearing unauth user conversation history if another view covers conversation screen.
  • conversationBackgroundColor config being applied properly to the quick reply message cell.

Enhancements

  • Based on a feature flag (by default false) images being sent to agents can be obfuscated for security reasons.
  • Improve the translations for strings and provide support for Filipino language.
  • Expose a config for setting minimum height of the structured content buttons.
  • Expose a config for setting structure content button border's corner radius.
  • Expose a config for setting structured content button of link type foreground color.

New configurations

structuredButtonMinimumHeight
  • Description: Set the minimum height constraint for Structured Constant button elements
  • Type: CGFloat?
  • Default value: nil
  • Available since: 6.10.0
structuredContentButtonBorderCornerRadius
  • Description: Set the corner radius of Structured Constant button elements border
  • Type: CGFloat
  • Default value: 15.0
  • Available since: 6.10.0
structuredContentLinkButtonTextColor
  • Description: Set the text color for Structure Content elements of link button type
  • Type: UIColor
  • Default value: LPColor.lpLightBlue
  • Available since: 6.10.0

Version 6.9.0

iOS Messaging SDK

Release date: August 12, 2022

Environment requirements

The iOS Mobile Messaging SDK version 6.9.0.843 is supported on iOS versions 13 through 15.

This XCFramework was compiled with Swift version Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57), which means it will work Swift version 5.4.2 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Bugs fixed

  • Certain history control settings no longer result in a blank screen.
  • Keychain accessibility is updated to meet apple standards.
  • The divider is removed when agents send new messages, and the consumer is at the bottom of the conversation screen.
  • Fixed an issue where already selected quick replies still had a type of button.
  • Fixed an issue where new photos would replace previously sent photos in the conversation screen.
  • Fixed an issue that caused the structured content button border not to appear.
  • Fixed an issue where specific backgrounding scenarios would prevent the unread message divider from appearing.
  • Fixed an issue where quick replies would render more than once beneath each other.
  • Fixed an issue where the unread message divider wouldn't appear for messages sent with quick replies.
  • Secure forms show the form title now instead of the default title.
  • Scroll to bottom button is no longer focusable by a screenreader when it is disabled in the configurations.
  • Scroll to bottom button has the correct type of button.

Enhancements

  • New Arabic string translations have been added, so all strings are now in Arabic.
  • Added support for Bluetooth keyboards and key commands for accessibility users.
  • The loading screen is now announced for screen reader users.
  • Support for future messaging backends increased.

New configurations

inputTextViewPlaceholderColor
  • Description: Edit the color of the input text placeholder.
  • Type: UIColor
  • Default Value: nil
  • Available since: 6.9.0

Version 6.8.0

iOS Messaging SDK

Release date: May 13, 2022

Environment requirements

The iOS Mobile Messaging SDK version 6.8.0.830 is supported on iOS versions 13 through 15.

This XCFramework was compiled with Swift version Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

New functionality

Step up authentication

SDK will authenticate an unauthenticated user in the middle of the conversation. Data will persist across the whole flow when changing from Unauthenticated to Authenticated conversion. For more information, follow feature documentation.

Support for non-rich content proactive InApp push notifications

Brands will be able to show custom Welcome Messages with non-rich content.

Bugs fixed

  • Date picker — Single selection does not highlight the selected day,
  • Structured Content:
    • not consistently scrolling to the bottom,
    • spacing unequal unless you scroll up and back down,
  • Unread Message Divider not showing in certain scenarios and not available for assistive technology users,
  • Updated LPMessagingSDKModels to same iOS target as LPMessagingSDK,
  • Scroll to bottom button is not available for assistive technology users,
  • Enabling non-text Read Receipts to support assistive technology,
  • Fixed issue with wrong error messages presented if Audio message from Consumer fails

Version 6.7.0

iOS Messaging SDK

Release date: Jan 31, 2022

Environment requirements

The iOS Mobile Messaging SDK version 6.7.0.820 is supported on iOS versions 13 through 15.

This XCFramework was compiled with Swift version Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Bugs fixed

  • Fixed the issue with unread message divider not clearing after consumer responds.
  • Fixed the issue with Send Button failed to appear when selecting an image via Photo Sharing feature.
  • Fixed the issue with cases when a duplicate header will be display when starting a Conversation.
  • Fixed cases when Conversation Screen will have issues scrolling to the right position.

Enhancements

Clear history enhancement

SDK will have the capability of clearing the welcome message as well including the history when clicking on clear history. This config will not be in charge of clearing the welcome message when closing the conversation and reopening it.

Control History API

When using the Control History API, conversations are filtered in real time based on the parameters provided, once each conversation dialog is closed the Conversation Screen will reflect the changes accordingly.

To enable displaying the Welcome Message when using this feature, enable the following configuration enableWelcomeMessageForControlHistoryAPI, this is only supported when setting LPConversationsHistoryStateToDisplay.Open. To see more about how to achieve this visit link

New configurations

enableHideWelcomeMessageOnClearHistory
  • Description: Show or hide the welcome message when calling the Clear History functionality.
  • Type: Bool
  • Default Value: false
  • Available since: 6.7.0
  • See also: Clear History Function
  • Limitations: The history is still available both on the Server and Local Database, and will be loaded next time the Conversation Screen is presented.
enableWelcomeMessageForControlHistoryAPI
  • Description: This configuration will only enable showing the Welcome Message when LPConversationsHistoryStateToDisplay.Open
  • Type: Bool
  • Default Value: false
  • Available since: 6.7.0
  • See also: Control History API

Deprecations

maxPreviousConversationsToPresent
  • Description: Set the max conversations to present on initial load.
  • Type: Int
  • Default Value: 2
  • Available until: 6.6.0
  • Note: This property is now part of the Control History API via the historyConversationsMaxDays parameter.

Version 6.6.0

iOS Messaging SDK

Release date: Oct 29, 2021

Environment requirements

The iOS Mobile Messaging SDK version 6.6.0.809 is supported on iOS versions 13 through 14.

This XCFramework was compiled with Swift version Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

New functionality

Appointment List

Enabling Brands to leverage new JSON schema containing appointmentList Action, presenting new UI components on the Conversation Screen allowing to self-serve appointment selections.

Appointment List JSON schema is only supported on accounts using UMS version 4.2, please contact your LivePerson representative (other contact options: chat with us on this page, or message Support) to validate your account qualifies for this feature.

Bugs fixed

  • Fixed the issue with hyperlink not working on remote message.
  • Fixed the issue with screen freezing after resolving conversation.
  • Fixed the issue with Unread Message texts not being read by voice over.
  • Fixed the issue with the "Loading" message not being read by voice over.
  • Fixed the issue with the photo caption name having incorrect role of button.

Enhancements

  • When the conversation comes from background to foreground, instead of requesting new authentication from IDP, SDK will check if it has a LP_JWT, then will try to connect and let the backend service do the expiration check.

If the token is not available, will trigger LPMessagingSDKTokenExpired or LPMessagingSDKAuthenticationFailed delegate accordingly.

New configurations

controllerBubbleHyperlinkColor
  • Description: Controls text color for hyperlink item on the system messages bubble
  • Type: UIColor
  • Default Value: LPColor.lpGray2
  • Available since: 6.6.0
appointmentCustomOutputDateFormat
  • Description: Default format to present date in output message
  • Type: String
  • Default Value: "EEEE, MMMM d"
  • Available since: 6.6.0
appointmentCellSelectedColor
  • Description: Default color for when user presses and selects a cell from the calendar view
  • Type: UIColor
  • Default Value: UIColor.appointmentListCalendarBlueColor
  • Available since: 6.6.0
appointmentSlotImage
  • Description: Default image for appointment slot image
  • Type: UIImage
  • Default Value: image named LP_APPOINTMENT_IMAGE
  • Available since: 6.6.0

For the complete list of configurations related to the AppointmentList, click here


Version 6.5.1

iOS Messaging SDK

Release date: September 9th, 2021

Environment requirements

The iOS Mobile Messaging SDK version 6.5.1 is supported on iOS versions 12 through 14.

This XCFramework was compiled with Swift version Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Enhancements

Support for Rich Proactive InApp Push Notifications

A brand will be able to attach an image URL to a proactive push notification and that image will be rendered as appropriate for the device.

Reporting for Rich Proactive InApp Push Notifications
  • when proactive payload is delivered to SDK
  • when proactive payload is processed and displayed on SDK conversation window
  • when consumer clicks on the image
  • when consumer initiates the conversation with SC proactive payload
  • when the image URL fails to render.

Bugs fixed

  • iOS SDK sending empty JSON array to Loggos creating 500 errors
  • remote user's bubble text color is not conforming to remote text color when in Dark Mode.
  • Link's underline is short when adding emojis.

Version 6.5.0

iOS Messaging SDK

Release date: Jul 16, 2021

Environment requirements

The iOS Mobile Messaging SDK version 6.5.0.802 is supported on iOS versions 12 through 14.

This XCFramework was compiled with Swift version Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

New functionality

Support for Structured Content containing DatePicker schema

Enabling Brands to leverage new JSON schema containing Single or Range DatePicker, presenting new UI components on the Conversation Screen allowing to self-serve Date selections.

DatePicker JSON schema is only supported on accounts using UMS version 4.2, please contact your LivePerson representative (other contact options: chat with us on this page, or message Support) to validate your account qualifies for this feature.

Improved performance for First Time Load

Improved loading times for First Load or for Consumers connecting after a Logout.

Adding support for additional languages

Adding language parity with other conversational Cloud Services:

  • Malaysian
  • Arabic
  • French-Canadian
  • Indonesian
  • Latin American Spanish
Adding new configuration to control presentation style for Image/File/Video Picker ViewController

Adding new configuration to enable Brands to control UIModalPresentationStyle when presenting the following Pickers:

  • File Sharing
  • Image Sharing

Bugs fixed

  • Fixed the issue when Unread Message Divider won’t be dismissed
  • Fixed the issue when loading view won't dismiss when closing and reopening Conversation Screen during PCS
  • Fixed the issue when Conversation Source will be reported as SHARK

New configurations

enableLoadingView
  • Description: Will enable/disable presentation of loading view when presenting Conversation Screen.
  • Type: Bool
  • Default Value: true
  • Available since: 6.5.0
modalPresentationStyle
  • Description: The configuration to control our modal presentation styles within the SDK.
  • Type: UIModalPresentationStyle
  • Default Value: fullScreen
  • Available since: 6.5.0
imagePickerPresentationStyle
  • Description: The configuration to control our modal presentation style for image picker controller within the SDK.
  • Type: UIModalPresentationStyle
  • Default Value: fullScreen
  • Available since: 6.5.0
datePickerPresentationStyle
  • Description: The configuration to control our modal presentation stylen for LPDatePicker controller within the SDK.
  • Type: UIModalPresentationStyle
  • Default Value: fullScreen
  • Available since: 6.5.0

For the complete list of configurations related to the DatePicker, click here


Version 6.4.1

iOS Messaging SDK

Release date: June 9, 2021

Environment requirements

The iOS Mobile Messaging SDK version 6.4.1.791 is supported on iOS versions 12 through 14.

This XCFramework was compiled with Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Enhancements

Enhancing processing of Proactive and IVR Deflection to cover In App Notifications.

Enabling processing of Proactive and IVR Deflection Notifications can be done using a new configuration, for cases when Host App is in an active state and consumer taps on the InApp Notification:

enableInAppProcessingForActiveState = true

Exposing a new method to handle tapping of InApp Notifications:

public func handleTapForInAppNotification(notification: LPNotification)

When brands have their own implementation of the LPMessagingSDK InApp notification via LPMessagingSDKNotification(customLocalPushNotificationView notification: LPNotification) protocol, a new method has been exposed to notify SDK that notification was tapped and it can process the Proactive and IVR Deflection Data accordingly.

Bugs fixed

  • Fixed the issue when Socket won’t disconnect when interrupting the connection process.
  • Fixed the issue when loading view won't dismiss when closing and reopening Conversation Screen during PCS

New configurations

enableInAppProcessingForActiveState

Enable or disable the ability to display Proactive and IVR Deflection messages on Conversation Screen

  • Type: Bool
  • Default Value: false
  • Preconditions:
    • Consumer to be registered for Push Notifications
    • Consumer tapped InApp Notification
  • Available since: 6.4.1

This flags enables SDK to process InApp Notifications for Proactive and IVR Deflection messages, is not related to Push Notifications received when the Application is not active.


Version 6.4.0

iOS Messaging SDK

Release date: May 7, 2021

Environment requirements

The iOS Mobile Messaging SDK version 6.4.0.787 is supported on iOS versions 12 through 14.

This XCFramework was compiled with Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Enhancements

Adding a self awareness process to help SDK recover after discovering a corrupted keychain preventing empty bubbles from being shown on the Conversation Screen.

Adding reporting capabilities for Proactive and IVR Deflection to App Messaging feature.

Bugs fixed

  • Fixed the issue when changing value for maxPreviousConversationToPresent fails to reflect new value
  • Fixed the issue with Video and Voice call invite UI shows square buttons instead of round ones.
  • Fixed the issue with VoiceOver focus interaction will read out:
    • error messages from Structured Content.
    • Structured Content buttons as links.
  • Fixed the issue with background task on LPSocket not ending properly will cause the OS to kill the Host App.
  • Fixed the issue with inconsistent scrolling when showing the Conversation Screen.
  • Fixed the issue with unread message count banners not shown while in the Conversation Screen.
  • Fixed the issue with LPMessagingSDKAgentDetails was being called only once per Conversation.
  • Fixed the issue where SDK will increase memory footprint when repeatedly opening and closing the Conversation Screen.
  • Fixed the issue when failing to access resources from device storage will cause images not to load.

New configurations

inAppReportingEnabled

Enable or disable sending reporting events for Proactive and IVR Deflection to App Messaging.

  • Type: Bool
  • Default Value: true
structuredContentLoadingImage

Structured content loading image when images are being fetched/loaded.

  • Type: UIImage?
  • Default Value: image named LP_LINK_PREVIEW_LOADER_ICON
structuredContentBrokenImage

Structured content loading image when images failed to fetched/loaded.

  • Type: UIImage?
  • Default Value: image named LP_BROKEN_IMAGE

Version 6.3.0

iOS Messaging SDK

Release date: March 15, 2021

Environment requirements

The iOS Mobile Messaging SDK version 6.2.0 is supported on iOS versions 12 through 14.

This XCFramework was compiled with Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

New features

  • Voice & Video support:

Voice and Video integration allows brand agents to communicate with consumers via voice or video calls.

Voice call example screen Video call example screen

KB article: Voice & Video Overview

To enable this feature on the Conversational Cloud, please contact your LivePerson representative (other contact options: chat with us on this page, or message Support).

For all available Voice & Video branding and configurations, visit the feature page

Enhancements

structuredButtonWidthConstant

Adding Structured Content outer padding configuration: Defines a padding constraint for Structured Constant elements of the button type.

  • Type: CGFloat
  • Default value: -20.0
conversationSeparatorContentViewTopPadding

Adding Conversation Separator configurations: Defines the top padding for the conversation separator content view.

  • Type: CGFloat
  • Default value: 0.0

conversationSeparatorContentViewBottomPadding

Defines the bottom padding for the conversation separator content view.

  • Type: CGFloat
  • Default value: 0.0

linkPreviewLoadingImage

Adding Link Preview configuration: Defines image for link preview loader.

  • Type: UIImage
  • Default value: nil

Bugs fixed

  • Fixed the issue when Conversation Separator padding interfered when setting conversationBackgroundColor
  • Fixed the issue when Quick Replies will be dismissed when opening menu when in Window Mode
  • Fixed the issue when inputTextViewTopBorderColor is not properly aligned when there Empty State View is presented (“There are currently no conversations at this time”)
  • Fixed the issue when VoiceOver won’t read correct label when reading Structured Content cards
  • Fixed the issue when unread bubble background will not change color when setting conversationBackgroundColor
  • Fixed the issue when Structured Content timestamp will not resize when setting Large Text on Accessibility Settings
  • Fixed the issue when Conversation Screen will not take focus and Voice Over will read ViewController behind it

Crashes fixed

  • Fixed crash on LPSDKManager.getBundle() due LPLogger
  • Fixed an issue when SDK will crash when checking Message Types

Version 6.2.0

iOS Messaging SDK

Release date: January 29, 2021

Environment requirements

The iOS Mobile Messaging SDK version 6.2.0 is supported on iOS versions 12 through 14.

This XCFramework was compiled with Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

New features

  • In App proactive support

  • Send Push notification in logout state New Logout API

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

this change only adds support to url, sms, tel, facetime, facetime-audio, and doesn't cover hyperlinks format.

Enhancements

  • Error code enhancements
  • New configurations for Conversation separator line
    • enableConversationSeparatorLine: Toggle conversation separator line when conversation resolved from agent or consumer.
    • enableConversationSeparatorLineOnAutoClose: Toggle conversation separator line when conversation is auto close

Bugs fixed

  • LPConfig property inputTextViewContainerBackgroundColor not respecting color
  • LPConfig property conversationBackgroundPortraitImage not changing image
  • Fixed a gap of space surrounding the conversation separator
  • Loading screen is not showing after resuming conversation after logout
  • Unread message divider is not showing for one unread message
  • File/Phone preview not updated when network unreachable
  • Brand Avatar not display while using Window Mode
  • Scroll to bottom issue when conversation screen is loaded and has content but screen does not scroll all the way down
  • Messaging history is retained after launching the messaging as an unauth user
  • Close conversation dividers is displayed in auto close conversation
  • Encryption Recovery after discovering a corrupted keychain so that empty bubbles will not show.
  • Fixing input text view cut off on the right side in file preview view.

Crashes fixed

  • QuickReply crashes when migrating from an older SDK version
  • Unread message crash for unauth type when returning from background.

Version 6.1.0

iOS Messaging SDK

Release date: November 3, 2020

Environment requirements

The iOS Mobile Messaging SDK version 6.1.0 is supported on iOS versions 12 through 14.

This XCFramework was compiled with Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

XCFramework is supported on CocoaPad versions 1.9.0 and greater.

Enhancements

  • Change LPLogger default level to .DEBUG from .TRACE

Bugs fixed

  • Fixed an issue where In-App Notification is shown behind ConversationViewController if presented modally.
  • Fixed an issue when Welcome Message is not presented after PCS expires.
  • Fixed an issue when Welcome Message is not presented when force closing CSAT.
  • Fixed an issue where connection banner is not presented on correct scenario:
    • “Failed to connect to the server” banner is presented before “Offline… Please check your connection” banner after losing internet connection.
  • Fixed an issue where Quick Reply messages are out of order when scrolling.
  • Fixed an issue where Messages are displayed out of order when using continuity between Web and In-App.
  • Fixed an issue when Unread message count notification will be shown above Welcome Message.
  • Fixed an issue where SDK will crash while:
    • Updating dialog participants for a new conversation,
    • Downloading images from remote URL,
    • Scrolling the conversation screen,
    • Trying to clear Conversation from DB,
    • calling LPLoggingHistory.removeFromHistory(),
    • calling LPMessagingSDK.clearLocalDatabase(),
    • calling ConversationViewController.scrollTableViewTo(),
    • calling lpFetchedControllerDidChangeContent()
  • Fixed an issue where SDK will crash with error _Invalid_Number_Of_Rows_In_Section.
  • Fixed an issue where a Welcome Message with Quick Replies will cause a crash while presenting the Conversation Screen.
  • Fixed an issue where some phone regular expressions are not properly mark as links when using bubblePhoneLinksRegex.
  • Fixed an issue when the tel url scheme was not properly mark as a link.

Known issues

  • Issue with user link message can’t be double tapped to open link when VoiceOver is enabled.
  • The message timestamp for Images/Files/Audio gets cut off when choosing large fonts in Accessibility Settings.
  • VoiceOver cannot read the agent name while focusing on structure content container.
  • The unread message count divider does not show on the conversation screen when the agent sends only one message.

Version 6.0.1

iOS Messaging SDK

Release date: September 2, 2020

Environment requirements

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

This XCFramework was compiled with Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53) which means it will work Swift version 5.2.4 and above.

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 is not working properly.
  • Crashes on fetched result controller (including but not limited to, Welcome Message and 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

Environment 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 an issue where some phone regular expressions are not properly mark as links when using bubblePhoneLinksRegex
  • Fixed an issue when the tel url scheme was not properly mark as a link
  • 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 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 log in, 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 (other contact options: chat with us on this page, or message Support).

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

New configurations for 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 is not working properly.
  • Crashes on fetched result controller (including but not limited to, Welcome Message and 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

Environment 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 an issue where white space between keyboard and message area with SDK embedded in tab bar view controller.
  • Fixed an issue where a text typed by the user is shown on the input line placeholder ("Write a message").
  • Fixed an issue where typing indicator misaligned in Consumer text field.
  • Fixed an issue where CSAT displays no Agent icon where agent icon present for agent.
  • Fixed an issue where "didFinishWithExpiredToken" not trigger when using Code Flow.
  • Fixed an issue where showConversation always create a new socket even when get out and get in within the app.
  • Fixed an issue where the color code of System messages gets reset to default when going back into a conversation.
  • Fixed an issue where not using device language until you log out of the SDK and back in.
  • Fixed an issue where incorrect badge count being saved.
  • Fixed an issue where creation date is not set when upload files.
  • Fixed multiple issues where multiple localization keys are missing.
  • Fixed an issue where send button label doesn't auto fit with width.
  • Fixed an issue where photo sharing screen is blocking host app from popping conversation view controller in the navigation view controller stack.
  • Fixed an issue where "scrollToBottomButtonBadgeCornerRadius" is not being reflected on the SDK.
  • Fixed an issue where inaccurate unread message count between registering and receiving a push notification.
  • Fixed an 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 an issue where VoiceOver of secure form's header copy is not announced.
  • Fixed an 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 an issue where attachment button in file sharing is announced as "image" in VoiceOver.
  • Fixed an issue where in-line text announced as "Button" in VoiceOver but it is not a button in structured content.
  • Fixed an issue where hyperlink messages from agent is announced as plain text in VoiceOver.
  • Fixed an issue where multiple new messages are received and VoiceOver only reading the last message received.
  • Fixed an 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 to Logging 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 for deprecated methods.
    • New LPConversationsHistoryStateToDisplay: Add a new enum value (all) for LPConversationsHistoryStateToDisplay. Head over to Messaging API 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

Environment requirements

The iOS Mobile Messaging SDK version 5.1.1 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.1.2 (swiftlang-1100.0.278 clang-1100.0.33.9).

Bugs fixed

  • Fixed an issue where CSAT was appearing for auto closed conversations
  • Fixed an issue where a 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

Environment requirements

The iOS Mobile Messaging SDK version 5.1.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.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

Accessibility 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 displayed.


Version 5.0.0

iOS Messaging SDK

Release date: October 28, 2019

Environment requirements

The iOS Mobile Messaging SDK version 5.0.0 is supported on iOS versions 11 through 13. It is available 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 an 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.

The 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 APIs

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

Environment 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 available 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

Environment requirements

The iOS Mobile Messaging SDK version 4.0.0 is supported on iOS versions 10 through 12. It is available 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

Environment 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

Environment 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

Environment 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

Environment 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

Environment 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

      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

Environment 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

      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

Environment 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 choose.

  • 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

Environment 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 choose.

  • 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

Environment 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 choose.

  • 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

Environment 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

Environment 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

Environment 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

Environment 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

Environment 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 and Device) is not updated while switching platforms IOS/Android or OS versions. 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 and Swift 4.2

Available to all customers? Yes.

Description

Mobile App SDK v3.3 supports iOS 12, Xcode 10 and 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 the 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

The 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

The 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 and 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 and 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

The 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

Please note the documentation on version-specific system requirements (PDF).

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

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

Please note the documentation on version-specific system requirements (PDF).

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 timestamp 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

Please note the documentation on version-specific system requirements (PDF).

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

Please note the documentation on version-specific system requirements (PDF).

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’s 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

    • The 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.

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.

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

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
Keys for items
  • 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

Please note the documentation on version-specific system requirements (PDF).

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 the 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.

func 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

Please note the documentation on version-specific system requirements (PDF).

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 way 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

To configure the 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

Please note the documentation on version-specific system requirements (PDF).

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.

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 the 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

Please note the documentation on version-specific system requirements (PDF).

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.