Create a Process#
Description#
Create a new Process with the specified configuration and Job hierarchy.
POST /processes
Required OAuth Scopes
file:write
Parameters#
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
X-Version |
header |
string |
true |
Version of the API (2026-04-01.processes.preview) |
body |
body |
true |
Process creation request with job hierarchy and configuration |
Body parameter example#
{
"autoClose": true,
"businessDaysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"businessStartDate": "2024-01-01",
"certAutoApprove": false,
"dueDate": "2024-12-31",
"name": "Annual Performance Review Process",
"relativeDates": true,
"root": {
"children": [
{
"job": {
"arguments": {
"sendTaskArgs": {
"approverDueDate": "2024-12-20",
"approverUser": "userId5678",
"assigneeUser": "userId1234",
"dueDate": "2024-12-15",
"instructions": "Please complete your annual self-assessment by reviewing your accomplishments and setting goals for next year.",
"title": "Complete Self-Assessment"
},
"type": "sendTask"
}
},
"type": "job"
}
],
"name": "Performance Review Workflow",
"parallel": false,
"readOnly": false,
"triggerType": "whenEligible"
}
}
Code Samples#
curl -X POST https://api.app.wdesk.com/processes \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'X-Version: 2026-04-01.processes.preview'
http POST https://api.app.wdesk.com/processes \
X-Version:2026-04-01.processes.preview \
Content-Type:application/json \
Accept:application/json \
Authorization:"Bearer {access-token}"
wget --method=POST "https://api.app.wdesk.com/processes" \
--output-document - \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}' \
--header 'X-Version: 2026-04-01.processes.preview'
import requests
headers = {
'X-Version': '2026-04-01.processes.preview',
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.app.wdesk.com/processes', headers = headers)
print(r.json())
Returns#
201 - Process created successfully#
Build-time representation of a Process whose work is described by a collection of Jobs contained in its
root Group.
400 - Invalid request#
Standard error response returned by the API when a request fails. Provides detailed information about what went wrong including error codes, human-readable messages, and additional context to help diagnose and fix the issue.
401 - Unauthenticated request.#
Standard error response returned by the API when a request fails. Provides detailed information about what went wrong including error codes, human-readable messages, and additional context to help diagnose and fix the issue.
404 - Not found#
Standard error response returned by the API when a request fails. Provides detailed information about what went wrong including error codes, human-readable messages, and additional context to help diagnose and fix the issue.
409 - Collision#
Standard error response returned by the API when a request fails. Provides detailed information about what went wrong including error codes, human-readable messages, and additional context to help diagnose and fix the issue.
429 - Too Many Requests#
Standard error response returned by the API when a request fails. Provides detailed information about what went wrong including error codes, human-readable messages, and additional context to help diagnose and fix the issue.
500 - Server error#
Standard error response returned by the API when a request fails. Provides detailed information about what went wrong including error codes, human-readable messages, and additional context to help diagnose and fix the issue.
Example Responses#
{
"autoClose": true,
"businessDaysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"businessStartDate": "2024-01-01",
"certAutoApprove": false,
"created": {
"dateTime": "2019-10-30T15:03:27Z",
"user": {
"id": "V1ZVd2VyFzU3NiQ1NDA4NjIzNzk2MjD"
}
},
"dueDate": "2024-12-31",
"id": "process-new789",
"modified": {
"dateTime": "2019-10-30T15:03:27Z",
"user": {
"id": "V1ZVd2VyFzU3NiQ1NDA4NjIzNzk2MjD"
}
},
"name": "Annual Performance Review Process",
"relativeDates": true,
"revision": 1,
"root": {
"children": [
{
"job": {
"arguments": {
"type": "sendTask"
},
"id": "job-new123"
},
"type": "job"
}
],
"id": "root-group-new456",
"name": "Performance Review Workflow",
"parallel": false,
"readOnly": false,
"triggerType": "whenEligible"
}
}
{
"code": "invalidUser",
"documentationUrl": "http://developerdocs.example.com",
"message": "The provided user is invalid.",
"meta": {
"argumentName": "assignee",
"jobId": "job1234"
},
"target": "assignee"
}
{
"code": "Unauthorized",
"message": "Bad credentials"
}
{
"code": "403",
"message": "Forbidden"
}
{
"code": "404",
"message": "Could not find process id 51bcc3ec3d0b4aadb69659e2a7ed767b"
}
resource on the server.
{
"code": "409",
"message": "Letter is not in a status that supports submissions"
}
No example available
{
"code": "429",
"message": "Rate limit of 1000 per 60 seconds exceeded for listJobs requests. Retry request in 10 seconds."
}
No example available
This is a generic error message, meaning the server cannot provide a more specific error code.
{
"code": "500",
"message": "unknown error"
}
No example available
maintenance. This status code implies that the server is functional and understands the request, but it cannot fulfill it at the moment.
{
"code": "503",
"message": "Service Unavailable."
}
No example available