Call transfer, Consult and Put on hold

​When agent 1 has answered a call, he or she may put the caller on hold, do a consult call and/or transfer the call.

From v1.9, several new columns are available in call_events, to give more information about put on hold, consult calls and transfer.

  • hold: The number of times the agent clicked ‘Put on hold’ in this conversation (0, 1 or more)
  • consult: The number of times the agent clicked ‘Consult’ and started a consult call in this conversation (0, 1 or more)
  • caller_on_hold_sec: The number of seconds the caller was on hold due to this agent clicking Put on hold and doing Consult calls. One agent can click Put on hold 0, 1 or several times and/or do 0, 1 or more consult calls before hang-up or transferring the call.
    • Please note that in special cases there might be a value for caller_on_hold_sec even if the agent did not click Put on hold or Consult.
  • originating: Shows the phone number used as display number (aka calling party number) for the call to this agent/destination. 
    • For a call to an agent (a conversation event with an agent_id), originating is usually the number received as calling party number from the inbound call (the caller’s number), but it might be configured to be another number
    • For an outbound call (‘callout’, Dialler call or a callback call), the conversation event has no agent_id, and originating might be a predefined access number, a number the agent selected, or the agent’s public phone number (entered as logon number if Puzzel Softphone is not used). 
  • add_originating: If an Additional calling party number was sent together with the caller’s number and destination number (in the call set-up signalling message), this number is shown here (it’s usually empty)
  • leg_type: Shows the type of call this conversation event was
    • Agent: Call to agent from queue
    • TransferAgent: This agent received this call as a consult call from another agent, who then transferred to this agent (‘warm’ transfer), or this agent received it as a ‘blind’ (‘cold’) transfer.
    • ConsultAgent: This agent received this call as a consult call, but the call was not transferred to this agent
    • Transfer: This destination number (not an agent) received the call as a transfer
    • Caller: Call from Puzzel to an external number (related to agent callout, Dialler or callback)
    • DirectCall: Call from Puzzel to an external number made from the Call Flow Tool module 'Call'   


Blind transfer to agent or a phone number

If agent 1 transfers the caller to agent 2 (or a phone number), a new Conversation event is created, and you can see in agent 1’s Conversation event that the call was transferred (call_transfer=1). The Conversation event for the call to agent 2 (or the phone number transferred to) will not contain a queue_key.

​​​Consult + transfer

If agent 1 makes a consult call to an agent or a phone number (caller is on hold while consult is ongoing) and then transfers the call, the Conversation event for agent 2 will (not have a queue_key and) be partly overlapping in time with the Conversation event for agent 1.

Consult only

If agent 1 does a consult call to agent 2 without transferring, the Conversation event for agent 1 will have call_transfer=0, and the conversation event for agent 2 will not have a queue_key. The caller is put on hold while while consult is ongoing.  

Transfer to queue

If agent 1 transfers the caller to a queue, there will be a new Queue event and possibly one or more new Conversation events later.

Consult to queue

If agent 1 makes a consult call to a queue (to consult with any agent on that queue), agent 1 can transfer the caller to agent 2 after agent 2 on the new queue has answered:


If agent 1 makes a consult call to a queue, agent 1 can end the consult (and continue speaking with the caller) after having spoken with the other agent:


If agent 1 makes a consult call to a queue, but no agent answers within a short time, the agent can abort the consult and continue speaking with the caller:


A very special case for abort consult to queue
If agent 1 clicks Consult (to queue 2) and then clicks Abort after agent 2 (from queue 2) is allocated (it's ringing on agent 2's phone), agent 1 will be connected to agent 2 if agent 2 answers. This special situation results in a Raw data queue event with result = c (cancel) even though the following conversation event is answered. 


Caller hangs up while agent1 is consulting with agent2

If a consult call between agent1 and agent2 lasts “too” long, the caller might hang-up while waiting to be reconnected to agent1 or transferred to agent2. If the caller hangs up during a consult call, the consulting agents will hear a notification (“Caller hung up”) and then they will hang up after a while. In this case, you will see that the initiation event ends before the conversation events end, and both conversation events end at the same time.

Transfer to not ready agent / Personal queue

If a Personal queue is configured in the Puzzel solution, an agent can transfer a caller to another agent that is logged on but not ready. If a caller is transferred to a not ready agent, the caller is put in the Personal queue waiting for this agent. When the agent becomes Ready, the call is sent to the agent (unless the caller has hung-up while waiting in the Personal queue).

Put on hold

The agent may put the caller on hold (during the reported Speaktime) by clicking Put on hold. The caller is also automatically put on hold when the agent starts a consult call. This caller on-hold time is not specified in the Conversation event.

An agent can put the caller on hold one or more times, and an agent can make a consult call (which results in caller being put on hold) one or more times, before the agent possibly transfers the caller to another agent (directly or through a queue), and this new agent might put caller on hold and/or make consult calls.

In statistics reports Details per agent per queue and Details per agent we have lots of columns, including “Put on hold” and “Consults done”. These columns show the number of answered calls in which the agent put the caller on hold / did a consult call, but it's not showing the on hold duration.

From October 5th 2022, Puzzel creates and stores a call_variable called ‘caller_on_hold_total’ (with value in seconds) for each call_id’ where an agent clicked Put on hold or made a consult call. Please note that the total on hold duration experienced by one caller in one call_id might be caused by 1 or 2 (or more) agents clicking Put on hold and/or Consult. If the call_id only contains one answered conversation event, the on hold time is caused by this agent. This call_variable appears in table call_variables, and is also shown in the Archive as other call_variables.


Last updated