Conversation Classes

The conversation classes represent and manage chats and calls in SalesIQ, offering structured access to conversation details, messages, media, and participant information.

Classes:

Note: This API is supported from version 10.0.0.

SalesIQConversation

The SalesIQConversation class represents a conversation in Zoho SalesIQ, which can be either a chat or a call. It is a sealed class with the following subclasses:

  • SalesIQChat: Represents a text-based conversation with an operator or bot.
  • SalesIQCall: Represents a voice/video call between the user and an operator.

Common Properties

PropertyData TypeDescription
idStringUnique identifier for the conversation.
customConversationIdStringThe custom identifier for the conversation (if applicable).
questionStringThe initial question or message that started the conversation.
attenderIdStringThe ID of the assigned operator (if any).
attenderNameStringThe name of the assigned operator.
attenderEmailStringThe email of the assigned operator.
departmentNameStringThe department handling the conversation.
feedbackStringFeedback provided by the visitor about the conversation.
ratingStringRating provided by the visitor.
queuePositionIntPosition in the queue (if applicable).
mediaMediaMedia details related to the conversation.

SalesIQConversation.Chat

Represents a chat-based conversation.

Additional Properties

PropertyData TypeDescription
isBotAttenderBooleanIndicates whether the chat is attended by a bot.
statusChatStatusThe current status of the chat.
unreadCountIntNumber of unread messages in the chat.
lastMessageSalesIQMessageThe last message exchanged in the conversation.

ChatStatus

Defines possible statuses for a chat.

public enum Status { WAITING, CONNECTED, MISSED, CLOSED, TRIGGERED, PROACTIVE }

  • WAITING: The visitor is waiting for an operator/bot.
  • CONNECTED: The chat is active with an operator/bot.
  • MISSED: The chat was not attended by an operator/bot.
  • CLOSED: The conversation has been closed.
  • TRIGGERED: The chat was initiated by a system trigger.
  • PROACTIVE: The operator proactively started the conversation.

SalesIQConversation.Call

Represents a call-based conversation.

Additional Properties

  • status (SalesIQCallConversationStatus): The current status of the call.

Call Status

Defines possible statuses for a call.

public enum Status { WAITING, CONNECTED, MISSED, CLOSED }

  • WAITING: The call is ringing.
  • CONNECTED: The call is active.
  • MISSED: The call was not answered.
  • CLOSED: The call has ended.

SalesIQConversation.Media

Represents media details for a conversation.

Properties

PropertyData TypeDescription
idStringUnique identifier for the media.
endTimeLongThe timestamp when the media session ended.
initiatedByUserTypeIndicates whether the call was started by the visitor or operator.
pickupTimeLongTimestamp when the call was picked up.
connectedTimeLongTimestamp when the call connection was established.
statusStatusThe current status of the media.
endedByUserTypeThe user type that ended the media session.
typeStringThe type of media (e.g., audio, video).
createdTimeLongTimestamp when the media session was created.

Media Status

Defines possible statuses for a media session.

public enum Status { ENDED, REJECTED, MISSED, CANCELLED, CONNECTED, INVITED, INITIATED, ACCEPTED }

  • INVITED: A call invitation has been sent.
  • INITIATED: The media session was started.
  • ACCEPTED: The call invitation was accepted.
  • CONNECTED: The media session is active.
  • ENDED: The media session has ended.
  • REJECTED: The call invitation was rejected.
  • MISSED: The call was not answered.
  • CANCELLED: The call was canceled before it was answered.

User Type

Represents the type of user in the conversation.

public enum UserType { USER, AGENT }

  • USER: The end-user or customer.
  • AGENT: The support agent or bot handling the conversation.

SalesIQMessage

Represents an individual message in a chat.

Properties:

PropertyData TypeDescription
senderSalesIQSenderDetailsThe sender's name and ID. 
textStringContent of the message.
typeStringType of message (e.g., text, file).
IdStringID of the message.
timeLongTimestamp of the message.
isReadBooleanWhether the message has been read.
sentByUserBooleanIndicates if the message was sent by the visitor.
isEditedBooleanIndicates if the message is been edited after sent.
isDeletedBooleanIndicates if the message is been deleted.
fileSalesIQFileAny file attached to the message.
statusSalesIQMessageStatusThe message status.

SalesIQSenderDetails

Represents the details of the sender of the last message.

PropertyData TypeDescription
idStringUnique identifier of the sender.
nameStringDisplay name of the sender.

SalesIQMessageStatus 

  • SENDING: The message is being sent.
  • UPLOADING: The file is being uploaded.
  • SENT: The message was successfully sent.
  • FAILURE: The message could not be sent.

SalesIQFile

Represents a file attached to a message.

Properties:

PropertyData TypeDescription
nameStringName of the file.
contentTypeStringType of file (e.g., image, document).
commentStringAny comment associated with the file.
sizeLongSize of the file in bytes.