Skip to content
vocapable.Docs

Draft shifts against the requirement (greedy assist, not an optimizer)

POST
/v1/workspace/contact-center/wfm/schedule/generate
curl --request POST \
--url https://api.vocapable.com/v1/workspace/contact-center/wfm/schedule/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "start": "2026-04-15", "days": 7, "template_ids": [ "example" ], "team_id": "example", "queue_keys": [ "example" ], "user_ids": [ "example" ], "dry_run": true }'
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
CcWfmGenerate
object
start
required
Start
string format: date
days
Days
integer
default: 7 >= 1 <= 14
template_ids
required
Template Ids
Array<string>
>= 1 items <= 20 items
team_id
Any of:
string
>= 1 characters <= 96 characters /^[A-Za-z0-9_:-]+$/
queue_keys
Any of:
Array<string>
<= 50 items
user_ids
Any of:
Array<string>
<= 500 items
dry_run
Dry Run
boolean
default: true

Successful Response

Media typeapplication/json
CcWfmGenerated
object
proposals
required
Proposals
Array<object>
CcWfmShift
object
id
required
Id
string
revision
required
Revision
integer
user_id
required
User Id
string
user_name
required
User Name
string
starts_at
required
Starts At
string format: date-time
ends_at
required
Ends At
string format: date-time
day
required
Day
string format: date
activities
required
Activities
Array<object>
CcWfmActivity
object
kind
required
Kind
string
Allowed values: break lunch meeting training coaching custom time_off
starts_at
required
Starts At
string format: date-time
ends_at
required
Ends At
string format: date-time
reason_code
Any of:
string
label
Any of:
string
status
required
Status
string
Allowed values: draft published
template_id
required
Any of:
string
origin
required
Origin
string
Allowed values: manual generated swap template
published_at
required
Any of:
string format: date-time
changed_since_publish
required
Changed Since Publish
boolean
can_edit
required
Can Edit
boolean
created
required
Created
integer
remaining_gap_heads
required
Remaining Gap Heads
integer
coverage_before
required
Coverage Before
Array<object>
CcWfmCoverageInterval

The planning view’s coverage line: required (from the forecast) vs scheduled.

object
interval_start
required
Interval Start
string format: date-time
required
required
Required
integer
required_scheduled
required
Required Scheduled
integer
scheduled_heads
required
Scheduled Heads
integer
scheduled_on_queue
required
Scheduled On Queue
integer
gap
required
Gap
integer
coverage_after
required
Coverage After
Array<object>
CcWfmCoverageInterval

The planning view’s coverage line: required (from the forecast) vs scheduled.

object
interval_start
required
Interval Start
string format: date-time
required
required
Required
integer
required_scheduled
required
Required Scheduled
integer
scheduled_heads
required
Scheduled Heads
integer
scheduled_on_queue
required
Scheduled On Queue
integer
gap
required
Gap
integer
note
required
Note
string
Example
{
"proposals": [
{
"activities": [
{
"kind": "break"
}
],
"status": "draft",
"origin": "manual"
}
]
}

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": {}
}
]
}