Engagement Attributes Overview Document Version: 1.5 April 2017
ENGAGEMENT ATTRIBUTES OVERVIEW Contents
Introduction ......................................................................................................................................... 3 Uses of Engagement Attributes in LiveEngage .................................................................................... 3 Types of Engagement Attributes ......................................................................................................... 4 eCommerce info ............................................................................................................................... 5 Cart update .................................................................................................................................. 5 Transaction................................................................................................................................... 6 Viewed product ............................................................................................................................ 7 Visitor info ........................................................................................................................................ 8 Customer info............................................................................................................................... 8 Marketing source ....................................................................................................................... 10 Personal info .............................................................................................................................. 10 Visitor Journey ............................................................................................................................... 13 Lead ............................................................................................................................................ 13 Service activity ........................................................................................................................... 14 Visitor error ................................................................................................................................ 15 Searched content ....................................................................................................................... 16 Section........................................................................................................................................ 16 Setting up Engagement Attributes..................................................................................................... 16 Extracting from the page using LivePerson’s scraping tool ........................................................... 17 JavaScript code............................................................................................................................... 18
2
ENGAGEMENT ATTRIBUTES OVERVIEW Introduction LiveEngage provides out-of-the-box basic information about your visitors, for example, the visitor’s geolocation, the amount of time they spent on a page, and which pages they viewed. In order to collect more in-depth, specific information such as product viewed, purchase information, errors the visitor encountered, and search results, you can send this information to LiveEngage by using Engagement Attributes. Information collected using Engagement Attributes can be used to achieve the following:
• • • •
Create specific and advanced targeting of visitors. Empower agents with relevant information during conversations with consumers. Receive a comprehensive view of visitor Engagement History. Measure and track campaign goals.
Uses of Engagement Attributes in LiveEngage Described below are some of the uses of Engagement Attributes in LiveEngage.
• Create more specific visitor targeting: Segment your visitors according to their properties, behavior, and journey on your website, and provide a tailored experience for each segment. For example, provide assistance to visitors who struggle to log in, or offer insurance to a client that is renting a car.
• Conversion / Goal tracking: Measure your campaign performance against your business objectives, whether it’s ROI or service quality. For example, use hotel booking value to track your promotional campaign conversions, or use loan application completion as a goal reached indication.
3
ENGAGEMENT ATTRIBUTES OVERVIEW
• Tools for agents: Provide agents with real-time information about the visitor in order to
• •
improve their efficiency and service quality. For example, provide agents with an order ID for when visitors inquire about the terms and conditions of their order, or provide agents with customer information during a conversation with a registered visitor. Engagement History: Receive a comprehensive view of the visitor journey, behavior and attributes, as part of the Engagement History in order to better track agent performance and take corrective action should the need arise. Authentication Service (OAuth 2.0): Authenticated Customer Information enables visitors that have logged into a brand’s website and initiated a chat to show up as being authenticated. The Agent Workspace then displays, in real-time, the correct and verified PII (Personally Identifiable Information) of the authenticated visitor.
Types of Engagement Attributes There are 10 supported Engagement Attributes, organized into 3 categories:
• eCommerce info • Visitor info • Visitor Journey
Each Engagement Attribute has its own data structure and can be sent to LivePerson using JavaScript code, or extracted from your page using LivePerson’s scraping tool.
4
ENGAGEMENT ATTRIBUTES OVERVIEW Code example: lpTag.sdes = lpTag.sdes||[]; lpTag.sdes.push( // SDEs located here );
eCommerce info eCommerce info Engagement Attributes allow you to track eCommerce-related activities on your website.
Cart update This Engagement Attribute is used to get the status of the visitor’s shopping cart. The cart status includes the product items within the cart and its total monetary value. The cart value and/or the products in the cart can be used to target visitors. For example, you can target low value shoppers and encourage them to buy more in order to get your free shipping coupon. You can also offer complementary products in addition to products in the cart. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("cart")
string
"cart"
true
total
Total cart value
double
11.7
true
currency
Currency of the total cart value
string
USD
false
numItems
Number of items in cart
integer
6
true
products
Array of items in cart
array of Products objects
[{
false "product": {...}, "quantity": 2
} ,{ "product": {...}, "quantity": 1 }]
Products Object: Name
Description
Type
product
Product details
Product object
{
integer
1
quantity
Number of items of this product in cart
Value/Example
Mandatory false
"name": "prod1", "category": "cat_1", "sku": "sku", "price": 7.8 } false
5
ENGAGEMENT ATTRIBUTES OVERVIEW Product Object: Name
Description
Type
Value/Example
Mandatory
name
Product name
string
"prod1"
false
category
Product category name
string
"category1"
false
sku
Product SKU or unique identifier
string
"dep1"
false
price
Product price
double
7.8
false
Cart update SDE JSON example: {
}
"type": "cart", //MANDATORY "total": 11.7, //TOTAL CART VALUE "currency": "USD", //CURRENCY CODE "numItems": 6, //NUMBER OF ITEMS IN CART "products": [{ //ARRAY OF PRODUCTS "product": { "name": "prod1", //PRODUCT NAME "category": "category", //PRODUCT CATEGORY NAME "sku": "sku", //PRODUCT SKU OR UNIQUE IDENTIFIER "price": 7.8 //PRODUCT PRICE }, "quantity": 1 //NUMBER OF PRODUCTS }]
Transaction This Engagement Attribute is used to track any money transaction, purchase of items, or deposit, including the items themselves and their details. The total transaction value can be used to track conversions. It is also displayed in your revenue reports as a means of measuring the monetary value of your campaigns. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("purchase")
string
"purchase"
true
total
Total transaction value
double
11.7
false
currency
Currency of the total transaction value
string
USD
false
orderId
Unique order or receipt ID
string
"orderId123"
false
cart
Cart details
Cart object
{
false "numItems": 6, "products": [ {... }, {...}]
}
6
ENGAGEMENT ATTRIBUTES OVERVIEW Cart object: Name
Description
Products
Array of Items in cart
Type array of Products objects
Value/Example [{
Mandatory false
"product": {...}, "quantity": 2 } ,{ "product": {...}, "quantity": 1 }]
numItems
Number of items in cart
integer
6
false
Transaction SDE JSON example: {
}
"type": "cart", //MANDATORY "total": 11.7, //TOTAL CART VALUE "currency": "USD", //CURRENCY CODE "numItems": 6, //NUMBER OF ITEMS IN CART "products": [{ //ARRAY OF PRODUCTS "product": { "name": "prod1", //PRODUCT NAME "category": "category", //PRODUCT CATEGORY NAME "sku": "sku", //PRODUCT SKU OR UNIQUE IDENTIFIER "price": 7.8 //PRODUCT PRICE }, "quantity": 1 //NUMBER OF PRODUCTS }]
Viewed product This Engagement Attribute is used to track a product or service that interests visitors. Each product is described by Name, Category, and SKU. This information can be used to target visitors. For example, you can offer products to visitors which are in the same category or price range as the products they previously viewed. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("prodView")
string
"prodView"
true
currency
Currency of the viewed products
string
USD
false
products
Array of Items in cart
array of Products objects
[{
false "product": {...}, "quantity": 2
} ,{ "product": {...}, "quantity": 1 }]
7
ENGAGEMENT ATTRIBUTES OVERVIEW Viewed Product SDE JSON example: {
);
}
"type": "cart", //MANDATORY "total": 11.7, //TOTAL VALUE OF THE CART AFTER DISCOUNT "currency": "USD", //CURRENCY CODE "numItems": 6, //NUMBER OF ITEMS IN CART "products": [{ "product": { "name": "prod1", //PRODUCT NAME "category": "category", //PRODUCT CATEGORY NAME "sku": "sku", //PRODUCT SKU OR UNIQUE IDENTIFIER "price": 7.8 //SINGLE PRODUCT PRICE }, "quantity": 1 //NUMBER OF PRODUCTS }]
Visitor info Visitor Info Engagement Attributes allow you to collect more information about your visitors, including where they came from, and the affiliates they are associated with.
Customer info This Engagement Attribute is used to collect information about a registered visitor such as the customer type (for example, VIP or Platinum), and their unique identifier. This information can be used to segment visitors and tailor an experience based on their attributes (customer type, status, and balance). For example, you can invite your most valuable customers to chat with your relevant agents, while offering self-service content to lowtier customers. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("ctmrinfo")
string
"ctmrinfo"
true
ctype
Customer type/tier (case insensitive)
string
"Gold"
false
cstatus
Customer status (case insensitive)
string
"migrated"
false
balance
Customer’s financial balance
double
2.6
false
currency
Currency of the customer's financial balance
string
USD
false
customerId
Customer’s unique identifier
string
"1234abc"
false
socialId
Social Media identifier (e.g., Facebook, Twitter). This parameter represents your internal identifier.
string
"11256324780"
false
imei
Unique device/phone identifier
string
"3543546543545688"
false
8
ENGAGEMENT ATTRIBUTES OVERVIEW userName
Customer’s user name
string
"user000"
false
companySize
Number of company employees
int
500
false
companyBranch
Company branch
string
"East village"
false
accountName
Customer’s company name
string
"oxford insurance company"
false
role
Customer's title
string
"marketing manager"
false
lastPaymentDate
Last payment date. This parameter consists of 3 integer fields: year, month, day.
date object
{ "day": 15, "month": 10, "year": 2014 }
false
registrationDate
Registration date. This parameter consists of 3 integer fields: year, month, day.
date object
{
false
loginStatus
Login status
integer
storeZipCode
A store ZIP code the customer is associated with. The ZIP code is mapped to multiple stores in the same geographic area.
string
"12205"
false
storeNumber
A specific store number the customer is associated with.
string
"1241"
false
"day": 23, "month": 5, "year": 2013 } false
Customer Info SDE JSON example: {
"type": "ctmrinfo", //MANDATORY "info": { "cstatus": "cancelled", //CUSTOMER LIFECYCLE STATUS "ctype": "vip", //CUSTOMER TYPE OR TIER. "customerId": "138766AC", //UNIQUE CUSTOMER IDENTIFIER "balance": -400.99, //CUSTOMER FINANCIAL BALANCE IN DECIMAL VALUE "currency": "USD", //CURRENCY CODE "socialId": "11256324780", //SOCIAL ID: FACEBOOK, TWITTER ETC... "imei": "3543546543545688", //UNIQUE DEVICE OR PHONE IDENTIFIER "userName": "user000", //CONSUMER NICKNAME OR USERNAME "companySize": 500, //NUMBER OF EMPLOYEES "accountName": "bank corp", //CUSTOMER'S COMPANY NAME "role": "broker", //CONSUMER'S TITLE "lastPaymentDate": { "day": 15, //THE DAY OF THE LAST PAYMENT NUMERIC VALUE "month": 10, //THE MONTH OF THE LAST PAYMENT NUMERIC VALUE "year": 2014 //THE YEAR OF THE LAST PAYMENT NUMERIC VALUE }, "registrationDate": { "day": 23, //THE DAY OF THE REGISTRATION NUMERIC VALUE "month": 5, //THE MONTH OF THE REGISTRATION NUMERIC VALUE "year": 2013 //THE YEAR OF THE REGISTRATION NUMERIC VALUE
9
ENGAGEMENT ATTRIBUTES OVERVIEW }
}
}
Marketing source This Engagement Attribute is used to obtain more information about the marketing source of your visitors, which channel or campaign drove visitors to your website, and with which affiliates they are associated. This information can be used to segment visitors and tailor an experience based on the traffic source (originating channel, campaign or affiliate). For example, you can display a specific offer to visitors that arrived to the website through a specific affiliate, or route a visitor to a relevant agent based on the originating channel. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("mrktInfo")
string
"mrktInfo"
true
info
Marketing source information
Info object
{
false
"channel": "1", "Affiliate": "Yahoo", "campaignId": "US coupon campaign" }
Info object: Name
Description
Type
Value/Example
Mandatory
channel
Originating marketing channel
integer
0-Direct, 1-Search, 2-Social, 3-Email, 4-Referral, 5-Paid Search, 6Display
false
affiliate
Affiliate name
string
"Yahoo"
false
campaignId
Campaign ID
string
"camp12"
false
Marketing Source SDE JSON example: {
}
"type": "mrktInfo", //MANDATORY "info": { "channel": "1", //ORIGINATING CHANNEL ENUM "affiliate": "Yahoo", //AFFILIATE NAME "campaignId": "US coupon campaign" //EXTERNAL ORIGINATING CAMPAIGN }
Personal info This Engagement Attribute is used to collect personal information about your visitors. You can pass login information from cookies, or from questions you ask them in your forms.
10
ENGAGEMENT ATTRIBUTES OVERVIEW This information can be used to segment visitors and tailor an experience based on their attributes (age and gender). For example, you can exclude visitors that are too young for your service/product, or display different wording or offers based on the visitor’s gender. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("personal")
string
"personal"
true
firstname
Visitor’s first name
string
"John"
false
lastname
Visitor’s surname
string
"Doe"
false
age
Visitor’s age
Age object
{
false "age": 34, "year": 1980, "month": 4, "day": 15
} contacts
Visitor’s contact info
array of Contact object
[{ "email":"
[email protected]", "phone": "+1 212-7888877" }]
false
gender
Visitor’s gender
integer
0-MALE, 1- FEMALE, 2-OTHER
false
company
Visitor's company
string
"Microsoft Ltd."
false
language
Visitor's language. The value is an ISO 639-1 Alpha-2 [ISO639‑1] language code in lowercase and an ISO 3166-1 Alpha-2 [ISO3166‑1] country code in uppercase, separated by a dash or underscore (for compatibility). For example, en-US or fr-CA.
string
“en-US”
false
Age object: Name age
Description Visitor’s age
Type
Value/Example
Mandatory
integer
47
false
integer
1969
false
Note: If this parameter is not provided, the age is calculated using year, month, day. year
Visitor’s year of birth Note: This parameter is mandatory if the visitor’s
11
ENGAGEMENT ATTRIBUTES OVERVIEW age needs to be calculated. month
Visitor’s month of birth
integer
2
false
day
Visitor’s day of birth
integer
12
false
Contact object: Name
Description
Type
Value/Example
Mandatory
email
Visitor’s email address
string
"
[email protected]"
false
phone
Visitor’s phone number
string
"5558982312"
false
phoneType
Phone type
integer
“HOME”, “MOBILE”, “WORK”, “FAX”, “MAIN”, “HOME_FAX”, “WORK_FAX”, “PAGER”, “OTHER”
false
address
Visitor’s personal addresses
Address object
{ "country": STRING (,
false
"region": STRING } ]
Address object: Name
Description
Type
Value/Example
Mandatory
county
Visitor’s county
string The value is 2 letter code in uppercase ISO3166-1 Alpha-2
"US"
false
region
Visitor’s region
string
"North America"
false
Personal Info SDE JSON example: {
"type": "personal", //MANDATORY "personal": { "firstname": "John", // FIRST NAME "lastname": "Doe", // SURNAME "age": { "age": 34, // AGE AS INTEGER "year": 1980, // BIRTH YEAR "month": 4, // BIRTH MONTH "day": 15 // BIRTH DAY },
12
ENGAGEMENT ATTRIBUTES OVERVIEW
}
}
"contacts": [{ "email": "
[email protected]", // EMAIL "phone": "+1 212-788-8877" // PHONE NUMBER }], "gender": "MALE", // MALE, FEMALE, OTHER "company": "company" // VISITOR COMPANY NAME
Visitor Journey Visitor Journey Engagement Attributes allow you to collect information about key actions that visitors take along their journey, and customize their experience accordingly. This includes the leads they generated, errors they experienced, and more.
Lead This Engagement Attribute is used to track lead information that can help you identify what your visitors are interested in, and where they are in your funnel. This information can be used to track conversions. The lead value will also appear in your revenue reports as a means to measure the monetary value of your campaigns. A session can have more than a single lead in it, and can be connected to a single ticket ID or multiple tickets. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("lead")
string
"lead"
true
lead
Lead details
Lead object
{
false
"topic": "luxury car", "value": 22.22, "leadId": "xyz123" }
Lead object: Name
Description
Type
Value/Example
Mandatory
topic
Lead’s name/topic
string
"topic1"
false
value
Lead’s value
double
99.99
false
currency
Currency of the lead value
string
USD
false
leadId
Lead’s identifier / ticket id
string
"Id12"
false
13
ENGAGEMENT ATTRIBUTES OVERVIEW Lead SDE JSON example: {
}
"type": "lead", //MANDATORY "lead": { "topic": "luxury car test drive 2015", // SUBMITTED LEAD TOPIC/NAME "value": 22.22, //LEAD EVALUATED VALUE "currency": "USD", //CURRENCY CODE "leadId": "xyz123" //LEAD IDENTIFIER OR TICKET ID }
Service activity This Engagement Attribute is used to measure service activities, for example, ordering a checkbook, submitting an application, or requesting a mortgage. This information can be used to track conversions, for example, a visitor that completed a loan application. It can additionally be used to follow up with visitors, for example, engaging with a visitor whose application has been cancelled. A session can have more than one service activity in it. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("service")
string
"service"
true
service
Service details
Service object
{
false "topic": "order", "status": 0, "category": "finance", "serviceId": "service12"
}
Service object: Name
Description
Type
Value/Example
Mandatory
topic
Service topic or name
string
"order checkbook"
false
status
Status
integer
0-Complete, 1-In Progress, 2- Approved, 3- cancelled, 4-Not Approved, 5-Reviewed, 6- Missing Details, 7- Closed, 8-Removed, 9-Assigned, 10-Waiting
false
category
Category name
string
"Finance"
false
serviceId
Service unique identifier or ticket id
string
"service17"
false
14
ENGAGEMENT ATTRIBUTES OVERVIEW Service Activity SDE JSON example: {
"type": "service", //MANDATORY "service": { "topic": "order checkbook", // SERVICE ACTIVITY TOPIC OR NAME "status": 0, // STATUS ENUM "category": "finance", // SERVICE CATEGORY NAME "serviceId": "service12" // SERVICE UNIQUE IDENTIFIER OR TICKET ID }
}
Visitor error This Engagement Attribute is used to collect information about errors that visitors experience when they browse the website and fill out forms. All errors are aggregated in a list during the session until resolved. This information can be used to offer help to visitors who are struggling to complete a specific action. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("error")
string
"error"
true
error
Error details
Error object
{
false
"contextId": " application", "message": "Missing data", "code": "er100004" "level": 10, "resolved": false }
Error object: Name
Description
Type
Value/Example
Mandatory
contextId
Error context
string
"Credit card application"
false
message
Error message
string
"Expiration date missing"
false
code
Error code
string
"XV45EZT"
false
level
Error level
long
10
false
resolved
Resolution status
Boolean
false
false
Visitor Error SDE JSON example: {
"type": "error", //MANDATORY "error": { "contextId": "Credit card application", "message": "Expiration date missing", // ERROR MESSAGE
15
ENGAGEMENT ATTRIBUTES OVERVIEW
}
}
"code": "er100004" // ERROR CODE "level": 10, "resolved": false
Searched content This Engagement Attribute is used to report on content that was searched by consumers on the brand’s website such as FAQ and different articles or products. This information can be used to offer help to visitors based on their searches. Data structure: Name
Description
Type
Value/Example
Mandatory
type
The event name ("searchInfo")
string
"searchInfo"
true
keywords
Array of the search keywords
array
["Reset password"]
false
Searched content SDE JSON example: {
"type": "searchInfo", //MANDATORY "keywords": ["Reset password"], //TERMS SEARCHED BY A VISITOR. FOR EXAMPLE: FAQ ABOUT RESET PASSWORD }
Section This Engagement Attribute is used to determine the appropriate Location for engaging with visitors, or to display where the visitors are browsing. Code example: lpTag.section = [ //SET A LIST OF YOUR SITE SECTIONS "electronics", //CAN BE A SECTION OR A SUB-SECTION "user agreement faqs" ];
Setting up Engagement Attributes Engagement Attributes configuration is located in the Data Sources page, accessed from the Campaigns footnote.
16
ENGAGEMENT ATTRIBUTES OVERVIEW
The data can be sent to LivePerson using one of the following methods:
• Extracting from the page using LivePerson’s scraping tool • JavaScript code Extracting from the page using LivePerson’s scraping tool This option requires no code, and assumes the information exists on your webpage. To track Engagement Attributes, follow the steps described below.
1. Log into LiveEngage. At the top of the page, click Campaigns, and then, in the footnote, click Data Sources. The Data Sources page is displayed.
2. Click Configuration next to the relevant Engagement Attributes category. The Configuration page is displayed for the relevant category. 3. For each property, select how to extract the information. The following options are available: o o o
HTML element by class name HTML element by ID JavaScript global variable
4. Click Save.
17
ENGAGEMENT ATTRIBUTES OVERVIEW Notes: i. ii.
LiveEngage will “trim” any non-numeric characters such as dollar signs for properties that represent numbers, for example, “total”. Make sure that the identifier class name or ID is unique. LiveEngage will look for your identifier on all of your pages.
JavaScript code This option requires the use of JavaScript code. This method is required if the data you want to collect does not exist on the page. To track Engagement Attributes, follow the steps described below.
1. Insert the Engagement Attribute declaration in a script tag, either at the end of the LiveEngage tag script, or in a separate script tag just after. 2. Insert the push function below the declaration and add the type of Engagement Attribute, for example, “prodView”. Notes: i. ii.
The push method expects a JSON format. The JSON structure is unique to each Engagement Attribute. The appropriate format for each Engagement Attribute can be found in Types of Engagement Attributes section below.
3. Validate the code by going to the visitor page and simulating the visitor actions that trigger an event. Example for data that is sent when a visitor views “Asics Women's GT 2000 4”: lpTag.sdes = lpTag.sdes||[]; lpTag.sdes.push( { "type": "prodView", //MANDATORY "products": [{ //ARRAY OF PRODUCTS "product": { "name": "Asics Women's GT 2000 4", //PRODUCT NAME "category": "Women running shoes", //PRODUCT CATEGORY NAME "sku": "10305020", //PRODUCT SKU OR UNIQUE IDENTIFIER "price": 119.95 //PRODUCT PRICE } }] } );
Note: When LiveEngage gets a list, the system never calculates totals nor numbers of items. LiveEngage relies on the event to send that information. This document, materials or presentation, whether offered online or presented in hard copy ("LivePerson Informational Tools") is for informational purposes only. LIVEPERSON, INC. PROVIDES THESE LIVEPERSON INFORMATIONAL TOOLS "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The LivePerson Informational Tools contain LivePerson proprietary and confidential materials. No part of the LivePerson Informational Tools may be modified, altered, reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), without the prior written permission of LivePerson, Inc., except as otherwise permitted by law. Prior to publication, reasonable effort was made to validate this information. The LivePerson Information Tools may include technical inaccuracies or typographical errors. Actual savings or results achieved may be different from those outlined in the LivePerson Informational Tools. The recipient shall not alter or remove any part of this statement. Trademarks or service marks of LivePerson may not be used in any manner without LivePerson's express written consent. All other company and product names mentioned are used only for identification purposes and may be trademarks or registered trademarks of their respective companies. LivePerson shall not be liable for any direct, indirect, incidental, special, consequential or exemplary damages, including but not limited to, damages for loss of profits, goodwill, use, data or other intangible losses resulting from the use or the inability to use the LivePerson Information Tools, including any information contained herein. © 2017 LivePerson, Inc. All rights reserved.
18