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