Breadcrumbs

Customer & Agent SLA Implementation Details


Event

Agent SLA

Customer SLA

CHANNEL_SESSION_STARTED

  • If a voice session starts:

    • The agent SLA will be stopped.

  • If a non voice session starts, timer will be started for current session if no voice session exists in the conversation. (It is starting the SLA for all channels ATM)

  • If a voice session starts:

    • The SLA for this session will be started

    • the SLA for non-voice session will be stopped if running.


TASK_ENQUEUED


  • SLA will be stopped for the channel on which TASK_ENQUEUED is received.

    • (SLA is getting stopped on every TASK_STATE_CHANGED event ATM )

AGENT_SUBSCRIBE

  • If a PRIMARY participant exist in the conversation:

    • The SLA timer will reset for all agents in the conversation.

  • If no PRIMARY participant exist in the conversation:

    • The SLA will be started.

  • If the session is not of voice type on which AGENT_SUBSCRIBED is received:

    • SLA timer will be stopped.

AGENT_UNSUBSCRIBE

  • If no agent participant left in the conversation

    • Stop the SLA timer.

  • If agent unsub reason is not DIRECT_TRANSFER & If customer exists in the conversation & no agent participant exist in the conversation:

    • Start the SLA timer. (Scenario: on TASK_STATE_CHANGED the SLA gets stopped)

CHANNEL_SESSION_ENDED

  • If no customer exists in the conversation, and there exist an agent, then stop the SLA timer. (Invoked by CM)

  • Stop the SLA for current channel session.

  • If the closed session is of voice type and non-voice session(s) exist in the conversation, start the SLA for all non-voice sessions.

    (Scenario: on TASK_STATE_CHANGED the SLA gets stopped ATM)

AGENT_MESSAGE

  • If agent message is other than WRAP_UP

    • stop the SLA timer.

  • If a voice session does not exist in this conversation:

    • Start the SLA timer for all the channels in the conversation.

CUSTOMER_MESSAGE

  • If an agent exists in the conversation & the conversation is not ON_HOLD

    • start the SLA timer.

  • Start the SLA timer for all channels other then the current session if the conversation is not ON_HOLD.

BOT_MESSAGE


  • If the conversation is not ON_HOLD, start the SLA timer.

CONVERSATION_PAUSED


  • Stop the SLA timer for all the sessions in the conversation.

NO_AGENT_AVAILABLE


  • Start the SLA timer of the latest channel session

PARTICIPANT_ROLE_CHANGED

  • If all agents are in WRAP_UP:

    • Stop the SLA timer.



Cases:

  1. A web chat starts with a single agent

    1. CHANNEL_SESSION_STARTED will be published.

      1. Conversation Monitor will start the customer SLA.

    2. BOT sends a response

      1. Customer SLA timer is already running, nothing will happen here.

    3. Customer sends a message

      1. Conversation Monitor will stop the Customer SLA.

    4. Customer requests for an Agent

      1. RE will publish TASK_STATE_CHANGED with media state “QUEUED“.

      2. Conversation Monitor will stop the customer SLA timer

    5. Agent gets RESERVED and the agent joins the conversation:

      1. Conversation Monitor will start the Agent SLA timer.

      2. Conversation Monitor will stop the Customer SLA timer.


  1. A web chat starts (No agent is available in the system)

    1. CHANNEL_SESSION_STARTED will be published.

      1. Conversation Monitor will start the customer SLA.

    2. BOT sends a response

      1. Customer SLA timer is already running, nothing will happen here.

    3. Customer sends a message

      1. Conversation Monitor will stop the Customer SLA.

    4. Customer requests for an Agent

      1. RE will publish TASK_STATE_CHANGED with media state “QUEUED“.

      2. Conversation Monitor will stop the customer SLA timer.

    5. RE publishes NO_AGENT_AVAILABLE

      1. Conversation Monitor will start the customer SLA timer.


  1. A web chat starts and Agent transfers the

    1. CHANNEL_SESSION_STARTED will be published.

      1. Conversation Monitor will start the customer SLA.

    2. BOT sends a response

      1. Customer SLA timer is already running, nothing will happen here.

    3. Customer sends a message

      1. Conversation Monitor will stop the Customer SLA.

    4. Customer requests for an Agent

      1. RE will publish TASK_STATE_CHANGED with media state “QUEUED“.

      2. Conversation Monitor will stop the customer SLA timer.

    5. Agent gets RESERVED and the agent joins the conversation:

      1. Conversation Monitor will start the Agent SLA timer.

      2. Conversation Monitor will stop the Customer SLA timer.

    6. Agent transfers the chat.

      1. AGENT_UNSUB is published in the system.

        1. Conversation Monitor stop the Agent SLA timer.

      2. An Agent gets reserved and joins the conversation

        1. AGENT_SUB will be published in the system.

          1. Conversation Monitor will start the agent SLA timer.


  1. A web chat starts and Agent transfers the chat (No agent available for transfer request)

    1. CHANNEL_SESSION_STARTED will be published.

      1. Conversation Monitor will start the customer SLA.

    2. BOT sends a response

      1. Customer SLA timer is already running, nothing will happen here.

    3. Customer sends a message

      1. Conversation Monitor will stop the Customer SLA.

    4. Customer requests for an Agent

      1. RE will publish TASK_STATE_CHANGED with media state “QUEUED“.

      2. Conversation Monitor will stop the customer SLA timer.

    5. Agent gets RESERVED and the agent joins the conversation:

      1. Conversation Monitor will start the Agent SLA timer.

      2. Conversation Monitor will stop the Customer SLA timer.

    6. Agent transfers the chat.

      1. AGENT_UNSUB is published in the system.

        1. Conversation Monitor stop the Agent SLA timer.

      2. RE will publish NO_AGENT_AVAILABLE on TTL expiry.

        1. Conversation Monitor will start the customer SLA.


  1. A web chat starts and Agent joins, and then agent leaves the conversation (WRAP_UP disabled)

    1. CHANNEL_SESSION_STARTED will be published.

      1. Conversation Monitor will start the customer SLA.

    2. BOT sends a response

      1. Customer SLA timer is already running, nothing will happen here.

    3. Customer sends a message

      1. Conversation Monitor will stop the Customer SLA.

    4. Customer requests for an Agent

      1. RE will publish TASK_STATE_CHANGED with media state “QUEUED“.

      2. Conversation Monitor will stop the customer SLA timer.

    5. Agent gets RESERVED and the agent joins the conversation:

      1. Conversation Monitor will start the Agent SLA timer.

      2. Conversation Monitor will stop the Customer SLA timer.

    6. Agent leaves the conversation

      1. AGENT_UNSUB will be published in the system by Agent Manager.

        1. Conversation Monitor will start the customer SLA timer.

        2. TASK_STATE_CHANGED with media state “CLOSED“ will be published.

          1. Conversation Monitor should not stop the customer SLA.


  1. A web chat starts and Agent joins, and then agent leaves the conversation (WRAP_UP enabled)

    1. CHANNEL_SESSION_STARTED will be published.

      1. Conversation Monitor will start the customer SLA.

    2. BOT sends a response

      1. Customer SLA timer is already running, nothing will happen here.

    3. Customer sends a message

      1. Conversation Monitor will stop the Customer SLA.

    4. Customer requests for an Agent

      1. RE will publish TASK_STATE_CHANGED with media state “QUEUED“.

      2. Conversation Monitor will stop the customer SLA timer.

    5. Agent gets RESERVED and the agent joins the conversation:

      1. Conversation Monitor will start the Agent SLA timer.

      2. Conversation Monitor will stop the Customer SLA timer.

    6. Agent leaves the conversation

      1. TASK_STATE_CHANGED with state “WRAP_UP“ will be published.

      2. PARTICIPANT_ROLE_CHANGED is published.

        1. Conversation Monitor will stop the Agent SLA timer.

      3. Customer session will be removed by controller, and once agent gives wrap_up, agent will be removed and conversation will be closed.


  1. A web chat starts and Agent joins, and then customer starts another non-voice session.

    1. CHANNEL_SESSION_STARTED will be published.

      1. Conversation Monitor will start the customer SLA.

    2. BOT sends a response

      1. Customer SLA timer is already running, nothing will happen here.

    3. Customer sends a message

      1. Conversation Monitor will stop the Customer SLA.

    4. Customer requests for an Agent

      1. RE will publish TASK_STATE_CHANGED with media state “QUEUED“.

      2. Conversation Monitor will stop the customer SLA timer.

    5. Agent gets RESERVED and the agent joins the conversation:

      1. Conversation Monitor will start the Agent SLA timer.

      2. Conversation Monitor will stop the Customer SLA timer.

    6. Customer joins from whatsapp.

      1. CHANNEL_SESSION_STARTED will be published.

        1. Conversation Monitor should start the customer SLA of the current session only (It is starting the SLA for all channels ATM)

  2. A web chat starts and Agent joins, and then customer starts voice session.

    1. CHANNEL_SESSION_STARTED will be published.

      1. Conversation Monitor will start the customer SLA.

    2. BOT sends a response

      1. Customer SLA timer is already running, nothing will happen here.

    3. Customer sends a message

      1. Conversation Monitor will stop the Customer SLA.

    4. Customer requests for an Agent

      1. RE will publish TASK_STATE_CHANGED with media state “QUEUED“.

      2. Conversation Monitor will stop the customer SLA timer.

    5. Agent gets RESERVED and the agent joins the conversation:

      1. Conversation Monitor will start the Agent SLA timer.

      2. Conversation Monitor will stop the Customer SLA timer.

    6. Customer initiates a voice session

      1. CHANNEL_SESSION_STARTED will be published in the system

        1. Conversation Monitor will stop the running Agent SLA timer.

        2. Conversation Monitor will start the voice session SLA.