Approvers
Designated approvers are users or groups. A group stays live: whoever is in it when a request is submitted can approve. Approvers only matter whilerequire_approvers is on; required_approvals sets how many approvals a request needs (see workflow settings).
Permission to change: workflow.manage_form_settings.
GET workflows/{id}/approvers/
approvers lists direct approvers first, then members of approver groups who aren’t also direct approvers.
POST workflows/{id}/approvers/
user is a member’s id, username or email; group is a group’s id or name. is_required defaults to true.
Response 201: {"success": true, "approver": {…}} or {"success": true, "group": {…}}.
Errors: 400 if already an approver, or the group has no active members; 404 for an unknown user or group.
PATCH workflows/{id}/approvers/{approver_id}/
{"is_required": false}. approver_id is a direct approver’s id or a group’s id from groups.
DELETE workflows/{id}/approvers/{approver_id}/
Removes a direct approver or an approver group. Returns {"success": true, "message": "…"}.
Roles
Workflow roles:reader (view), writer (view, edit, run, change settings and variables), admin (everything, including access). A role can go to a user or a group.
Permission: workflow.manage_permissions (including to list).
GET workflows/{id}/permissions/
POST workflows/{id}/permissions/
{"group": "Platform", "role": "reader"}.
Response: 201 when granted, 200 when the user or group already had it.
PATCH workflows/{id}/permissions/{permission_id}/
{"role": "admin"}. permission_id is a user assignment’s id or a group’s id from groups.
DELETE workflows/{id}/permissions/{permission_id}/
Returns 204.
Form visibility
A request workflow’s form is visible in its own workspace, in all workspaces, or in a selected list. Withform_visibility set to selected_workspaces (see workflow settings), these endpoints manage the list. The request portal is separate: see portal_enabled.
Permission to change: workflow.manage_form_settings. Request workflows only.
GET workflows/{id}/form-visibility/
POST workflows/{id}/form-visibility/
{"workspace": "data", "permission": "viewer"}. workspace is a slug or id; permission is viewer (default) or editor.
PATCH workflows/{id}/form-visibility/{entry_id}/
{"permission": "editor"}.
DELETE workflows/{id}/form-visibility/{entry_id}/
Returns 204.