Interface ExternalRoutingConnector


  • public interface ExternalRoutingConnector
    The ExternalRoutingConnector is an interface to provide functionality of an external routing in order to delegate the routing responsibility of issues to an external platform. The ExternalRoutingConnector offers service functions and also event handling by adding event listeners to react to specific external routing events. Each implementation of the interface ExternalRoutingConnector must be annotated with the annotation ExternalRoutingConnectorPlugin to be loaded during runtime within the novomind iAGENT routing process.
    Since:
    11.29
    • Method Detail

      • init

        void init​(ExternalRouting externalRouting,
                  RoutingWorkItemDecisionEventListener workItemRoutingDecisionEventListener)
           throws ExternalRoutingException
        The init method is called to initialize an ExternalRoutingConnector The method will be called after a new instance of an ExternalRoutingConnector has been created.
        Parameters:
        externalRouting - the ExternalRouting instance provides storage and configuration for the connector
        workItemRoutingDecisionEventListener - the event listener for this ExternalRoutingConnector
        Throws:
        ExternalRoutingException - if any error occurs during initialization
        Since:
        11.29
      • connect

        void connect()
              throws ExternalRoutingException
        The method is called after the initialization has been completed. The implementation of an ExternalRoutingConnector should establish any kind of permanent remote connections within this method.
        Throws:
        ExternalRoutingException - if any error occurs on connecting to the external platform
        Since:
        11.29
      • configurationChanged

        void configurationChanged​(ExternalRouting externalRouting)
        The method is called when the ExternalRouting of the ExternalRoutingConnector has changed.
        Parameters:
        externalRouting - the ExternalRouting instance that has changed
        Since:
        11.29
      • release

        void release()
        The method will be called when the ExternalRoutingConnector is disposed e.g. on system shutdown or before being replaced.
        Since:
        11.29
      • startRoutingRequest

        RoutingWorkItem startRoutingRequest​(TicketRoutingRequest ticketRoutingRequest)
                                     throws ExternalRoutingRequestException
        Start a new routing request for a ticket. In case of a ExternalRoutingRequestException the novomind iAGENT system will retry to start a new routing request for this ticket within an appropriate period of time. IMPORTANT NOTE: Please ensure not to implement this method blocking. Any synchronous long term operations performed in the method implementation could affect the general system performance and should be avoided.
        Parameters:
        ticketRoutingRequest - the request object provides all information about the ticket
        Returns:
        the RoutingWorkItem for the routing request
        Throws:
        ExternalRoutingRequestException - in case of operation failure or broken connection
        Since:
        11.29
      • startRoutingRequest

        RoutingWorkItem startRoutingRequest​(ChatRoutingRequest chatRoutingRequest)
                                     throws ExternalRoutingRequestException
        Start a new routing request for a chat. In case of a ExternalRoutingRequestException the novomind iAGENT system will retry to start a new routing request for this chat within an appropriate period of time. IMPORTANT NOTE: Please ensure not to implement this method blocking. Any synchronous long term operations performed in the method implementation could affect the general system performance and should be avoided.
        Parameters:
        chatRoutingRequest - the request object provides all information about the chat
        Returns:
        the RoutingWorkItem for the routing request
        Throws:
        ExternalRoutingRequestException - in case of operation failure or broken connection
        Since:
        11.29
      • routingWorkItemDeliverySuccessful

        default void routingWorkItemDeliverySuccessful​(RoutingWorkItemDeliverySuccessfulEvent routingWorkItemDeliverySuccessfulEvent)
        Notifies the connector that the routing decision of the connector has been fulfilled successfully and the RoutingWorkItem has been delivered to the desired agent by novomind iAGENT system. IMPORTANT NOTE: Please ensure not to implement this method blocking. Any synchronous long term operations performed in the method implementation could affect the general system performance and should be avoided.
        Parameters:
        routingWorkItemDeliverySuccessfulEvent - provides the RoutingWorkItem and the desired agent
        Since:
        11.29
      • routingWorkItemDeliveryFailed

        default void routingWorkItemDeliveryFailed​(RoutingWorkItemDeliveryFailedEvent routingWorkItemDeliveryFailedEvent)
        Notifies the connector that the routing decision of the connector could not be fulfilled and the RoutingWorkItem could not be delivered to the desired agent e.g. because of an agent availability change that happened in the meantime. IMPORTANT NOTE: Please ensure not to implement this method blocking. Any synchronous long term operations performed in the method implementation could affect the general system performance and should be avoided.
        Parameters:
        routingWorkItemDeliveryFailedEvent - provides the RoutingWorkItem and the desired agent
        Since:
        11.29