Class ZopimChatApi

  • All Implemented Interfaces:
    ChatApi, ChatApiCommands, ChatSession


    public class ZopimChatApi
    extends java.lang.Object
    implements ChatApi, ChatSession
    Definition for initialization and configuration of the chat.

    Firstly, to initialize the chat call ZopimChatApi.init(String) with the correct account key obtained at your Zopim account configuration page.

    A global chat configuration can be provided at initialization which will apply to all chat sessions that get started. Additionally, each chat session can be configured separately during chat start ZopimChatApi#start(android.support.v4.app.FragmentActivity). Starting a chat will provide an instance of ChatApi used for chat communication. That chat is the bound to the lifecycle of the activity that was used to start the chat.

    See Also:
    Getting Started, ChatApi
    • Method Detail

      • getDataSource

        public static DataSource getDataSource()
        Gets chat data source defined in DataSource and PathDataSource

        Data source provides subscription to data update broadcasts. It also enables to get current state of a data path.

        Returns:
        data source
      • setVisitorInfo

        public static void setVisitorInfo(VisitorInfo visitorInfo)
        Configures the global VisitorInfo

        Visitor info can be set at any point, but the changes will take effect at next chat session start

        Parameters:
        visitorInfo - visitor data from VisitorInfo
      • trackEvent

        public static void trackEvent(java.lang.String description)
        Leaves an event trace.

        It is possible to track event prior chat session being started. Tracked events will be sent as soon as chat session is connected and any further event after that point will be sent immediately.

        Parameters:
        description - of the event
      • setPushToken

        public static void setPushToken(java.lang.String token)
        Set the push token to allow agent message to be sent to the app via push notifications.
        Parameters:
        token - the token received from FCM
      • clearPushToken

        public static void clearPushToken()
        Clear the token so that push notifications are no longer sent for agent chat messages.
      • onMessageReceived

        public static void onMessageReceived(PushData pushData)
        Notify the SDK of FCM message receipt.
        Parameters:
        pushData - the push notification data
      • setDepartment

        public void setDepartment(java.lang.String department)
        Sets department to the current chat session

        Chat session must be connected in order to change session configuration.

        Specified by:
        setDepartment in interface ChatApiCommands
        Parameters:
        department - visitor is chatting with
        See Also:
        Departments Dashboard
      • setPhoneNumber

        public void setPhoneNumber(java.lang.String phoneNumber)
        Sets visitor phone number to the current chat session Chat session must be connected in order to change session configuration.
        Specified by:
        setPhoneNumber in interface ChatApiCommands
        Parameters:
        phoneNumber - of the visitor
        See Also:
        Agent Dashboard
      • setName

        public void setName(java.lang.String name)
        Sets visitor name to the current chat session Chat session must be connected in order to change session configuration.
        Specified by:
        setName in interface ChatApiCommands
        Parameters:
        name - of the visitor
        See Also:
        Agent Dashboard
      • setEmail

        public void setEmail(java.lang.String email)
        Sets visitor email to the current chat session Chat session must be connected in order to change session configuration.
        Specified by:
        setEmail in interface ChatApiCommands
        Parameters:
        email - of the visitor
        See Also:
        Agent Dashboard
      • setNote

        public void setNote(java.lang.String note)
        Description copied from interface: ChatApiCommands
        Sets a note to the visitor profile
        Specified by:
        setNote in interface ChatApiCommands
        Parameters:
        note - about the visitor
      • addNote

        public void addNote(java.lang.String note)
        Description copied from interface: ChatApiCommands
        Appends a note to the current visitor note
        Specified by:
        addNote in interface ChatApiCommands
        Parameters:
        note - about the visitor to append
      • send

        public void send(java.lang.String message)
        Sends the message to the agents.

        If chat is unavailable at the moment it will cache this message until the communication recovers and re-send it again.

        Specified by:
        send in interface ChatApiCommands
        Parameters:
        message - to be sent
        See Also:
        Agent Visitor List
      • send

        public void send(java.io.File file)
        Description copied from interface: ChatApiCommands
        Sends the file to the current chat log. Successful file send will trigger a chat log update with information about the file being uploaded.

        File must pass validation check and upload requirements defined in Zopim attachments page

        A successful file upload will be visible in the agent dashboard.

        Specified by:
        send in interface ChatApiCommands
        Parameters:
        file - to send
        See Also:
        ChatLogObserver, Agent Dashboard
      • resend

        public void resend(java.lang.String messageId)
        Description copied from interface: ChatApiCommands
        Re-sends the visitor message.

        This message will appear in the agent dashboard.

        Specified by:
        resend in interface ChatApiCommands
        Parameters:
        messageId - id of the message to resend
        See Also:
        Agent Visitor List
      • sendChatRating

        public void sendChatRating(ChatLog.Rating rating)
        Description copied from interface: ChatApiCommands
        Sets rating for the current chat session.

        This will appear as a response to the chat rating questionnaire sent by an agent to the visitor.

        Specified by:
        sendChatRating in interface ChatApiCommands
        Parameters:
        rating - to set
      • sendChatComment

        public void sendChatComment(java.lang.String comment)
        Description copied from interface: ChatApiCommands
        Sets a comment to the current chat session.
        Specified by:
        sendChatComment in interface ChatApiCommands
        Parameters:
        comment - to set
      • endChat

        public void endChat()
        Ends the current chat. This will update the connection status to closed.

        In order to end it the chat instance need to be able to communicate via ZopimChatApi.canCommunicate(). After the chat has ended the service will attempt to stop itself but will remain running until it's unbound from the host activity. Unbinding is done on host activity destruction and is handled via ChatServiceBinder.

        Specified by:
        endChat in interface ChatApiCommands
        See Also:
        ConnectionObserver
      • disconnect

        public void disconnect()
        Description copied from interface: ChatApiCommands
        Disconnect the current chat, used when switching to push mode.
        Specified by:
        disconnect in interface ChatApiCommands
      • hasEnded

        public boolean hasEnded()
        Description copied from interface: ChatApi
        Tells if this chat session has ended and can not be continued.
        Specified by:
        hasEnded in interface ChatApi
        Returns:
        true if ended, false otherwise
      • emailTranscript

        public boolean emailTranscript(java.lang.String email)
        Description copied from interface: ChatApiCommands
        Emails the current chat transcript

        It will send an email to the provided address with the current chat log

        Specified by:
        emailTranscript in interface ChatApiCommands
        Parameters:
        email - address to send the transcript to
        Returns:
        true if email was sent, false otherwise
      • sendOfflineMessage

        public boolean sendOfflineMessage(java.lang.String name,
                                          java.lang.String email,
                                          java.lang.String message)
        Description copied from interface: ChatApiCommands
        Sends email to agents defined in the dashboard for this account.

        Email must be provided in order for the agent to be able to respond.

        Specified by:
        sendOfflineMessage in interface ChatApiCommands
        Parameters:
        name - of the visitor
        email - of the visitor
        message - inquiry
        Returns:
        true if was able to send, false otherwise
      • init

        public static ZopimChatApi.DefaultConfig init(java.lang.String accountKey)
        Initiates chat and returns ZopimChatApi.DefaultConfig configuration builder to be used for configuring the global chat settings. This configuration will apply to all new instances of a chat session unless a new session configuration is provided when starting the new chat.
        Parameters:
        accountKey - Your account key obtained from the Zopim widget config page. Will configure chat to use your Zopim instance.
        Returns:
        configuration builder for setting the global chat configuration
      • start

        public static ChatApi start(FragmentActivity activity)
        Starts the chat with ZopimChatApi.DefaultConfig global configuration. Chat needs to be previously initialized.
        Parameters:
        activity - that holds the chat session
        Returns:
        chat session instance
      • resume

        public static ChatApi resume(FragmentActivity activity)
        Attempts to resume the existing chat if possible. Chat needs to be previously initialized.

        Resuming a chat will be possible if the previous chat was not ended via ZopimChatApi.endChat() or expired. Chat timeout time, defined here ChatSession.DEFAULT_CHAT_SESSION_TIMEOUT is the time that expired after the last message exchange. If resuming was successful it will restore chat configuration from the server. If chat can not be resumed this will still return the chat instance but it won't be able to chat because it has ended ZopimChatApi.hasEnded().

        Resumed chat might not be immediately ready to communicate, check ZopimChatApi.canCommunicate().

        Parameters:
        activity - that holds the chat session
        Returns:
        chat session instance