iOS Messaging SDK - Version 3.2

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 LiveEngage capabilities such as Campaigns for Messaging.

Unauthenticated messaging allows brands to:

  1. Easier & quicker on-boarding to LiveEngage

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

  3. The ability to use Campaigns for Messaging 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