The diagram below describes all the events in the life cycle of a session from inception to termination. Session redirection to another operator may not occur and is shown for completeness only.
Event
Time
SessionCreated
"2024-05-02T08:58:58:888364+02:00"
SessionStarted
"2024-05-02T08:58:58:888364+02:00"
SessionOperatorJoined
"2024-05-02T08:59:18:467643+02:00"
SessionForwarded (optional)
"2024-05-02T09:02:26:568252+02:00"
SessionEnded
"2024-05-02T09:13:07:965191+02:00"
SessionOperatorLeft
"2024-05-02T09:13:07:965191+02:00"
SessionOperatorConcluded
"2024-05-02T09:15:50:838056+02:00"
SessionCreated
A new session has been created in the tenant and the event is logged before the operator or chatbot joins the session.
The session has started (e.g. a client has entered the queue and an operator is being searched for). This applies to all channels in mluvii. A chatbot can also communicate with the client in a session.
It happens at the moment the operator joins the session. For example, right at the beginning (after SessionCreated). It is valid that for each operator in the session, a custom event is logged.
If multiple operators are active in the session, only one of them is logged into SessionOperatorLeft. For the others, the SessionOperatorConcluded event is logged.
It happens when ACW is automatically/manually terminated. Then also when the session is redirected from the operator to the next destination (operator/group/chatbot/external phone number).
The event is logged with each automatic message in the session. For example, it could be an automated message sent due to client inactivity or an operator being busy handling multiple interactions at once.
The event captures the moment when the operator upgrades the webchat to an Audio/Video call. The operator clicks on the "Call" tab in the interface, enters the A/V room, and invites the client.
This happens when the operator terminates the A/V call and continues text-only communication. The operator clicks the "Disconnect Client" button or the cross button in the corner of the A/V blade.
It happens every time each contact is called within the campaign where CallScript is set up. The CallScript does not need to be acknowledged by the operator.
This can be an introductory message set at the Facebook page level (outside the app), or messages sent to the client outside the mluvii app (via Facebook Messenger).
The OriginalFormID parameter is the existing HeroCard ID in mluvii.
The parameters used in the given HeroCard are stored in params together with the entered values (e.g. "oo1_guest_email", "oo1_guest_ident", "oo1_guest_phone").
There are also cases where the HeroCard is confirmed by the operator instead of the client. In this case, the value false is stored in the "submittedByClient" parameter.
It occurs when the client enters an e-mail in the Feedback Form and sends a transcript, or the operator sends it.
Parameter
Value
Example
sessionId
number
7293902
activityId
number
50108494
time
datetime
yyyy-MM-dd'T'HH:mm:ss,SSSZZZZ
type
string
ChatToMail
client
string
Guest
The value Guest is stored in the "client" parameter if the client sends the session transcript itself. Or the value User and the parameter "userID" is used, which is filled only if the initiator of the action is an operator.
It is logged if the session is automatically terminated after 24 hours of queuing. This is particularly relevant for WhatsApp. You can also track this event for Facebook Messenger sessions.
Parameter
Value
Example
sessionId
number
7293902
activityId
number
50108494
time
datetime
yyyy-MM-dd'T'HH:mm:ss,SSSZZZZ
type
string
LastFarewellMessage
text
string
We apologize, but your request...
JSON Example
{"eventType":"SessionActivityLastFarewellMessage","data": {"sessionId":7404414,"activityId":51135367,"time":"2024-05-15T15:32:58.045333+02:00","type":"LastFarewellMessage","heroCard":null,"heroCardParams":null,"callScript":null,"client":null,"text":"We’re sorry, but your request was automatically closed due to exceeding the 24-hour response time set by WhatsApp and Facebook. If your question is still up to date, please contact us again. Thank you.","previewUrl":null,"file":null,"associatedSharedFileUrl":null,"toOperatorUserId":null,"toOperatorFullName":null,"toGroupId":null,"toGroupName":null,"toPhoneNumber":null,"note":null,"chatbotMessageContent":null,"submissionIdentification":null,"userId":null,"chatbotId":null,"chatbotHeroCardSubmissionKey":null,"chatbotHeroCardSubmissionValue":null,"formFieldSetUUID":null,"terminationReason":null }}
SessionActivityPreviewUrl
A message containing a URL link appears in the session.
Depending on which party sent the link, the value "guest", "user" or "chatbot" is stored in the "Client" parameter, which is rendered (in both cases only the "Client" (guest, user) parameters change). If the URL is sent by an operator, the userId is also filled in.
JSON Example
{"eventType":"SessionActivityPreviewUrl","data": {"sessionId":7383741,"activityId":50899088,"time":"2024-05-06T15:10:16.12969+02:00","type":"PreviewUrl","heroCard":null,"heroCardParams":null,"callScript":null,"client":"Guest","text":null,"previewUrl": {"title":"Seznam – najdu tam, co neznám","imageUrl":"http://www.seznam.cz/media/img/logo-share-square_v2.png","contentType":1,"originalUrl":"http://www.seznam.cz/","originalActivityId":50899086 },"file":null,"associatedSharedFileUrl":null,"toOperatorUserId":null,"toOperatorFullName":null,"toGroupId":null,"toGroupName":null,"toPhoneNumber":null,"note":null,"chatbotMessageContent":null,"submissionIdentification":null,"userId":null,"chatbotId":null,"chatbotHeroCardSubmissionKey":null,"chatbotHeroCardSubmissionValue":null,"formFieldSetUUID":null,"terminationReason":null }}
SessionActivityOnHold
During a call, the operator puts the call on hold (the "Hold call" button).
The event is closely related to another event (SessionActivityOnHold) that precedes this one. This time the operator clicks on the "Continue call" button.
It happens when forwarding sessions from the operator (userId) or chatbot (chatbotId) side. If the operator (chatbot) is switching to an operator, the "toOperatorUserId" or "toOperatorFullName" parameter is used.
Parameter
Value
Example
sessionId
number
7293902
activityId
number
50108494
time
datetime
yyyy-MM-dd'T'HH:mm:ss,SSSZZZZ
type
string
SessionForwarded
client
string
User
toGroupId
number
7229
toOperatorId
number
2710
If the session is switched to an operator group, the "toGroupId" or "toGroupName" parameter is used. Interestingly, the same parameters are also used when forwarding to a chatbot.
Within a session, a file is shared (by the operator or client).
Parameter
Value
Example
sessionId
number
7293902
activityId
number
50108494
time
datetime
yyyy-MM-dd'T'HH:mm:ss,SSSZZZZ
type
string
SharedFile
client
string
User
userId
number
2710
file
-
-
.../id
number
2635914
.../operatorOwner
number
2710
.../departmentOwner
number
62
.../name
string
image
An operator can share its own or shared files. You can tell by the "operatorOwner" and "departmentOwner" parameters. If the operator shares a file from a file from his drive, both of these parameters will be empty.
A client can also share a file if prompted to do so by the operator. In this case, the value "Guest" will appear in the "client" parameter.
{"eventType":"SessionActivityWelcomeMessage","data": {"sessionId":7383872,"activityId":50899893,"time":"2024-05-06T15:31:14.63027+02:00","type":"WelcomeMessage","heroCard":null,"heroCardParams":null,"callScript":null,"client":null,"text":"Dobrý den, jsme rádi, že využíváte chat firmy mluvii. Co vás k nám přivádí? ","previewUrl":null,"file":null,"associatedSharedFileUrl":null,"toOperatorUserId":null,"toOperatorFullName":null,"toGroupId":null,"toGroupName":null,"toPhoneNumber":null,"note":null,"chatbotMessageContent":null,"submissionIdentification":null,"userId":null,"chatbotId":null,"chatbotHeroCardSubmissionKey":null,"chatbotHeroCardSubmissionValue":null,"formFieldSetUUID":null,"terminationReason":null }}
SessionCallParamsUpdated
It is logged every time a session parameter is changed and it does not matter who makes the change (operator, chatbot, or supervisor after the session is over).
The webhook is delivered when the operator disconnects from the e-mail thread (the operator replies to the e-mail, returns it to the queue for processing, or ignores it).