Skip to main content
Skip table of contents

Agent Task/Routing Task

Refers to the task created and assigned to the agent by the system.

A task is an object that tracks the Agent’s conversation with a customer. When the request lands, it is parked in a queue in the case of PUSH Mode. From here, the system creates the task for the agent. Then, it locates the agent and routes the request to a particular agent.

In the case of PULL Mode, the task is directly assigned to the Agent.

Following is the system behavior to create and assign tasks in different cases.

PUSH Mode

(The cases where the request is landed in a queue to find an agent)

When a new request comes

  • A new task is created and parked in a queue with the following attributes:

    • MediaState = QUEUED

    • TaskState = ACTIVE

    • TaskTypeDirection = INBOUND

    • TaskTypeMode = QUEUE

If an Agent is Reserved

  • If an agent is reserved within the requests TTL, the task is assigned to the agent with the media state changed to RESERVED.

If the Agent accepts the request

  • If the Agent accepts the request, RE’s change media state API is called to change the task media state to ACTIVE.

  • The media state is then changed to ACTIVE.

If the agent does not accept the chat, RONA occurs

  • The current task is deleted, and a new task is created with the media state QUEUED and parked in a queue.

  • The system tries to find another agent until TTL expires.

If the request TTL expires.

  • The task is closed with the task State Reason Code NO_AGENT_AVAILABLE

PULL Mode

(The cases where the agent is known beforehand and no routing is required)

When a new request comes

If no task for this agent exists:

  • A new task is created with

    • MediaState = ACTIVE

    • TaskState = ACTIVE

    • TaskTypeDirection = INBOUND

    • TaskTypeMode = QUEUE

  • Task is inserted in the Tasks Repository.

  • TASK_STATE_CHANGE is published.

  • Task is inserted in the agent active tasks count.

If a task already exists for this Agent:

  • If the MRD is Auto Join-able

    • The task is returned

  • Else

    • A media is created with ACTIVE state and added into the task medias.

Direct Queue Conference

On direct queue conference request

  • A new task is created with

    • MediaState = QUEUED

    • TaskState = ACTIVE

    • TaskTypeDirection = DIRECT_CONFERENCE

    • TaskTypeMode = QUEUE

If an Agent is Reserved

  • If an agent is reserved within the request TTL, the task is assigned to the agent with the media state changed to RESERVED.

If the Agent accepts the request

  • If the Agent accepts the request, RE’s change media state API is called to change the task media state to ACTIVE.

  • The media state is then changed to ACTIVE.

If the agent does not accept the chat, RONA occurs.

  • The current task is deleted, and a new task is created with the media state QUEUED and parked in a queue.

  • The system tries to find another agent until TTL expires.

If the request TTL expires.

  • The task is closed with the task State Reason Code NO_AGENT_AVAILABLE

Direct Queue Transfer

On direct queue transfer request

  • A new task is created with

    • MediaState = QUEUED

    • TaskState = ACTIVE

    • TaskTypeDirection = DIRECT_TRANSFER

    • TaskTypeMode = QUEUE

  • for the Agent that transferred the chat, the task is requested to be changed to WRAP_UP with reasonCode = TRANSFERRED.

  • After applying the WRAP_UP, the task is CLOSED with reasonCode = TRANSFERRED

If the requested agent is available for routing

  • Task is inserted in the tasks repository.

  • TASK_STATE_CHANGED is published and the task is presented to the agent.

If the Agent accepts the chat

  • Task media state change API is called

  • The task media state is changed to ACTIVE.

If the Agent does not accepts the chat

  • Task state change API is called with TaskState(name=CLOSED, reasonCode=RONA)

  • Task is then closed and TASK_STATE_CHANGED is published.

  • Task is removed from the tasks repository.

  • NO_AGENT_AVAILABLE is published.

Named Agent Transfer

On the named agent transfer request

  • A new task is created with

    • MediaState = RESERVED

    • TaskState = ACTIVE

    • TaskTypeDirection = DIRECT_TRANSFER

    • TaskTypeMode = AGENT

  • for the Agent that transferred the chat, the task is requested to be changed to WRAP_UP with reasonCode = TRANSFERRED.

  • After applying the WRAP_UP, the task is CLOSED with reasonCode = TRANSFERRED

If the requested agent is available for routing

  • Task is inserted in the tasks repository.

  • TASK_STATE_CHANGED is published and the task is presented to the agent.

If the Agent accepts the chat

  • Task media state change API is called

  • The task media state is changed to ACTIVE.

If the Agent does not accepts the chat

  • Task state change API is called with TaskState(name=CLOSED, reasonCode=RONA)

  • Task is then closed and TASK_STATE_CHANGED is published.

  • Task is removed from the tasks repository.

  • NO_AGENT_AVAILABLE is published.

Task States

ACTIVE

Task state is always ACTIVE from the time a task is created, unless WRAP_UP is applied or the task is CLOSED.

WRAP_UP

When the WRAP_UP timer is started if an agent leaves or the customer leaves. Only applicable if WRAP_UP is enabled.

CLOSED

When the task is closed and no more required.

Tasks Media States

QUEUED

When the media is created and the task is queued for routing.

RESERVED

When the agent is reserved.

ACTIVE

When the agent has joined the conversation.

CLOSED

When the session for this media is no longer active.

Task Type Direction

DIRECT_TRANSFER

When the chat is transferred to another agent. Applicable in the following cases:

  • Named Agent Transfer

  • Queue Transfer

DIRECT_CONFERENCE

When a conference request is placed to add another agent to the conversation.

INBOUND

Indicates that the conversation is initiated by the customer. Applicable in the following cases:

  • PULL mode cases

  • PUSH mode cases

OUTBOUND

When the agent initiates the conversation with the customer

Task Type Mode

AGENT

Cases where the request is not placed in a queue for routing because we know the agent beforehand. Applicable in the following cases:

  • PULL Mode requests

  • Named Agent Transfer

QUEUE

Cases where the request is placed in a queue and we do not know the agent beforehand. Applicable in the following cases:

  • PUSH Mode requests

Task Close Reason Codes

Task close reason codes show the reason for the task closure. Please check this document for task reason codes and their description.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.