Outgoing calls

Outgoing calls from Puzzel (aka “Callout”)

If a Puzzel agent wants to make an outgoing call through Puzzel, the agent can enter a phone number or select a catalog entry in the Puzzel agent application and click “Call” (or agent can click-to-call from another system that uses Puzzel web-services). This usually results in one answered call from the Puzzel platform to the agent (a conversation event with ciq=a and destination = agent’s phone number) and then one call to the destination number (a conversation event with ciq=c and destination = the called number), answered or not.

In addition to the 2 conversation events, this results in

  • an Initiation event, with the called number as source
  • a Queue event (in the outgoing calls queue, which usually has queue_key prefix ‘__Callout_’) with result=q.

This is similar to the events for Callback in queue ordered on web. The conversation events (with another internal_iq_session_id but the same call_id) may appear in the database a bit later than the Initiation event and the Queue event.

An answered outbound call:

The call_events for an answered outgoing call (some columns are hidden here):

If the call to the destination number is not answered, the conversation event to the destination will usually have result h (=agent clicks Hang up while it’s ringing) or t (ringing timeout for call to destination), and the speaktime in the Conversation event for the agent will usually be 15-30 seconds.

If the Puzzel agent clicks “Cancel” instead of Softphone hang up after having clicked Call, this results in an extra Queue event with result=d (deleted) in addition to the first queue event with result q (and conversation event(s)).
An unanswered outbound call:

If the call to the destination number gives result=b (busy) or result=e (error), the Conversation event to the agent will have a very short speaktime.

If the callout is answered, the agent can transfer the contact to another agent, to a phone number or to a queue. If the agent transfers to another agent, this new agent’s conversation event will also get ciq='a' since this is in the same 'ciq' session. If the agent transfers to a number, this number’s conversation event will have ciq=’null’. 

About Display number

The initiation event’s source is the Puzzel “access number” used for callout. If the agent selected a display number or if it is configured a display number unlike the access number, the used display number is not shown in Raw data.

Callout while in Pause

If the agent Calls out while in status Pause, the pause will be aborted (a Return from pause event is created) and the call is set up. If the agent does not want to receive an incoming call after the outgoing call is finished, the agent should click Pause when in status wrap-up. If Pause is clicked while connected, the agent will be in status [Connected and Pause] at the same time.

If the agent does not want to receive incoming calls but only do outgoing calls, the agent can log on to queue with a profile not containing incoming queues.

Error when calling agent that ordered callout

The call to the agent (that ordered callout) may result in busy, or in error/timeout if the agent logged on with wrong number or in cases with network congestion/error. If this happens, you might find a call_id with several conversation events to the agent (ciq=a) all with result b, c and/or e. If a call to the agent finally got answered (result=k), there will also be a conversation event to the called number (ciq=c).

When the agent clicks Call to make an outgoing call to a destination, Puzzel first calls the agent, and then the destination. If the call to the agent results in busy or error, there might be several conversation events for this agent (and possibly no conversation event for the destination) for this call_id.

Scheduled calls

The agent can (if given access in the Puzzel agent application) order a scheduled call (a future outbound call). The agent enters the destination phone number and the date+time the call should happen, selects “to me” or “to any agent” and a queue. At the scheduled time, the relevant queue calls the agent (when ready) and then the destination number. If “to any agent” was chosen, the first ready agent on the relevant queue is selected. A scheduled call generates these raw data.

  • At T0, the agent orders a Scheduled call with a scheduled time (T1) in queue X. An initiation event (duration from T0 to T1) and a queue event (duration = 0) is created and these records appear in the Raw data db shortly after T0.
    • The request is put in the queue’s «waiting room» until the scheduled time, and then it’s moved into the queue with high priority
    • If the agent is logged on at T1, the request is sent to the agent when he becomes Ready. If the agent is logged off at T1 or logs off before getting the call, the request is sent to another agent
    • The queue will (at T2) call the reserved agent when he’s ready (or another agent if the reserved agent is not logged on or if the scheduled call was «to any agent»).
  • After the calls to the agent and the customer has ended (T3, might be hours or days later than T0) these conversation events arrive in the Raw data db.

If an agent or an administrator deletes an ordered scheduled call before the scheduled time, a new queue event with result=d (deleted) with the same call_id is created.

Agent-to-agent calls

If agent 1 calls to agent 2, this will result in one initiation event, and one conversation event for each of the agents.

There will not be a queue event for an agent-to-agent call (only for ordinary outgoing calls), the conversation events will not contain any queue key, nor any value for ciq, and the initiation event’s source will be “xxxxxxxx”.

For each agent-to-agent call, there will (from db version 1.6) be one record in the call_event_extras table with agent2agent=1 and a “link” to the agent-to-agent call’s initiation event, so that you easily can identify these calls. 


07/08/2020 - 11:40

Last updated

10/01/2023 - 14:08