Partially update a Process#

Description#

Updates the properties of a process via JSON Patch. The Content-Type header must be set to application/json-patch+json.

Options#

Path

PATCH Operations Supported

Value Type

/name

replace

string

/dueDate

remove, replace

string (date, e.g. "2024-12-31")

/autoClose

replace

boolean

/relativeDates

replace

boolean

/certAutoApprove

replace

boolean

/ipmBetaEnabled

replace

boolean

/iwmOptOut

replace

boolean

/businessStartDate

remove, replace

string (date, e.g. "2025-01-01")

/businessEndDate

remove, replace

string (date, e.g. "2025-12-31")

/businessDaysOfWeek

remove, replace

Array of day strings (monday through sunday)

/businessDateExclusions

remove, replace

Array of date strings (e.g. ["2025-01-01", "2025-12-25"])

/businessDateInclusions

remove, replace

Array of date strings (e.g. ["2025-01-04"])

/calendarIds

remove, replace

Array of calendar ID strings

/root/parallel

replace

boolean

/root/triggerType

replace

"whenEligible", "manual"

/defaultCertSignerReminders

remove, replace

ProcessReminderData object

/defaultCertApproverReminders

remove, replace

ProcessReminderData object

Examples#

Update process name and due date#

[
  {
    "op": "replace",
    "path": "/name",
    "value": "Q4 2024 Financial Close Process - Updated"
  },
  {
    "op": "replace",
    "path": "/dueDate",
    "value": "2025-01-15"
  }
]

Remove the due date#

[
  {
    "op": "remove",
    "path": "/dueDate"
  }
]

Update auto-close and cert auto-approve settings#

[
  {
    "op": "replace",
    "path": "/autoClose",
    "value": false
  },
  {
    "op": "replace",
    "path": "/certAutoApprove",
    "value": true
  }
]

Set business calendar window and working days#

[
  {
    "op": "replace",
    "path": "/businessStartDate",
    "value": "2025-01-01"
  },
  {
    "op": "replace",
    "path": "/businessEndDate",
    "value": "2025-12-31"
  },
  {
    "op": "replace",
    "path": "/businessDaysOfWeek",
    "value": ["monday", "tuesday", "wednesday", "thursday", "friday"]
  }
]

Change root group execution mode and trigger type#

[
  {
    "op": "replace",
    "path": "/root/parallel",
    "value": true
  },
  {
    "op": "replace",
    "path": "/root/triggerType",
    "value": "manual"
  }
]

Configure default cert signer reminders#

[
  {
    "op": "replace",
    "path": "/defaultCertSignerReminders",
    "value": {
      "mode": "custom",
      "scheduledReminders": [
        {
          "reminder": {
            "subject": "Certification Reminder",
            "body": "Please complete your certification task."
          },
          "schedule": {
            "type": "relative",
            "relativeSchedule": {
              "offsets": ["P1D", "P3D"],
              "time": "09:00:00",
              "timezone": "America/New_York"
            }
          }
        }
      ]
    }
  }
]

PATCH /processes/{processId}

Required OAuth Scopes

file:write

Parameters#

Parameter

In

Type

Required

Description

X-Version

header

string

true

Version of the API (2026-01-01)

processId

path

string

true

Identifier of the process

body

body

JSONPatchDocument

true

JSON Patch document for updating Process fields

Body parameter example#

[
  {
    "op": "replace",
    "path": "/autoClose",
    "value": false
  },
  {
    "op": "replace",
    "path": "/certAutoApprove",
    "value": true
  }
]

Code Samples#

curl -X PATCH https://api.app.wdesk.com/processes/{processId} \
    -H 'Content-Type: application/json-patch+json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer {access-token}' \
    -H 'X-Version: 2026-01-01'
http PATCH https://api.app.wdesk.com/processes/{processId} \
    X-Version:2026-01-01 \
    Content-Type:application/json-patch+json \
    Accept:application/json \
    Authorization:"Bearer {access-token}"
wget --method=PATCH "https://api.app.wdesk.com/processes/{processId}" \
    --output-document -  \ 
    --header 'Content-Type: application/json-patch+json' \ 
    --header 'Accept: application/json' \ 
    --header 'Authorization: Bearer {access-token}' \
    --header 'X-Version: 2026-01-01'
import requests

headers = {
  'X-Version': '2026-01-01',
  'Content-Type': 'application/json-patch+json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.app.wdesk.com/processes/{processId}', headers = headers)

print(r.json())

Returns#

200 - Process updated successfully#

Returns the updated Process object.

400 - Invalid request#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

401 - Unauthenticated request.#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

403 - Unauthorized#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

404 - Not found#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

409 - Collision#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

429 - Too Many Requests#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

500 - Server error#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

503 - Service Unavailable#

Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.

Example Responses#

{
  "autoClose": false,
  "certAutoApprove": true,
  "created": {
    "dateTime": "2019-10-30T15:03:27Z",
    "user": {
      "id": "V1ZVd2VyFzU3NiQ1NDA4NjIzNzk2MjD"
    }
  },
  "dueDate": "2025-01-15",
  "id": "process-abc123",
  "modified": {
    "dateTime": "2019-10-30T15:03:27Z",
    "user": {
      "id": "V1ZVd2VyFzU3NiQ1NDA4NjIzNzk2MjD"
    }
  },
  "name": "Q4 2024 Financial Close Process - Updated",
  "relativeDates": false,
  "revision": 4,
  "root": {
    "id": "root-group-123",
    "name": "Main 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