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


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


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 {
  private  String campaignId;
  private  String engagementId;
  private  String engagementRevision;
  private  String contextId;
  private String conversationId;
  private String status;


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


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.


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 }


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


public enum LPConversationHistoryMaxDaysDateType {
  startConversationDate, endConversationDate


public enum LPConversationsHistoryStateToDisplay {

public final class LPEngagementResponse {
  private String pageId;
  private String sessionId;
  private String visitorId;
  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 {
  private String pageId;
  private final String sessionId;
  private final String visitorId;
enum class MonitoringErrorType {
public class MonitoringInitParams {
  private String mAppInstallId;
public class MonitoringParams {
  private String pageId;
  private JSONArray entryPoints;
  private JSONArray engagementAttributes;


public enum PermissionType {


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);