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

Process

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.

403 - Unauthorized#

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.

503 - Service Unavailable#

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