Notes:

  • The structure of the Public Model is subject to change, and may vary in future versions. In addition, data you are attempting to get/bind to may not be present, and so it is not guaranteed that you will receive data.
  • This overall structure was originally designed for real-time chat. However, the same structure has also been used in order to support existing widgets for messaging conversations.

Structure example:

{
    "chatInfo": {
        "rtSessionId": "",
        "accountId": "",
        "chatRequestedTime": 1,
        "chatStartTime": 1,
        "sessionStartTime": 1,
        "chatStartUrl": "",
        "spectatedEngagement": false,
        "chatSkill": ""
    },
    "chattingAgentInfo": {
        "agentName": "",
        "agentNickname": "",
        "agentGroupName": "",
        "agentId": 1
    },
    "agentInfo": {
        "accountId": "",
        "agentName": "",
        "agentNickname": "",
        "agentId": 1,
        "agentEmail": "",
        "employeeId": "",
        "maxChats": 1,
        "agentGroupName": ""
    },
    "chatTranscript": {
        "lines": []
    },
    "surveyQuestions": {
        "preChat": {
            "email": {
                "value": "",
                "displayName": ""
            },
            "phone": {
                 "value": "",
                 "displayName": ""
            },
            "name": {
                 "value": "",
                 "displayName": ""
            },
            "customizedQuestions": []
        },
        "postChat": [],
        "agentSurvey": []
    },
    "visitorInfo": {
        "visitorId": "",
        "visitorName": "",
        "visitorSso": false,
        "device": "",
        "browser": "",
        "operatingSystem": "",
        "country": "",
        "countryCode": "",
        "state": "",
        "city": "",
        "isp": "",
        "organization": "",
        "IpAddress": "",
        "visitStartTime": "",
        "chattingVisitorState": "",
        "chatRequestedTime": "",
        "chatStartUrl": "",
        "visitorTimezone": "",
        "visitorTyping": false
    },
    "campaignInfo": {
        "campaignName": "",
        "campaignId": "",
        "campaignDescription": "",
        "targetAudience": [],
        "goalName": "",
        "goalId": "",
        "goalDescription": ""
    },
    "engagementInfo": {
        "VisitorBehavior": [],
        "skill": "",
        "engagementType": "",
        "engagementId": "",
        "engagementName": "",
        "agentNote": "",
        "engagementSkill": ""
    },
    "visitorJourney": {
        "pages": [],
        "searchEngine": {
            "searchProvider": "",
            "searchKeywords": ""
        }
    },
    "SDE": {
        "customerDetails": [],
        "personalInfo": [],
        "marketingSource": [],
        "leadGeneration": [],
        "transaction": [],
        "viewedProducts": [],
        "shoppingCart": [],
        "serviceActivity": [],
        "error": []
    },
    "authenticatedData": {
        "customerDetails": [],
        "personalInfo": []
    },
    "claimsAndAuthType": {
        "claims": {},
        "acr": ""
    },
    "applicationInfo": {
        "theme": ""
    },
    "customVariables": [],
    "splitSession": {
        "customVariables": []
    }
}
Property Real-time Chat Description Messaging Conversation Description Type Notes
chatInfo Information regarding the chat Information regarding the conversation object  
chatInfo.rtSessionId The real time session ID (chat ID) The conversation ID string  
chatInfo.accountId The account ID The account ID string  
chatInfo.chatRequestedTime The time the chat was requested (the visitor clicked-to-chat) The time the conversation was started number  
chatInfo.chatStartTime The time the chat started The time the conversation started number  
chatInfo.sessionStartTime The time the session/visit started N/A number  
chatInfo.chatStartUrl The URL of the page where the visitor clicked-to-chat N/A string  
chatInfo.spectatedEngagement True if the engagement is spectated (and the logged in agent is not the chatting agent) True if the engagement is spectated (and the logged in agent is not the assigned agent) Boolean  
chatInfo.isMessaging False if a real-time chat True if a messaging conversation Boolean  
chatInfo.chatSkill The chat skill The conversation skill string  
chattingAgentInfo Information about the chatting agent (may not be the agent which is currently logged in) Information about the assigned agent (may not be the agent which is currently logged in) object  
chattingAgentInfo.agentName The name of the agent The name of the agent string  
chattingAgentInfo.agentNickname N/A The nickname of the agent string  
chattingAgentInfo.agentGroupName N/A The name of the agent group string  
chattingAgentInfo.agentId The ID of the agent The ID of the agent number  
agentInfo Information about the agent which is currently logged in (may not be the chatting agent) Information about the agent which is currently logged in (may not be the assigned agent) object  
agentInfo.accountId The account ID The account ID string  
agentInfo.agentName The name of the agent The name of the agent string  
agentInfo.agentNickname N/A The nickname of the agent string  
agentInfo.agentId The ID of the agent The ID of the agent number  
agentInfo.agentEmail The email of the agent The email of the agent string  
agentInfo.employeeId N/A The ID of the employee string  
agentInfo.maxChats The maximum number of chats the agent can be in The maximum number of (real-time) chats the agent can be in number  
agentInfo.agentGroupName N/A The name of the agent group string  
chatTranscript.lines Array of chat lines Array of chat lines array  
surveyQuestions All the survey questions divided by survey type Profile information about the consumer object  
surveyQuestions.preChat All the pre-chat survey questions, with separated special questions Profile information about the consumer object  
surveyQuestions.preChat.email The email pre-chat survey question object Contains the email address of the consumer object  
surveyQuestions.preChat.email.value The email of the visitor, as entered in the pre-chat survey Email address of the consumer string  
surveyQuestions.preChat.email.displayName The pre-chat survey question asking for the email N/A string  
surveyQuestions.preChat.phone The phone pre-chat survey question object Contains the consumer ID object Messaging: May be a phone number
surveyQuestions.preChat.phone.value The phone number of the visitor, as entered in the pre-chat survey The consumer ID string Messaging: May be a phone number
surveyQuestions.preChat.phone.displayName The pre-chat survey question asking for the phone number N/A string  
surveyQuestions.preChat.name The name pre-chat survey question object Contains the consumer name object  
surveyQuestions.preChat.name.value The name of the visitor, as entered in the pre-chat survey The consumer name string  
surveyQuestions.preChat.name.displayName The pre-chat survey question asking for the name N/A string  
surveyQuestions.preChat.customizedQuestions Array of pre-chat survey questions containing 'displayName' (the question) and 'value' (the answer) N/A array  
surveyQuestions.postChat Array of post-chat survey questions containing 'displayName' (the question) and 'value' (the answer) N/A array  
surveyQuestions.agentSurvey Array of agent survey questions containing 'displayName' (the question) and 'value' (the answer) N/A array  
visitorInfo Information regarding the visitor Information regarding the consumer object  
visitorInfo.visitorId The ID of the visitor The ID of the consumer string  
visitorInfo.visitorName The visitor name The consumer name string  
visitorInfo.visitorSso Indicates if the visitor used a single sign on. N/A Boolean Chat: Legacy accounts only.
visitorInfo.device The device used by the visitor The device used by the consumer string Valid values: 'DESKTOP', 'TABLET', 'MOBILE'.
visitorInfo.browser The browser used by the visitor The browser used by the consumer string Messaging: Not always available
visitorInfo.operatingSystem The operating system used by the visitor The operating system used by the consumer string Messaging: Not always available
visitorInfo.country The country of the visitor N/A string  
visitorInfo.countryCode The country Code of the visitor N/A string The value is 2 letter code in ISO3166-1 Alpha-2. Supported only in the New Agent Workspace.
visitorInfo.state The geographic state of the visitor N/A string  
visitorInfo.city The city of the visitor N/A string  
visitorInfo.isp The internet service provider of the visitor N/A string  
visitorInfo.organization The organization of the visitor N/A string  
visitorInfo.IpAddress The IP address of the visitor N/A string  
visitorInfo.visitStartTime The time the visitor entered the site The time the consumer started the conversation string  
visitorInfo.chattingVisitorState The chat state of the visitor The chat state of the consumer string Valid values: 'CHATTING', 'ENDED'
visitorInfo.visitorTimezone The timezone of the visitor N/A string  
visitorInfo.visitorTyping Indicates if the visitor is typing N/A Boolean  
campaignInfo Information regarding the campaign N/A object  
campaignInfo.campaignName The campaign name The campaign name string  
campaignInfo.campaignId The campaign ID The campaign ID string  
campaignInfo.campaignDescription The campaign description The campaign description string  
campaignInfo.targetAudience The target audience (visitor profile) The target audience (visitor profile) array  
campaignInfo.goalName The goal name The goal name string  
campaignInfo.goalId The goal ID The goal ID string  
campaignInfo.goalDescription The goal description The goal description string  
engagementInfo Information regarding the campaign engagement (The click to chat button) N/A object  
engagementInfo.VisitorBehavior Array of the behavioral targeting rules Array of the behavioral targeting rules array  
engagementInfo.skill The chat skill The conversation skill string  
engagementInfo.engagementType The engagement type The engagement type string  
engagementInfo.engagementId The engagement ID The engagement ID string  
engagementInfo.engagementName The engagement name The engagement name string  
engagementInfo.agentNote The agent note The agent note string  
engagementInfo.engagementSkill the engagement skill the engagement skill string  
visitorJourney Information regarding the visitor's journey in the site N/A object  
visitorJourney.pages Array of pages the visitor was in N/A array  
visitorJourney.searchEngine Information regarding the search that led the visitor to the chat N/A object  
visitorJourney.searchEngine.searchProvider The search provider N/A string  
visitorJourney.searchEngine.searchKeywords The search keywords N/A string  
SDE Object containing SDEs (Engagement attributes) of the visitor N/A object  
SDE.customerDetails Array of customer details Array of customer details array  
SDE.personalInfo Array of personal information Array of personal information array  
SDE.marketingSource Array of marketing information Array of marketing information array  
SDE.leadGeneration Array of lead generation information Array of lead generation information array  
SDE.transaction Array of transactions Array of transactions array  
SDE.viewedProducts Array of viewed products Array of viewed products array  
SDE.shoppingCart Array of shopping cart updates Array of shopping cart updates array  
SDE.serviceActivity Array of service activity information Array of service activity information array  
SDE.error Array of visitor errors Array of visitor errors array  
authenticatedData Object containing SDEs (Engagement Attributes) received from authenticated visitors Object containing SDEs (Engagement Attributes) received from authenticated consumers object deprecated — use 'claimsAndAuthType' instead
authenticatedData.customerDetails customer details customer details object deprecated — use 'claimsAndAuthType.claims' instead
authenticatedData.personalInfo personal information personal information object deprecated — use 'claimsAndAuthType.claims' instead
claimsAndAuthType Object containing SDEs passed by the IDP on the JWT and authentication type Object containing SDEs passed by the IDP on the JWT and authentication type object  
claimsAndAuthType.claims Object containing SDEs passed by the IDP on the JWT Object containing SDEs passed by the IDP on the JWT object deprecates the "authenticatedData" key
claimsAndAuthType.acr The authentication type ("0" — unauthenticated, "loa1" — authenticated) the authentication type ("0" — unauthenticated, "loa1" — authenticated) object  
customVariables Array of custom variables N/A array  
splitSession Information from the previous split session N/A object  
splitSession.customVariables Array of custom variables from previous split session N/A array  
applicationInfo N/A Information regarding the agent workspace application in the site object  
applicationInfo.theme N/A the theme of the application string  

Some of the public model data specified above returns an object or an array of objects. Below is the structure of these objects/arrays that can be returned.

chatTranscript.lines

Property Description Type Notes
id The serial ID of the chat line string  
type Should always be 'line' string  
by The name of the visitor/agent who sent the line. string Can also be 'info'
source Is the chat line from 'visitor' or 'agent' or 'system' string    
subType Should always be 'REGULAR'. string May include other types of content in the future
systemMessageId If it's a system message, this is the ID of the system message. If not, this property doesn't exist number  
text Contains the text/html content of the chat line string  
textType Can be 'plain' for plain text or 'html' for html content. string All agent lines are html content.
time String representation of the time the line was added string  
clientProperties Object containing client properties object  

Structure example:

{
    "id": "",
    "type": "line",
    "by": "",
    "source": "visitor",
    "subType": "REGULAR",
    "systemMessageId": 1,
    "text": "",
    "textType": "html",
    "time": "",
    "clientProperties": {
        "appId": "LivePerson.SDK-Maker",
        "appVersion": "",
        "browser": "",
        "browserVersion": "",
        "deviceFamily": "TABLET",
        "deviceModel": "iPad4,1",
        "deviceManufacture": "",
        "integration": "MOBILE_SDK",
        "integrationVersion": "2.3.0.3",
        "ipAddress": "192.168.226.81",
        "os": "IOS",
        "osName": "IOS",
        "osVersion": "10.2.1",
        "timeZone": "US/Pacific",
        "features": {
            "CO_BROWSE": "",
            "CO_APP": "",
            "PHOTO_SHARING": "",
            "SECURE_FORMS": "",
            "AUTO_MESSAGES": "",
            "RICH_CONTENT": ""
        }
    }
}

Note: Unlike other arrays/objects, binding to the chat transcript lines will give you updates which only include the recently added lines, not the entire array with all the lines from the beginning.

metadata.connectorAuthResponse

Property Description Type
encrypted True if you have provided the responseEncryptionKey, False if you have not Boolean
status Status of the consumer authentication — can be only true (successful) or false (failed) Boolean
token Token string — will be available only when authentication was successful String
requestIdentifier Matches the authentication request that you sent. String
errors Type of authentication error as received from Apple — will be available only when authentication failed Array

Structure example:

{
    "encrypted"         : true,
    "status"            : true,
    "token"             : "token encrypted string",
    "requestIdentifier" : "Request Identifier Unique Key",
    "errors"            : [{
        "message" : "Optional Error Message"
    }]
}

metadata.connectorPaymentResponse

Property Description Type
status Status of the consumer payment — can be only true (successful) or false (failed) Boolean
requestIdentifier Matches the payment request that you sent. String
errors Type of authentication error as received from Apple — will be available only when payment failed Array

Structure example:

{
    "type" : "ConnectorPaymentResponse",
    "requestIdentifier" : "Request Identifier Unique Key",
    "status": true,
    "errors" : [{
      "message": "Optional Error Message"
    }]
}

surveyQuestions.preChat.customizedQuestions, surveyQuestions.postChat, surveyQuestions.agentSurvey, customVariables, splitSession.customVariables

Property Description Type Notes
@scope The scope of the survey question/custom variable string Can have values such as 'session' or 'visitor'
@source The source of the survey question/custom variable string Can have values such as 'prechat', 'chat window', 'rule engine'
name The internal name of the survey question/custom variable string Used by the server as an ID
displayName The display name string Usually identical to the name, but can be a 'prettier' version for display purposes. For surveys, this is the question text
time String representation of the time the survey question or custom variable was added string  
value The answer to the survey question or the value of the custom variable string  

Structure example:

{
    "@scope": "session",
    "@source": "rule engine",
    "name": "",
    "displayName": "",
    "time": "",
    "value": ""
}

campaignInfo.targetAudience

Property Description Type
id The ID of the target audience (visitor profile) number
name The name of the target audience (visitor profile) string
description The description of the target audience (visitor profile) string

Structure example:

{
    "id": 1,
    "name": "",
    "description": ""
}

campaignInfo.VisitorBehavior

Property Description Type
id The ID of the behavioral targeting rule number
name The name of the behavioral targeting rule string
description The description of the behavioral targeting rule string

Structure example:

{
    "id": 1,
    "name": "",
    "description": ""
}

visitorJourney.pages

Property Description Type Notes
id The ID of the page string  
pageBasic The basic page information object  
pageBasic.referrer The URL of the referrer string Can be null
pageBasic.sections The page sections string Can be null
pageBasic.startTime The start time in standard milliseconds number  
pageBasic.title The title of the page string  
pageBasic.url The URL of the page string  
pageLoaded True if the page has finished loading Boolean  
pageTitle The title of the page string  
referrer The URL of the referrer string Can be null
revActiveOSLs Active on site locations object  
revActiveOSLs.1234 The property name is the ID of the on site location object  
revActiveOSLs.1234.revision The revision of the on site location number  
startTime The start time in standard milliseconds number  
timeOnPage The time (in seconds) the visitor has been on the page number  
url The URL of the page string  

Structure example:

{
    "id": "",
    "pageBasic": {
        "referrer": "",
        "sections": "",
        "startTime": 1,
        "title": "",
        "url": ""
    },
    "pageLoaded": true,
    "pageTitle": "",
    "referrer": "",
    "revActiveOSLs": {
        "1234": {
            "revision": 1
        }
    },
    "startTime": 1,
    "timeOnPage": 1,
    "url": ""
}

Note: Some of the parameters are duplicated within the 'pageBasic' object.

SDE.customerDetails, authenticatedData.customerDetails, claimsAndAuthType.customerDetails

Property Description Type
accountName The name of the company or account string
balance The current balance of the customer string
companySize The number of employees number
companyBranch The company's branch string
customerId The customer ID string
imei Unique phone identifier string
lastPaymentDate The customer's last payment date string
registrationDate The customer's registration date string
role Role title of the consumer in his brand string
socialId The social ID of your choice: Facebook, Twitter, etc. string
status Customer status string
type Customer type string
userName Nickname or username of the consumer string

Structure example:

{
    "accountName": "",
    "balance": "",
    "companySize": 1,
    "companyBranch": "",
    "customerId": "",
    "imei": "",
    "lastPaymentDate": "",
    "registrationDate": "",
    "role": "",
    "socialId": "",
    "status": "",
    "type": "",
    "userName": ""
}

SDE.personalInfo, authenticatedData.personalInfo, claimsAndAuthType.personalInfo

Property Description Type
age The age of the customer number
birthday The customer's date of birth string
company The compamy the customer belongs to string
contactInfo The contact info of the customer array
gender The gender of the customer string
language The language the customer speaks string
name The name of the customer string
firstname The first name of the customer string
lastname The last name of the customer string

Structure example:

{
    "age": 1,
    "birthday": "",
    "company": "",
    "contactInfo": [],
    "gender": "",
    "language": "",
    "name": "",
    "firstname": "",
    "lastname": ""
}

SDE.personalInfo.contactInfo, authenticatedData.personalInfo.contactInfo, claimsAndAuthType.personalInfo.contactInfo

Property Description Type
email The email of the customer string
phone The phone number of the customer string

Structure example:

{
    "email": "",
    "phone": ""
}

Note: This is an array in order that that the customer can provide home contact info, work contact info, and other contact info.

claimsAndAuthType in unauthenticated case

Property Description Type
customerId The customer id string

Structure example:

{
  "claims": {
    "sub": "",
    "iss": "",
    "lp_sdes": [
      {
        "type": "ctmrinfo",
        "info": {
          "customerId": ""
        }
      },
      {
        "type": "personal",
        "personal": {}
      }
    ]
  },
  "acr": "0"
}

note: This enables to send customer id even for unauthenticated user.

SDE.marketingSource

Property Description Type
originatingChannel The channel of the marketing data string
affiliate The affiliate string
campaignId The campaign ID string

Structure example:

{
    "originatingChannel": "",
    "affiliate": "",
    "campaignId": ""
}

SDE.leadGeneration

Property Description Required Type
leadId The ID of the lead optional string
topic The topic of the lead optional string
value The value of the lead optional string

Structure example:

{
    "leadId": "",
    "topic": "",
    "value": ""
}

SDE.transaction

Property Description Type
total The total value of the transaction string
orderId The order ID string
products Array of products, as in the viewedProducts SDE array
numItems The number of items in the purchase number

Structure example:

{
    "total": "",
    "orderId": "",
    "products": [],
    "numItems": 1
}

Note: There's currently a known issue with numItems. This key currently displays as null regardless of the number you pass it.

SDE.shoppingCart

Property Description Type
cartTotal The total value of the cart string
numItems The number of items in the cart number
products Array of products, as in the viewedProducts SDE array

Structure example:

{
    "cartTotal": "",
    "numItems": 1,
    "products": []
}

SDE.viewedProducts, SDE.transaction.[].products, SDE.shoppingCart.[].products

Property Description Type
name The product name string
category The product category string
sku The product SKU string
price The price of the product string
quantity Where applicable — the number of identical items number
statusInStock Where applicable — the stock status of the product string
quantityInStock Where applicable — available quantity of products string

Structure example:

{
    "name": "",
    "category": "",
    "sku": "",
    "price": "",
    "quantity": 1,
    "statusInStock": "low in stock",
    "quantityInStock": 5
}

Note: SDE.viewedProducts does not contain the quantity field.

Note: SDE.transaction.[].products and SDE.shoppingCart.[].products do not contain statusInStock and quantityInStock fields.

SDE.serviceActivity

Property Description Type
category The category of the service activity string
id The ID of the service activity string
status The status of the service activity string
topic The topic of the service activity string

Structure example:

{
    "category": "",
    "id": "",
    "status": "",
    "topic": ""
}

SDE.error

Property Description Type
contextId The context ID string
contextIdTooltip (deprecated) string
message The error message string
messageTooltip The error message tooltip (for display purposes)(deprecated) string
code The error code string
codeTooltip The error code tooltip (for display purposes)(deprecated) string
level The error level number
levelTooltip (deprecated) number
resolved Is the error resolved Boolean
resolvedTooltip (deprecated) string

Structure example:

{
    "contextId": "",
    "contextIdTooltip": "",
    "message": "",
    "messageTooltip": "",
    "code": "",
    "codeTooltip": "",
    "level": 1,
    "levelTooltip": "",
    "resolved": true,
    "resolvedTooltip": ""
}

SDE.searchContent

Property Description Type
keywords The search keywords array

SDE.searchContent.keywords

Property Description Type
value The searched query value string

Structure example:

{
    "keywords": [
        { "value": "Hello world!" },
        { "value": "Hello again!" }
    ]
}

clientProperties

Property Description Type
appId String representation of the Identification of the application string
appVersion The application version, for example in case of mobile it will be the host app version string
browser String represent the browser. For example: chrome, firefox, etc… string
browserVersion Detailed version info of the user agent (browser or host-application) string
deviceFamily For example: personal_computer/tablet/mobile_phone string
deviceModel For example for G3 for LG, iPhone6s for Apple… string
deviceManufacture For example LG, HP, Microsoft… string
integration For example: web_sdk, mobile_sdk, and brand_sdk string
integrationVersion String representation of the integration version string
ipAddress String representation of the ip address string
os String representation of the OS. Contains the operating system, including version info string
osName OS name is a text describing the operating system string
osVersion Specifies the operating system version, and distribution type (if relevant) string
timeZone String representation of the timeZone. For example: "America/Los_Angeles string
features Strings representation of the features the user have got. string