Client Tracking API Tutorial
Integrate Userlike with your website tracking solution
If you’re already using a tracking solution for your website, you can integrate it with Userlike and track Userlike-specific events.
Provide a JavaScript callback function and Userlike’s chat client will send relevant tracking events.
Define a function named userlikeTrackingEvent
to receive the events.
In your function you need to implement a specific tracking call to your tracking system.
Before you start
- Due to limitations of client based tracking (e.g. ad blockers) the data cannot be compared to our backend based solution Userlike Analytics.
- This is an advanced feature, which needs to be implemented by your development team.
Event names
The function argument string “event_name” can have the following values.
Event | Description |
---|---|
button_displayed
|
Chat button was displayed to contact on your website |
chat_connected
|
Website Messenger connected to Userlike server after contact sent a first message |
chat_connected_proactive
|
Website Messenger connected to Userlike server after contact sent a first message in Proactive Mode |
chat_requested
|
Conversation initiated by Userlike system after contact clicked the button to start a new conversation |
chat_started
|
Conversation started after contact clicked the button to start or continue a conversation |
chat_started_proactive
|
Conversation started in Proactive Mode after contact clicked the button to start a new conversation |
chat_window_maximized
|
Contact maximized the Website Messenger by clicking the chat button or by clicking the button to start or continue a conversation |
chat_window_minimized
|
Contact minimized the Website Messenger |
contact_first_message
|
First message sent by contact |
disclaimer_ok
|
Contact accepted data privacy notice |
error_message
|
Error message displayed to contact |
feedback_rating_show
|
Feedback & rating screen displayed to contact |
feedback_submit
|
Contact submitted feedback |
group_select_show
|
Group Select screen displayed to contact |
group_select_submit
|
Contact selected operator group, Website Messenger connected to Userlike server |
message_client_terminating
|
Operator sent message to contact or set the conversation to “ended” |
message_operator_terminating
|
Contact sent message to operator |
post_survey_show
|
Post-conversation survey was displayed to contact |
post_survey_submit
|
Post-conversation survey was answered and submitted by contact |
pre_survey_show
|
Pre-conversation survey was displayed to contact |
pre_survey_submit
|
Pre-conversation survey was answered and submitted by contact |
proactive_offer
|
Website Messenger opened after proactive timer has run down |
proactive_timer
|
Proactive timer started as contact opened the page |
rating_submit
|
Contact submitted a rating |
register_cancel
|
Contact skipped the registration screen |
register_show
|
Registration screen was displayed to contact |
register_submit
|
Registration was filled out and submitted by contact |
slot_available
|
Userlike checked for free chat slots among allocated operator group and found one |
slot_unavailable
|
Userlike checked for free chat slots among allocated operator group and found none |
transcript_cancel
|
Contact left the transcript screen or closed the Website Messenger without requesting a transcript |
transcript_show
|
Contact opened the transcript screen |
transcript_submit
|
Contact requested a transcript by submitting their email address |
Global context
The function argument “global_ctx” is a JavaScript object that will have the following values:
Name | Type | Description | Optional |
---|---|---|---|
client_uuid
|
String | Unique ID of the contact | |
operator_group_id
|
Integer | ID of the operator group connected to the Widget | |
widget_id
|
Integer | ID of the Widget | |
widget_lang
|
String | ISO 639-1 language code of the current Widget |
Session context
The function argument “session_ctx” is a JavaScript object that will have the following values. Depending on the state and configuration of your Widget, values will be defined or undefined.
Name | Type | Description | Optional |
---|---|---|---|
session_id
|
String | Session ID per browser session | |
chat_id
|
String | Chat ID which relates to the chat transcripts | |
client_name
|
String | Name of the contact | |
client_email
|
String | Email of the contact | |
operator_id
|
Integer | Operator ID of the current chat session | |
operator_name
|
String | Operator name of the current chat session | |
custom_data
|
Object | Your currently assigned custom data |
Sample code
Here is sample using Google Analytics as a tracking backend.