AgentData

public class AgentData {
  public String mFirstName;
  public String mLastName;
  public String mAvatarURL;
  public String mEmployeeId;
  public String mNickName;
}

ConsumerProfile

public class ConsumerProfile {
  private String mFirstName;
  private String mLastName;
  private String mPhoneNumber;
  private String mNickName;
  private String mAvatarUrl;
}

ConversationViewParams


public class ConversationViewParams{
  boolean viewOnlyMode = false;
  CampaignInfo mCampaignInfo;
  LPConversationsHistoryStateToDisplay mHistoryConversationsStateToDisplay = LPConversationsHistoryStateToDisplay.ALL;
  LPConversationHistoryMaxDaysDateType mHistoryConversationMaxDaysType = LPConversationHistoryMaxDaysDateType.startConversationDate;
  int mHistoryConversationsMaxDays = -1; //no limit
  private LPWelcomeMessage lpWelcomeMessage;
}
  • CampaignInfo - Use this object to pass new campaign information to the conversation. The campaign includes Engagement info, which allows the control of the consumer's routing. The CampaignInfo has three mandatory members:

    • campaignId

    • engagementId

    • engagementContextId

    If constructing CampaignInfo with one of these members as null or empty, the SDK throws a BadArgumentException.

  • LPConversationsHistoryStateToDisplay - Use this to present open conversations, closed conversations, or all conversations.

  • LPConversationHistoryMaxDaysDateType - When using mHistoryConversationsMaxDays, LPConversationHistoryMaxDaysDateType decides if to filter by the conversations' start date or end date. When not providing a value, startConversationDate is the default.

public interface EngagementCallback {
  void onSuccess(LPEngagementResponse engagementResponse);
  void onError(MonitoringErrorType errorType, Exception e);
}
public final class EngagementDetails {
  @NotNull
  private  String campaignId;
  @NotNull
  private  String engagementId;
  @NotNull
  private  String engagementRevision;
  @NotNull
  private  String contextId;
  @Nullable
  private String conversationId;
  @Nullable
  private String status;
}

ICallback

public interface ICallback<T, E extends Throwable> {
  void onSuccess(T value);
  void onError(E exception);
}

InitLivePersonProperties

public class InitLivePersonProperties{
  private String brandId;
  private String appId;
  private MonitoringInitParams mMonitoringInitParams;
  private InitLivePersonCallBack initCallBack;
}

The SDK can be initialized once without MonitoringInitParams and then have another initialize call using these params.

LPAuthenticationParams

public class LPAuthenticationParams{
  private LPAuthenticationType mType;
    private String mAuthKey;
    private String mHostAppJWT;
    private String mHostAppRedirectUri;
    private List<String> mCertificatePinningKeys;

    public enum LPAuthenticationType {SIGN_UP, UN_AUTH, AUTH }
}

LPConversationData

public class LPConversationData{
  private CloseReason closeReason;
  private String conversationId;
}

LPConversationHistoryMaxDaysDateType

public enum LPConversationHistoryMaxDaysDateType {
  startConversationDate, endConversationDate
}

LPConversationsHistoryStateToDisplay

public enum LPConversationsHistoryStateToDisplay {
  OPEN, CLOSE , ALL
}


public final class LPEngagementResponse {
  @NotNull
  private String pageId;
  @Nullable
  private String sessionId;
  @Nullable
  private String visitorId;
  @Nullable
  private List<EngagementDetails> engagementDetailsList;
}

Kotlin syntax

A class that contains data on the consumer identity.

  • consumerId - unique and non-guessable identifier of the consumer (email and phone number are not good candidates since they can be guessed by an attacker, and might be recycled and move between consumers).

  • issuer - Issuer, who identified the consumer, usually the brand.

class LPMonitoringIdentity(val consumerId: String? = "", val issuer: String? = ""){
}
public class LPSdeResponse {
  @NotNull
  private String pageId;
  @Nullable
  private final String sessionId;
  @Nullable
  private final String visitorId;
}
enum class MonitoringErrorType {
  NOT_INITIALIZED,
  INITIALIZATION_ERROR,
  LOGOUT_ERROR,
  PARAMETER_MISSING,
  NO_NETWORK,
  REQUEST_ERROR,
  CSDS_ERROR
}
public class MonitoringInitParams {
  private String mAppInstallId;
}
public class MonitoringParams {
  private String pageId;
  private JSONArray entryPoints;
  private JSONArray engagementAttributes;
}

PermissionType

public enum PermissionType {
  PHOTO_SHARING
}  

PushMessage

public class PushMessage {
  private String mBrandId;
  private String mMessage;
  private String mFrom;
  private String mConversationId;
  private String mBackendService;
  private String mCollapseKey;
  private int mCurrentUnreadMessagesCounter = -1;
  //if we get unread messages counter from push message this value contains it.
}
public interface SdeCallback {
  void onSuccess(LPSdeResponse sdeResponse);
  void onError(MonitoringErrorType errorType, Exception e);
}