Queues

Create contact-center queues, add agent members, bind a phone number and set the routing strategy, queue size and hold music.

3 min read

A queue is where callers wait until an agent is free. Each queue has a routing strategy, member agents, an optional required skill, a maximum size and its own hold audio. Bind an Edesy phone number to a queue so that calls to the number join it. Create queues in the admin portal or with the API.

Queue settings#

Setting API field Values Default
Name name 1-255 characters, unique per workspace required
Description description text empty
Phone number phone_number_id ID of an Edesy number in your workspace none
Routing strategy routing_strategy round_robin, longest_idle, least_occupied, skill_based round_robin
Required skill required_skill_id skill ID, used by skill_based none
Minimum skill level min_skill_level 1-10 1
Max callers waiting max_queue_size 1-500 50
Service-level target service_level_target_percent 1-100 80
Hold music file moh_audio_url public URL of an audio file none (spoken hold message)
Record calls record_calls true / false true
Active is_active true / false true

How a queue works#

  1. A call arrives on the number bound to the queue.
  2. The caller is placed in the queue if fewer than max_queue_size callers are waiting. Otherwise they hear "All our agents are busy right now. Please call back shortly." and the call ends.
  3. Every 2 seconds the dispatcher checks for waiting callers and members who are Available.
  4. The strategy picks one agent and that agent's browser rings.
  5. Answered: the caller is bridged to the agent. Not answered in 20 seconds: the call returns to the queue and the next agent is tried. See Hold music and ring-no-answer.

Create a queue#

curl -X POST https://voice-api.edesy.in/v1/ccaas/queues \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Support - Hindi",
    "routing_strategy": "skill_based",
    "required_skill_id": "SKILL_ID",
    "min_skill_level": 3,
    "max_queue_size": 50,
    "service_level_target_percent": 80
  }'

Add members#

In the portal, open the queue and use Members > Add Member. With the API:

curl -X POST https://voice-api.edesy.in/v1/ccaas/queues/QUEUE_ID/members \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": "AGENT_ID", "priority": 5}'

Remove a member with DELETE/v1/ccaas/queues/QUEUE_ID/members/AGENT_ID. An agent can belong to many queues.

Bind a phone number#

Set phone_number_id on the queue:

curl -X PATCH https://voice-api.edesy.in/v1/ccaas/queues/QUEUE_ID \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"phone_number_id": "PHONE_NUMBER_ID"}'

Find the number's ID with GET/v1/phone-numbers. Leave the number's own inbound target (webhook, SIP, IVR flow and so on) unset so calls reach the queue. The queue must be active.

Live queue status#

The queue cards in the portal refresh every 10 seconds and show callers waiting, longest wait, agents available out of total, and today's service level. The same data is at GET/v1/ccaas/queues/QUEUE_ID/status.

FAQ#

How many queues can I create?#

There is no fixed queue limit. Queue names must be unique in a workspace.

Can one number feed several queues?#

No. A number is bound to one queue. Use separate numbers for separate queues, or put an IVR Studio menu in front.

Can an agent be in more than one queue?#

Yes. Add the agent as a member of each queue.

What happens when no member is available?#

The caller keeps waiting and hears the hold message or music until an agent becomes available or the caller hangs up. A caller who hangs up while waiting is counted as abandoned.

What is the service-level target?#

The percentage of answered calls you want answered within 20 seconds. The portal shows today's service level in green when it meets the target and red when it does not.

Does deleting a queue delete its call history?#

Deleting a queue deactivates it. Historical reports keep its data.

Can I pause a queue?#

Set is_active to false. Calls to its number are then not queued.

Was this page helpful?