Interactions Transfer

Interactions Transfer

Overview

The Transfer feature allows agents to redirect active interactions (calls, chats, emails, or messages) to another agent or queue within the system.
This functionality must first be enabled by an administrator in the Settings for each channel.

image-20251125-155449.png

 

Transfers are only possible for open interactions.
For textual channels only interactions with at least 1 inbound message can be transferred.

Administrators can configure transfer options by channel:

Voice: always active by default for agents, which can transfer open calls to other online agents or queue with attended or blind transfer

Chat → Chat Websites → Edit → Settings → Transfer

Email → Email Accounts → Edit → Advanced → Transfer

SMS/Open Channel/Fax/Whatsapp Connector → Accounts → Edit → Settings → Transfer

When enabling the transfer flag, you must define a timeout (in seconds) — the period the system waits for the recipient to accept the transfer before returning the interaction to the original agent’s unread list.

If at least one of this flags is enabled, the agent will see this option among those available in order to manage interactions:

Voice Transfer

For the Voice Channel, transfer is a default feature.
Agents can perform Blind (Unattended) or Attended (Warm) transfers to other online agents or queues.

WebRTC - Blind or Attended

Blind (Unattended) Transfer

  1. During an active call, click the purple handset button.

  2. Enter the destination agent or queue name/number in the standard transfer window.

  3. Click TRANSFER → the call is redirected immediately, without consultation with the recipient.

  4. Agents can optionally set and save a call disposition during transfer (even if the call is not finished)

Attended Transfer

  1. AgentA enters the internal number or name of AgentB in the transfer field.

  2. Click the green handset to open a consultation call with AgentB (the customer is placed on hold).

  3. After speaking with AgentB, click the purple handset to complete the transfer.

  4. The first call (between AgentA and the customer) automatically ends once the transfer is complete.

Phonebar - Blind or Attended

Blind (Unattended) Transfer

  1. Click the Forward icon to open the Transfer window.

  2. Enter the destination name or number and click Transfer.

  3. The call is immediately redirected, without consultation with the recipient.

 

Attended Transfer (Consult Transfer)

  1. Call the target agent before transferring.

  2. Then, in the Attended Transfer section, select the target and click Transfer.

 

Warm Transfer

In a warm transfer (with webRTC or Phonebar) more actors are involved:

  1. Agent1 answers the call and places the customer on hold

  1. Agent1 calls Agent2 to consult

 

  1. Agent1 initiates a Conference (Agent1, Agent2 and Customer).

 

  1. Agent1 clicks Transfer option to complete the warm transfer and leaves the conference, allowing Agent2 and the customer to continue the conversation.


Report-call transfer table details

from version 3.50.0

Attended transfers populate the following fields in the report_call_transfer table:

  • transfererlinkedid : uniqueid of the first call leg

  • transfereelinkedid : uniqueid of the second call leg

from version 3.51.0

Blind transfers also populate related data directly in the same table (to retrieve the significant data on the call).
In case of attended transfer, transfererlinkedid allows you to retrieve in report_call table reference call data.

Billing related fields:

Field

Description

Field

Description

starttime

Channel creation timestamp (start of ringing)

systemanswertime

Timestamp when the agent receiving the transfer answered

For transfers to external, this field may be identical to starttime, because transfers to external have no real ringing status. If null, the second agent never replied.

endtime

Timestamp when the agent receiving the transfer abandoned the call, because the call ended or was re-transferred

duration

difference in seconds between endtime and starttime.

billableseconds

difference in seconds between endtime and systemanswertime. If null, the second party never answered

Example: Attended transfer scenario

  1. Inbound call, customer call rings for 25 seconds → AgentJoe answers and speaks for 25 seconds

  2. Internal attended transfer: it rings for 10 seconds → AgentAnna answers and speaks with AgentJoe for 10 seconds

  3. AgentJoe trasfers the call to AgentAnna

  4. AgentAnna speaks with the customer for 45 seconds

  5. AgentAnna hangs up the call

Report Data Summary in report_call:

uniqueid duration billableseconds inboundCallId 115 90 internalCallId 20 10

Report Data Summary in report_call_transfer:

transfereelinkedid transfererlinkedid duration billableseconds internalCallId inboundCallId 65 55

Metrics Reference

  • Total call duration report_call.duration (where uniqueid = 'inboundCallid')

  • Customer talk time report_call.billableseconds (where uniqueid = 'inboundCallid')

  • Customer queue waiting time report_call.duration - report_call.billableseconds (where uniqueid = 'inboundCallid')

  • AgentAnna total handling time (10s consult conversation with AgentJoe + 45s conversation with customer) report_call_transfer.billableseconds

  • AgentAnna post-transfer time (45s conversation with customer) report_call_transfer.billableseconds - report_call.billableseconds (report_call INNER JOIN report_call_transfer ON report_call.uniqueid = report_call_transfer.transfereelinkedid WHERE report_call.uniqueid = 'internalCallId')

  • AgentAnna consult time with AgentJoe before transfer (10s) report_call.billableseconds, where uniqueid = 'internalCallId'

Example: Attended transfer scenario

  1. Inbound call, customer call rings for 25 seconds → AgentJoe answers and speaks for 25 seconds

  2. Internal attended transfer: it rings for 10 seconds → AgentAnna answers and speaks with AgentJoe for 10 seconds

  3. AgentJoe trasfers the call to AgentAnna

  4. AgentAnna speaks with the customer for 45 seconds

  5. AgentAnna hangs up the call

Report Data Summary in report_call:

uniqueid duration billableseconds inboundCallId 115 90 internalCallId 20 10

Report Data Summary in report_call_transfer:

transfereelinkedid transfererlinkedid duration billableseconds internalCallId inboundCallId 65 55

Metrics Reference

  • Total call duration report_call.duration (where uniqueid = 'inboundCallid')

  • Customer talk time report_call.billableseconds (where uniqueid = 'inboundCallid')

  • Customer queue waiting time report_call.duration - report_call.billableseconds (where uniqueid = 'inboundCallid')

  • AgentAnna total handling time (10s consult conversation with AgentJoe + 45s conversation with customer) report_call_transfer.billableseconds

  • AgentAnna post-transfer time (45s conversation with customer) report_call_transfer.billableseconds - report_call.billableseconds (report_call INNER JOIN report_call_transfer ON report_call.uniqueid = report_call_transfer.transfereelinkedid WHERE report_call.uniqueid = 'internalCallId')

  • AgentAnna consult time with AgentJoe before transfer (10s) report_call.billableseconds, where uniqueid = 'internalCallId'

 

Inbound calls transferred to queues

Here you can explore the different scenarios of inbound calls transferred to queue with blind or attended transfer:

Transfer type

Step1

Step2

Step3

Step4

Step5

Transfer type

Step1

Step2

Step3

Step4

Step5

Blind / Attended

Agent1 receives inbound call on Queue1

Agent1 transfers to Queue2 via webRTC bar

Agent1 passes in ACW status
Agent2 receives call on Queue2

Agent2 or customer hangs up the call

Agent2 passes in ACW status

Blind / Attended

Agent1 receives inbound call on Queue1

Agent1 transfers to Queue2 via Agent Presence

Agent1 passes in ACW status
Agent2 receives call on Queue2

Agent2 or customer hangs up the call

Agent2 passes in ACW status

Blind / Attended

Agent1 makes internal call on Queue1

Agent1 transfers to Queue2 via webRTC bar

Agent1 passes in ACW status
Agent2 receives call on Queue2

Agent2 or customer hangs up the call

Agent2 passes in ACW status

Blind / Attended

Agent1 makes internal call on Queue1

Agent1 transfers to Queue2 via Agent Presence

Agent1 passes in ACW status
Agent2 receives call on Queue2

Agent2 or customer hangs up the call

Agent2 passes in ACW status

If you use voice recording, you can decide to stop it when a call is transferred: explore here documentation about it.

Outbound Transfer Reporting

from version 3.42.0

Outbound transfer metrics are included in report_call for both inbound and internal calls (blind or attended) to track both the customer's talk time with the first agent and the time between the caller and the agent to whom the call was transferred.
For attended transfers, the interval when the phone rings while waiting for the agent to answer the transfer is not considered; therefore, only the actual call time exists (duration and billableseconds have the same value in the table).
In report_call table, these fields are considered:

  • starttime: timestamp identifying the instant the call is transferred

  • systemanswertime: timestamp identifying when the destination agent answered

  • endtime: timestamp identifying when the transfer ended

  • duration: interval (endtime - starttime) calculated in seconds (from when the transfer begins to when it ends)

  • billableseconds: interval (endtime - systemanswertime) calculated in seconds (so from when the agent responds to when the transfer ends)

Email Transfer

If enabled by the administrator, agents can transfer open email interactions

  1. Open interaction → show button:

 

  1. Select 3 dots menu → transfer option:

  1. Choose the destination:

    • Another queue

    • Another agent

    • Another account from version 3.32.0 (for more information about email account transfer, explore the documentation)

  2. Select from the list among queue/agent/account available.

from version 3.60.0 When transferring an interaction (to another queue or agent), the current agent can add an internal note for the next handler to give some contextual information.

Transfer note is not available for transfer to other account

 


Chat/SMS/Open Channel/WhatsApp Transfer

When agent wants to transfer an interaction to an other agent or queue, if the Transfer option is set by the administrator, he can transfer open interactions

  • Open the interaction → Show option

  • Click the three dots menu → Transfer.

  • Choose the agent or queue (depending on configuration).

  • The interaction is transferred to the selected recipient.

Transfer notes

from version 3.60.0
When transferring an interaction (to another queue or agent), the current agent can add an internal transfer note for the next handler to give some contextual information.

image-20251118-153846.png

The destination agent will view the internal note in light blue color to identify that it is a transfer note.

The note also specifies the source agent and the target agent or queue involved in the transfer.

image-20251118-154005.png

 

 

Example of transfer to an agent

Scenario:

Agent1 transfers an open email to Agent2 (admin set agent timeout = 300s). Agent2 will receive a notification for 300 seconds to accept the interaction → until the agent accepts, the interaction remains assigned to Agent1:

  • If Agent2 accepts within 300s → ownership changes to Agent2.

  • If Agent2 does not accept → ownership remains with Agent1, and the interaction returns to their unread list.

Example of transfer to a queue

It is possible to transfer an active interaction to a queue, for example, to route it to another department. When an interaction is transferred to a queue, a notification is sent to all online agents assigned to that queue.

Scenario:

  • The interaction is transferred to the Sales Queue.

  • If one of the agents in the Sales Queue accepts the interaction within 300 seconds, the interaction ownership changes to AgentY.

  • If no agent is available or no one accepts the interaction within that time, the interaction returns unread to the original owner (Agent1).

 

Stop routing method

For all text-based channels, note the following to prevent routing errors:

  • Closed interactions cannot be transferred

  • API documentation for this functionality is available in Swagger under api/rpc/interactions/{id}/stop-routing

  • If an interaction is closed before a transfer is completed a warning message is displayed, notifying that the transfer could not be completed. This warning appears in both of the following cases:

    • When the agent attempts to close the interaction from the table after initiating a transfer.

    • When the agent tries to transfer an interaction that has already been closed.

image (6)-20241211-161439.jpg

Transfer to offline agents for textual channels

FROM VERSION 3.51.0

Admins and agents can now transfer textual interactions to agents with the following statuses: offline, paused, max capacity.

By clicking on Transfer option, the system displays the status of all available agents (Idle / Pause / Max Capacity / Offline).

image-20250509-082206.png

If an offline agent is selected, the system displays a confirmation warning, allowing the user to decide whether to proceed with the transfer.

Screenshot 2025-05-16 120139-20250516-100139.png

 

Agent access to assigned interactions (on account without full permissions)

FROM VERSION 3.51.0

Agents can view all interactions assigned to them, even if they lack permissions for the full account.
In the interaction list, agents can filter by account and use the “Others” filter option to display transferred interactions.

 

image-20250516-103004.png

FAQ

Use case: an inbound call enters into a queue and Agent1 answers. Agent1 transfers the call to Agent2 with blind transfer.
If Agent2 doesn’t answer the call, it is abandoned. You can view the register of this type of abandoned calls, by searching for the call uniqueID in the CDR table.
You will be able to find both calls, one with ANSWERED status (inbound call) and on with NO ANSWER (blind transfer)