Skip to content
vocapable.Docs

Create a queue (CC1-R1)

POST
/v1/workspace/contact-center/queues
curl --request POST \
--url https://api.vocapable.com/v1/workspace/contact-center/queues \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "description": "example", "priority": 5, "strategy": "longest_idle", "aging_seconds": 60, "steps": [ { "after_seconds": 1, "requirements": [ { "skill_id": "example", "min_proficiency": 1, "negate": false } ], "include_queue_ids": [ "example" ], "any_of": [ { "alternatives": [ [ { "skill_id": "example", "min_proficiency": 1, "negate": false } ] ] } ], "include_ai": false } ], "overflow_queue_id": "example", "overflow_after_seconds": 1, "sticky_mode": "off", "sticky_timeout_seconds": 20, "vip_rules": [ { "field": "tag", "key": "example", "value": "example", "priority_boost": 0, "requirements": [ { "skill_id": "example", "min_proficiency": 1, "negate": false } ], "label": "VIP", "conditions": [ { "field": "tag", "key": "example", "value": "example" } ], "match": "all" } ], "entry_rule": { "field": "tag", "key": "example", "value": "example" }, "sla_percent": 80, "sla_seconds": 20, "short_abandon_seconds": 5, "max_wait_seconds": 600, "max_callers": 1, "announce_ewt": true, "callback_ewt_seconds": 120, "ai_after_seconds": 1, "ai_capacity": 1, "ai_overflow_ewt_seconds": 1, "humans_only": false, "auto_answer_allowed": true, "team_id": "example", "acw_seconds": 1, "strict": false, "member_user_ids": [ "example" ], "member_team_ids": [ "example" ], "member_priorities": {} }'
Idempotency-Key
Any of:
string

Unique key for this request, so a retry replays the original result instead of repeating the work. Stored for 24 hours; a replayed response carries Idempotent-Replay: true. A UUID is the documented shape.

Media typeapplication/json
CcQueueSettings

Everything an owner edits on a queue. Defaults are the PRD’s (SL 80/20, short abandon 5 s, priority 5, aging +1/60 s, longest idle, callback offered at EWT > 2 min).

object
name
required
Name
string
>= 1 characters <= 80 characters
description
Any of:
string
<= 500 characters
priority
Priority
integer
default: 5 >= 1 <= 10
strategy
Strategy
string
default: longest_idle
Allowed values: longest_idle most_skilled round_robin ring_all
aging_seconds
Aging Seconds
integer
default: 60 <= 3600
steps
Steps
Array<object>
<= 5 items
CcRoutingStep

A bullseye ring: from after_seconds into the wait, the FULL requirement - the plain requirements (all must hold) AND every any_of group - plus overflow queues whose members join the pool from this step on (CC1-R2/R3). At most 20 skill terms in all; POST …/requirements/parse turns the text form into this shape.

object
after_seconds
required
After Seconds
integer
<= 3600
requirements
Requirements
Array<object>
<= 20 items
CcRequirement

skill >= min_proficiency; negate: the agent must NOT hold it at that level.

object
skill_id
required
Skill Id
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
min_proficiency
required
Min Proficiency
integer
>= 1 <= 5
negate
Negate
boolean
include_queue_ids
Include Queue Ids
Array<string>
<= 5 items
any_of
Any Of
Array<object>
<= 10 items
CcRequirementGroup

An OR group (CC1-R2): at least one alternative holds; each alternative is the AND of its terms. (Spanish>=3 OR Portuguese>=3) is two one-term alternatives.

object
alternatives
required
Alternatives
Array<Array<object>>
>= 2 items <= 10 items
include_ai
Include Ai
boolean
overflow_queue_id
Any of:
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
overflow_after_seconds
Any of:
integer
<= 3600
sticky_mode
Sticky Mode
string
default: off
Allowed values: off last_agent crm_owner last_agent_then_owner account_owner company_owner
sticky_timeout_seconds
Sticky Timeout Seconds
integer
default: 20 <= 120
vip_rules
Vip Rules
Array<object>
<= 10 items
CcVipRule

CC1-R5: a matching caller is lifted (+1..+5) and/or needs skills. More conditions (≤ 4) combine with the rule’s own by match: all (AND) or any (OR), e.g. account.industry = "Healthcare" OR open_case.urgency = "urgent".

object
field
required
Field
string
Allowed values: tag lead_status attribute account open_case
key
Any of:
string
>= 1 characters <= 60 characters
value
required
Value
string
>= 1 characters <= 120 characters
priority_boost
Priority Boost
integer
0 <= 5
requirements
Requirements
Array<object>
<= 5 items
CcRequirement

skill >= min_proficiency; negate: the agent must NOT hold it at that level.

object
skill_id
required
Skill Id
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
min_proficiency
required
Min Proficiency
integer
>= 1 <= 5
negate
Negate
boolean
label
Label
string
default: VIP >= 1 characters <= 40 characters
conditions
Conditions
Array<object>
<= 4 items
CcCrmRule

A CRM predicate: a contact tag, its lead status, or one custom attribute’s value.

object
field
required
Field
string
Allowed values: tag lead_status attribute account open_case
key
Any of:
string
>= 1 characters <= 60 characters
value
required
Value
string
>= 1 characters <= 120 characters
match
Match
string
default: all
Allowed values: all any
entry_rule
Any of:
CcCrmRule

A CRM predicate: a contact tag, its lead status, or one custom attribute’s value.

object
field
required
Field
string
Allowed values: tag lead_status attribute account open_case
key
Any of:
string
>= 1 characters <= 60 characters
value
required
Value
string
>= 1 characters <= 120 characters
sla_percent
Sla Percent
integer
default: 80 >= 1 <= 100
sla_seconds
Sla Seconds
integer
default: 20 >= 1 <= 3600
short_abandon_seconds
Short Abandon Seconds
integer
default: 5 <= 30
max_wait_seconds
Any of:
integer
>= 15 <= 3600
max_callers
Any of:
integer
>= 1 <= 1000
announce_ewt
Announce Ewt
boolean
default: true
callback_ewt_seconds
Any of:
integer
>= 30 <= 1800
ai_after_seconds
Any of:
integer
<= 3600
ai_capacity
Any of:
integer
>= 1 <= 500
ai_overflow_ewt_seconds
Any of:
integer
>= 30 <= 1800
humans_only
Humans Only
boolean
auto_answer_allowed
Auto Answer Allowed
boolean
default: true
team_id
Any of:
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
acw_seconds
Any of:
integer
<= 900
strict
Strict
boolean
member_user_ids
Member User Ids
Array<string>
<= 1000 items
member_team_ids
Member Team Ids
Array<string>
<= 50 items
member_priorities
Member Priorities
object

Successful Response

Media typeapplication/json
CcQueue
object
name
required
Name
string
>= 1 characters <= 80 characters
description
Any of:
string
<= 500 characters
priority
Priority
integer
default: 5 >= 1 <= 10
strategy
Strategy
string
default: longest_idle
Allowed values: longest_idle most_skilled round_robin ring_all
aging_seconds
Aging Seconds
integer
default: 60 <= 3600
steps
Steps
Array<object>
<= 5 items
CcRoutingStep

A bullseye ring: from after_seconds into the wait, the FULL requirement - the plain requirements (all must hold) AND every any_of group - plus overflow queues whose members join the pool from this step on (CC1-R2/R3). At most 20 skill terms in all; POST …/requirements/parse turns the text form into this shape.

object
after_seconds
required
After Seconds
integer
<= 3600
requirements
Requirements
Array<object>
<= 20 items
CcRequirement

skill >= min_proficiency; negate: the agent must NOT hold it at that level.

object
skill_id
required
Skill Id
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
min_proficiency
required
Min Proficiency
integer
>= 1 <= 5
negate
Negate
boolean
include_queue_ids
Include Queue Ids
Array<string>
<= 5 items
any_of
Any Of
Array<object>
<= 10 items
CcRequirementGroup

An OR group (CC1-R2): at least one alternative holds; each alternative is the AND of its terms. (Spanish>=3 OR Portuguese>=3) is two one-term alternatives.

object
alternatives
required
Alternatives
Array<Array<object>>
>= 2 items <= 10 items
include_ai
Include Ai
boolean
overflow_queue_id
Any of:
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
overflow_after_seconds
Any of:
integer
<= 3600
sticky_mode
Sticky Mode
string
default: off
Allowed values: off last_agent crm_owner last_agent_then_owner account_owner company_owner
sticky_timeout_seconds
Sticky Timeout Seconds
integer
default: 20 <= 120
vip_rules
Vip Rules
Array<object>
<= 10 items
CcVipRule

CC1-R5: a matching caller is lifted (+1..+5) and/or needs skills. More conditions (≤ 4) combine with the rule’s own by match: all (AND) or any (OR), e.g. account.industry = "Healthcare" OR open_case.urgency = "urgent".

object
field
required
Field
string
Allowed values: tag lead_status attribute account open_case
key
Any of:
string
>= 1 characters <= 60 characters
value
required
Value
string
>= 1 characters <= 120 characters
priority_boost
Priority Boost
integer
0 <= 5
requirements
Requirements
Array<object>
<= 5 items
CcRequirement

skill >= min_proficiency; negate: the agent must NOT hold it at that level.

object
skill_id
required
Skill Id
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
min_proficiency
required
Min Proficiency
integer
>= 1 <= 5
negate
Negate
boolean
label
Label
string
default: VIP >= 1 characters <= 40 characters
conditions
Conditions
Array<object>
<= 4 items
CcCrmRule

A CRM predicate: a contact tag, its lead status, or one custom attribute’s value.

object
field
required
Field
string
Allowed values: tag lead_status attribute account open_case
key
Any of:
string
>= 1 characters <= 60 characters
value
required
Value
string
>= 1 characters <= 120 characters
match
Match
string
default: all
Allowed values: all any
entry_rule
Any of:
CcCrmRule

A CRM predicate: a contact tag, its lead status, or one custom attribute’s value.

object
field
required
Field
string
Allowed values: tag lead_status attribute account open_case
key
Any of:
string
>= 1 characters <= 60 characters
value
required
Value
string
>= 1 characters <= 120 characters
sla_percent
Sla Percent
integer
default: 80 >= 1 <= 100
sla_seconds
Sla Seconds
integer
default: 20 >= 1 <= 3600
short_abandon_seconds
Short Abandon Seconds
integer
default: 5 <= 30
max_wait_seconds
Any of:
integer
>= 15 <= 3600
max_callers
Any of:
integer
>= 1 <= 1000
announce_ewt
Announce Ewt
boolean
default: true
callback_ewt_seconds
Any of:
integer
>= 30 <= 1800
ai_after_seconds
Any of:
integer
<= 3600
ai_capacity
Any of:
integer
>= 1 <= 500
ai_overflow_ewt_seconds
Any of:
integer
>= 30 <= 1800
humans_only
Humans Only
boolean
auto_answer_allowed
Auto Answer Allowed
boolean
default: true
team_id
Any of:
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
acw_seconds
Any of:
integer
<= 900
strict
Strict
boolean
member_user_ids
Member User Ids
Array<string>
<= 1000 items
member_team_ids
Member Team Ids
Array<string>
<= 50 items
member_priorities
Member Priorities
object
id
required
Id
string
revision
required
Revision
integer
members
required
Members
Array<object>
CcQueueMember
object
user_id
required
User Id
string
name
required
Name
string
priority
Priority
integer
default: 5
effective_steps
required
Effective Steps
Array<object>
CcRoutingStep

A bullseye ring: from after_seconds into the wait, the FULL requirement - the plain requirements (all must hold) AND every any_of group - plus overflow queues whose members join the pool from this step on (CC1-R2/R3). At most 20 skill terms in all; POST …/requirements/parse turns the text form into this shape.

object
after_seconds
required
After Seconds
integer
<= 3600
requirements
Requirements
Array<object>
<= 20 items
CcRequirement

skill >= min_proficiency; negate: the agent must NOT hold it at that level.

object
skill_id
required
Skill Id
string
>= 1 characters <= 64 characters /^[A-Za-z0-9_-]+$/
min_proficiency
required
Min Proficiency
integer
>= 1 <= 5
negate
Negate
boolean
include_queue_ids
Include Queue Ids
Array<string>
<= 5 items
any_of
Any Of
Array<object>
<= 10 items
CcRequirementGroup

An OR group (CC1-R2): at least one alternative holds; each alternative is the AND of its terms. (Spanish>=3 OR Portuguese>=3) is two one-term alternatives.

object
alternatives
required
Alternatives
Array<Array<object>>
>= 2 items <= 10 items
include_ai
Include Ai
boolean
used_by_lines
Used By Lines
Array<string>
created_at
required
Created At
string format: date-time
updated_at
required
Updated At
string format: date-time
Example
{
"priority": 5,
"strategy": "longest_idle",
"aging_seconds": 60,
"steps": [
{
"requirements": [
{
"negate": false
}
],
"any_of": [
{
"alternatives": [
[
{
"negate": false
}
]
]
}
],
"include_ai": false
}
],
"sticky_mode": "off",
"sticky_timeout_seconds": 20,
"vip_rules": [
{
"field": "tag",
"priority_boost": 0,
"requirements": [
{
"negate": false
}
],
"label": "VIP",
"conditions": [
{
"field": "tag"
}
],
"match": "all"
}
],
"entry_rule": {
"field": "tag"
},
"sla_percent": 80,
"sla_seconds": 20,
"short_abandon_seconds": 5,
"max_wait_seconds": 600,
"announce_ewt": true,
"callback_ewt_seconds": 120,
"humans_only": false,
"auto_answer_allowed": true,
"strict": false,
"members": [
{
"priority": 5
}
],
"effective_steps": [
{
"requirements": [
{
"negate": false
}
],
"any_of": [
{
"alternatives": [
[
{
"negate": false
}
]
]
}
],
"include_ai": false
}
]
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}