init(options, config, historyWatch)
Initializes the chat data (loads it from the server or creates a new chat)
options Object
room String: Target room for the chat.lang String: Language of the chat.source String: Source of the chat.id String: Id of the chat. If id is passed, the chat will be loaded from the server.config Object optional
assignMaxAttempts Number: Maximum number of attempts to assign the chat.assignTimeout Number: Time in seconds a chat will be assign to an agent before performing another attempt.historyWatch optional Boolean: Whether to include actions performed by chat watchers in history or not.
return Promise{Chat}
You can check the Chat object definition in the Chat section.
searchAgent(algorithm)
Look for an agent to attend the chat using the provided algorithm.
algorithm optional String: Algorithm name return Promise{Object}
Response object:
{
agent: {
id,
name,
nickname,
providerId
}
}sendUserActivity(type)
Send user activity
type String: Type of activity ('writing', 'stop-writing' or 'not-writing')return Promise{Object}
Response object:
{
success: Boolean
}sendMessage(message, onCreate)
Send a message
message String: Message textonCreate Function: Callback executed when message is created on the serverreturn Promise{Object}
The response object is an object like the postChatMessageResponse definition documented here in the postChatMessageResponse section.
readMessage(messageId)
Send a message read event
messageId String: Id of the read messagereturn Promise{Object}
The response object is an object like the postChatMessageResponse definition documented here in the postChatMessageResponse section.
sendMedia(media, onProgress)
Send media
media Object
An instance of File
onProgress Function: Callback executed when there's progress on the upload
return Promise{Object}
Response object:
{
media: {
id,
name,
size,
senderId
}
}close(extraData)
Close the chat
extraData optional Object: Other data you want to attach to the close action.return Promise{Object}
Response object:
{
success: Boolean
}hasOtherUsers()
Whether the chat has other users or not
return Boolean: Whether the chat has other users or not
getId()
Retrieves the chat ID
return String: The chat ID
importHistory(history)
Import external history into the chat
history Array: History entries to be imported. You can check the definition of a History Entry here in the HistoryEntry sectionreturn Array: The full chat history
'user:joined'
Triggered when a user joins the chat
Event data:
{
chat, // Object with chat properties
mode, // String 'watch' or empty otherwise
sender, // String with the sender id
transfer, // Boolean stating whether the join is from a transfer or not
user // Object with the user properties
}'user:left'
Triggered when a user leaves the chat
Event data:
{ chatId, userId }'user:activity'
Triggered when user activity is received
Event data:
{
userId,
type // 'writing', 'stop-writing' or 'not-writing'
}'message:received'
Triggered when a message is received
The event data is an object like the postChatMessageResponse definition documented here in the postChatMessageResponse section.
'message:read'
Triggered when a message read is received
The event data is an object like the postChatMessageResponse definition documented here in the postChatMessageResponse section.
'chat:closed'
Triggered when the chat is closed
Event data:
{ chatId, userId }'chat:intervened'
Triggered when a chat is intervened
Event data:
{
chat, // intervened chat object
interventor // interventor user object
}'forever:alone'
Triggered when there aren't any agents available for a chat
Event data:
{ chatId }'queue:update'
Only works if queue mode is active.
Triggered when the chat is in queue and its position in the queue changed.
Event data:
{ queuePosition, waitingTime }'chat:timer:expiryAlert'
Triggered when the chat is close to expiration.
Event data:
{
chatId,
timeLeft // in seconds
}The Chat object properties match the Chat object definition, which can be checked here in the Chat section.