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 Details

    • 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
    • cancelRoutingRequest

      void cancelRoutingRequest(RoutingWorkItem routingWorkItem) throws RoutingWorkItemNotFoundException, RoutingWorkItemOperationException
      Cancel the routing request associated with a RoutingWorkItem. In case of an exception there will not be any retry of the failed operation. Future events referring to this work item will not be processed. 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:
      routingWorkItem - the RoutingWorkItem to be canceled
      Throws:
      RoutingWorkItemNotFoundException - if the specified work item does not exist
      RoutingWorkItemOperationException - in case of operation failure or broken connection
      Since:
      11.29
    • getRoutingWorkItemState

      Retrieve the state of a RoutingWorkItem. The function will be called periodical (e.g. 60 minutes interval) to ensure that the work item still is alive and the work item state matches the currently known item state within the novomind iAGENT system.
      Parameters:
      routingWorkItem - the RoutingWorkItem
      Returns:
      the RoutingWorkItemState of the RoutingWorkItem
      Throws:
      RoutingWorkItemNotFoundException - if the specified RoutingWorkItem does not exist
      RoutingWorkItemOperationException - 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