RightNow / WebChat / LiveChat

Gold Contributor
Gold Contributor

Has anyone used Tealium to track RightNow / WebChat / LiveChat products?

We use Oracle's Chat Now service and I would like to track it using Adobe Analytics.

Can you share what you did and how you did it please?

Ideally, I want to be able to measure:
- That the chat console has opened
- That the chat has started. Ie, the visitor has connected to an operator / chat operative
- Measure each click on the chat "submit" / "send" button
- Measure the click on the chat "close" button

8 REPLIES 8

RightNow / WebChat / LiveChat

Tealium Employee
Hi Jonathan, I did most this with a client and I wrote up a summary to them early last year. I need to edit it a good bit, but I'll post up a document when I'm done. It's quite a large summary but I'll try to get it to you by end of day tomorrow.

RightNow / WebChat / LiveChat

Gold Contributor
Gold Contributor
Hi Dan - that would be great. More detail the better. Thank you

RightNow / WebChat / LiveChat

Bronze Contributor
Bronze Contributor

Hi Dan, Its been a while since this thread was active but I wonder if you ever had a solution for this? I'm facing this issue at the moment and would appreciate any help you can offer!

RightNow / WebChat / LiveChat

Tealium Employee

Hi Miranda,

 

Looks like my answer didn't copy over from the old community to the new community so we are working on tracking it down and will post once we have it.

RightNow / WebChat / LiveChat

Employee Emeritus

Hello @miranda_debenha and @dan_george. Thank you for your patience. Please find the Accepted Solution below and attached.

 

Overview

This document covers an implementation for a client of the Oracle RightNow Chat solution across multiple pages in their web site. The client and Tealium wanted to use only one tag instance. There were many customizations that had to be applied both to the configuration of the chat itself and the logic applied to tracking chat actions.

 

Tag Configuration

  • Site: Value of https://SITE.widget.custhelp.com/…
    • Can be empty and then use a mapping set by an extension e.g. JavaScript extension "Set Chat Environment" discussed below
  • Div ID: states the HTML element ID in the page where the proactive chat should appear
  • Module: The only Module currently supported is “ProactiveChat”
  • Seconds: Number of seconds before proactive chat will appear
    • Can be empty and then use a mapping set by an extension e.g. Lookup Table extension "determine chat trigger time"

TagConfiguration.png

 

Mapped Data Sources

  • chat_login_page: Statically set by Set Data Values extension "Chat Specs" to "/app/chat/chat_launch/chat_source_page/"+b.key_page_name. The b.key_page_name will be discussed later in detail. This value is part of a URL call to the chat solution that will tell the agent from which page the chat launched.
  • chat_avatar_image: Statically set by Set Data Values extension "Chat Specs" to an empty string ""
  • chat_label_avatar_image: Statically set by Set Data Values extension "Chat Specs" to an empty string ""
  • chat_label_dialog_header: Statically set by Set Data Values extension "Chat Specs" to an empty string ""
  • chat_label_question: Statically set by Set Data Values extension "Chat Specs" for the opening question dialog e.g. "Is there anything we can help you with today?"
  • chat_label_refuse_checkbox: Statically set by Set Data Values extension "Chat Specs" forthe text that appears on the "Do not ask me again" modal when the customer attempts to close the chat modal
  • chat_label_title: Statically set by Set Data Values extension "Chat Specs" to the label of the chat modal e.g. "LIVE CHAT SUPPORT"
  • chat_logo_image: Statically set by Set Data Values extension "Chat Specs" to an empty string ""
  • chat_modal: Statically set by Set Data Values extension "Chat Specs" to true (boolean)
  • chat_login_page_height: Statically set by Set Data Values extension "Chat Specs" to set the height of the chat window e.g. "520"
  • seconds: Statically set by lookup table extension called "determine chat trigger time"

Mapped-Data-Sources.png

Extensions

  • Key Page Look Up: the current page URL is compared and a key page name (b.key_page_name) value is output. It is very important to have matches on all URLs so that the key page name is output. It is required as part of the input data into the chat system so that it can also also perform a look up and tell the agent from which page the chat was initiated. The importance of this cannot be expressed enough. This output is used for the "chat_login_page" mapping. Key-Page-Lookup.png
  • Build Default Page Name from URL: creates a base url of just the domain and pathname to be used of no key page name is output
    Build-Default-Page-Name.png
  • Set Default Page Name: if no lookup match occurred in the "Key Page Look Up" lookup table then the b.key_page_name is set to variable "page_base_url". This "page_base_url" variable is created in the Join Data Values extension "Build Default Page Name from URL" above. This may be used for the "chat_login_page" mapping.
    Set-Default-Page-Name.png
  • Determine chat trigger time: the current page URL is compared and the output is the number of seconds that chat should wait before it proactively appears. This value is mapped to "seconds". This allows for different pages to have a different proactive pop time.
    Determine-Chat-Trigger-Time.png
  • Chat Specs: Sets many of the specifications of the chat that appears to the customer. All of these values are used in the Mapped Data Sources section. The chat_login_page is set to: "/app/chat/chat_launch/chat_source_page/"+b.key_page_name
    Chat-Spec.png
  • Set Chat Environment: This dynamically sets the chat site based on the domain. If the domain contains "qa " or "staging" then the site is "SITE--tst", otherwise it is just "SITE". u.site is a reference to code within the Tealium template. This is used as the "Site" Tag Configuration value so be sure not to change the variable name.
    Set-Chat-Environment.png

Sample URL call to the chat solution

Here is a sample call that occurs with the above configurations https://SITE.widget.custhelp.com/ci/ws/get/w/2/co/[{"chat_login_page":"/app/chat/chat_launch/cha t_source_page/Start", "chat_login_page_height":520, "div_id":"myChat", "instance_id":"spac_0","label_question":"Is there anything we can help you with today?", "label_refuse_checkbox":"Do not ask me again", "label_title":"LIVE CHAT SUPPORT", "modal":true, "module":"ProactiveChat","seconds":"60", "type":2}]/https_request/1

 

Notice how the values set in extension "Chat Specs" are passed through in this URL. Notice the "chat_login_page" has a value ending in "Start" that will be output from the "Key Page Look Up" lookup table. Also notice the "seconds" has a value of "60" that was an output from the "determine chat trigger table" lookup table.

 

The final invite window should look something like this:
Live-Chat-Support.png

 

Custom Tracking

The out of the box functionality for the chat solution did not meet the needs of the client andneeded to be updated from default. Tealium worked with an Oracle consultant to update the functionality. It should be noted that what was implemented was/is not fully supported by Oracle in that any customizations should be handled by the client. Oracle did provide the foundation of this code to Tealium though and the final solution worked very well.

 

Changes required:

  • chatOffered: default functionality is to pop chat once and never again. Client wanted this changed so that it required user action to reject/refuse before chat not be popped again. Now we just erase the chat cookie so that chat can pop again on a later page (set the “noChat” cookie with an expiration date 10 days previous).
  • chatAccepted: default functionality is such that if a user moves to another page that a second chat can appear to the user. This is not the desired functionality so it was changed to set a cookie that tells the chat solution not to pop a second chat on subsequent pages while still allowing the first chat to persist across pages (set the “noChat” cookie to “RNTLIVE” which signifies chat in session).
  • chatRejected (when user clicks the "X" icon or "No" button): default functionality is to not pop chat again. Client wanted this changed, as their belief was that if a user clicked "No" that the business still wanted the opportunity to pop again because the customer wasn't actually refusing the chat. Now we just erase the chat cookie so that chat can pop again on a later page (set the “noChat” cookie with an expiration date 10 days previous).
  • chatRefused(when user checks the "Do not ask me again" checkbox): default functionality is to not pop a chat again for 30 days and this was retained. The belief is that if a customer refuses to take a chat then they should not be bothered again. This is only documented so the difference between Rejected and Refused is understood. If this needs to be changed the code below should be clear enough to be updated.

The reasoning for using the setInterval isn’t remembered. This may need to be changed to a setTimeout so that the large chat library has time to load before this code is run. This should be the last chat extension to run.

 

Note: when copied into your code editor, be sure that the single and double quotes are not converted to Microsoft quotes which are handled differently than true quotes.

if(typeof _tealium_chat=="undefined"){
_tealium_chat=function(){
if(typeof spac_0!="undefined"){
if(typeof(spac_0.prototype)=="undefined"){
spac_0.prototype={
chatOffered: spac_0.chatOffered,
chatAccepted: spac_0.chatAccepted,
chatRejected: spac_0.chatRejected
}
spac_0.chatOffered=function(){
spac_0.prototype.chatOffered.call(this);
RightNow.Client.Util.setCookie("noChat","", -10,'/','','');
}
spac_0.chatAccepted=function(){
RightNow.Client.Util.setCookie("noChat", 'RNTLIVE', '', '/', '', '');
spac_0.prototype.chatAccepted.call(this);
}
spac_0.chatRejected=function(){
RightNow.Client.Util.setCookie("noChat","", -10,'/','','');
spac_0.prototype.chatRejected.call(this);
}
}
}
}
setInterval("_tealium_chat()",1000);
}

 

Remember to give me a kudo if you like my post! Accepting my post as a solution is even better! Also remember that search is your friend.

RightNow / WebChat / LiveChat

Bronze Contributor
Bronze Contributor

That's great, thank you Kathleen!

RightNow / WebChat / LiveChat

Employee Emeritus

It's actually @dan_george who deserves all the credit, @miranda_debenha. :-)

Remember to give me a kudo if you like my post! Accepting my post as a solution is even better! Also remember that search is your friend.

RightNow / WebChat / LiveChat

Gold Contributor
Gold Contributor
 
Public