Manages the workflows, including create, update and delete.
Workflow Management API (0.0.4)
The Workflow Management REST APIs allow the creation of a workflow, and steps within the workflow. Steps, and split step options must be assigned actions that are already defined through the Enrollment Actions API. Please see that API for additional information. For split steps only the action definition is to be provided, but the options require a matching action type, and must be of type split.
To create a new workflow:
- Use
POST /workflowswith required fields:name,description - Optionally specify
allowedIpsanddisAllowedIpsfor network restrictions - The workflow will be created with a status of work in progress
- Use
PATCH /workflows/{workflowId}to update workflow properties
Steps define the user journey within a workflow:
- Start Step: Use
POST /workflows/{workflowId}/stepsto create the initial step - Regular Steps: Create additional steps using
POST /workflows/{workflowId}/steps/{stepId} - Split Steps: Create branching logic using split steps with multiple options
- End Steps: Mark steps as terminating to end the workflow
Each step requires an action definition:
- Query available actions using
GET /workflowActionDefinitions - Assign action by setting
actionDefinitionIdin the step - For split steps, create options using
POST /workflows/{workflowId}/steps/{stepId}/splitOptions - Each split option must have a matching action type
Link steps together to create the workflow flow:
- Set
nextStepIdto connect steps in sequence - Use
POST /workflows/{workflowId}/steps/{stepId}/nextSteps/{detachedStepId}to attach steps - For split steps, each option can lead to different next steps
Request
Creates a new workflow with the specified configuration and automatically initializes it with start and end steps. This operation accepts a workflow data object containing the workflow name, description, network restrictions (allowedIps/disAllowedIps), and publication details. The workflow is created in 'WORK_IN_PROGRESS' status by default, and start/end steps are automatically generated. The operation is asynchronous and returns a request ID for tracking the creation process. Required fields include 'name' (workflow name), while 'description', 'allowedIps', 'disAllowedIps', and 'publishedDetails' are optional.
- application/json
- application/vnd.ruckus.v1+json
The list of IP addresses that are permitted to access this workflow. Only one allowed IP can be queried for using filter in the query data.
The list of IP addresses that are not permitted to access this workflow. Only one not allowed IP can be queried for using filter in the query data.
This is the publication details for the workflow. The only change here that will be recognized on a PATCH, is a request to change the publication state of this workflow. A status of 'validate' will validate the current workflow and return an error if it cannot be published, if no errors are found then no change will occur.
Indicates that there is a published workflow that is a child of this workflow.
- RUCKUS One API host for North American region.https://api.ruckus.cloud/workflows
- RUCKUS One API host for European region.https://api.eu.ruckus.cloud/workflows
- RUCKUS One API host for Asian region.https://api.asia.ruckus.cloud/workflows
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "name": "string", "description": "string", "allowedIps": [ "string" ], "disAllowedIps": [ "string" ], "publishedDetails": { "status": "WORK_IN_PROGRESS" }, "startStepId": "89855da9-7928-4250-8ea0-cf0707fcc260", "publishedChildren": true, "_links": { "property1": { … }, "property2": { … } } }
{ "requestId": "string", "id": "string" }
Request
Creates a complete copy of an existing workflow including all its steps, split options, and configuration. The cloned workflow will have a new unique ID and a name generated by appending 'Clone' to the original workflow name (with incremental numbering if duplicates exist). The cloned workflow is created in 'WORK_IN_PROGRESS' status regardless of the source workflow's status. This operation requires the source workflow to have more than just the default start/end steps. The operation is asynchronous and returns a request ID for tracking the cloning process. The cloned workflow can be independently modified and published.
- RUCKUS One API host for North American region.https://api.ruckus.cloud/workflows/{workflowId}/workflows
- RUCKUS One API host for European region.https://api.eu.ruckus.cloud/workflows/{workflowId}/workflows
- RUCKUS One API host for Asian region.https://api.asia.ruckus.cloud/workflows/{workflowId}/workflows
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
No request payload{ "requestId": "string", "id": "string" }
Request
Retrieves all published versions of a specific workflow, including the original workflow and all its published iterations. This endpoint returns a paginated list of workflow versions that share the same parent workflow ID, allowing you to track the evolution of a workflow over time. Each version includes publication details such as version number, publication status, and publication date. Use the QueryData parameter to filter, sort, and paginate through the version history. The excludeContent parameter can be used to retrieve only the total count without the full workflow details for performance optimization.
- application/json
- application/vnd.ruckus.v1+json
- RUCKUS One API host for North American region.https://api.ruckus.cloud/workflows/{workflowId}/versions/query
- RUCKUS One API host for European region.https://api.eu.ruckus.cloud/workflows/{workflowId}/versions/query
- RUCKUS One API host for Asian region.https://api.asia.ruckus.cloud/workflows/{workflowId}/versions/query
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "sortField": "string", "sortOrder": "ASC", "page": 0, "pageSize": 1, "filters": { "property1": null, "property2": null } }
{ "paging": { "totalCount": 0, "page": 0, "pageSize": 0, "pageCount": 0 }, "content": [ { … } ] }
Request
Imports an existing workflow as a nested workflow within the current workflow, creating a hierarchical workflow structure. This operation clones the referenced workflow and inserts all of that workflows' steps after the specified step in the current workflow. The imported workflow becomes a nested component that can be executed as part of the parent workflow's flow. This enables workflow composition and reuse, allowing complex workflows to be built from smaller, reusable workflow components. The operation requires both workflows to exist and be different, and the referenced workflow must have more than just default steps. The operation is asynchronous and returns a request ID for tracking the import process.
- RUCKUS One API host for North American region.https://api.ruckus.cloud/workflows/{workflowId}/steps/{stepId}/nextSteps/workflows/{referencedWorkflowId}
- RUCKUS One API host for European region.https://api.eu.ruckus.cloud/workflows/{workflowId}/steps/{stepId}/nextSteps/workflows/{referencedWorkflowId}
- RUCKUS One API host for Asian region.https://api.asia.ruckus.cloud/workflows/{workflowId}/steps/{stepId}/nextSteps/workflows/{referencedWorkflowId}
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
No request payload{ "requestId": "string", "id": "string" }
- RUCKUS One API host for North American region.https://api.ruckus.cloud/workflows/query
- RUCKUS One API host for European region.https://api.eu.ruckus.cloud/workflows/query
- RUCKUS One API host for Asian region.https://api.asia.ruckus.cloud/workflows/query
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "sortField": "string", "sortOrder": "ASC", "page": 0, "pageSize": 1, "filters": { "property1": null, "property2": null } }
{ "paging": { "totalCount": 0, "page": 0, "pageSize": 0, "pageCount": 0 }, "content": [ { … } ] }
- RUCKUS One API host for North American region.https://api.ruckus.cloud/workflows/{workflowId}
- RUCKUS One API host for European region.https://api.eu.ruckus.cloud/workflows/{workflowId}
- RUCKUS One API host for Asian region.https://api.asia.ruckus.cloud/workflows/{workflowId}
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
No request payloadSuccess
- application/json
- application/vnd.ruckus.v1+json
The list of IP addresses that are permitted to access this workflow. Only one allowed IP can be queried for using filter in the query data.
The list of IP addresses that are not permitted to access this workflow. Only one not allowed IP can be queried for using filter in the query data.
This is the publication details for the workflow. The only change here that will be recognized on a PATCH, is a request to change the publication state of this workflow. A status of 'validate' will validate the current workflow and return an error if it cannot be published, if no errors are found then no change will occur.
Indicates that there is a published workflow that is a child of this workflow.
The set of reasons for an invalid status. This will be empty if the workflow is valid.
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "description": "string", "allowedIps": [ "string" ], "disAllowedIps": [ "string" ], "publishedDetails": { "parentWorkflowId": "0e133d30-08c8-4a67-900d-b2904eba2ec8", "version": 0, "publishedDate": "2019-08-24T14:15:22Z", "status": "WORK_IN_PROGRESS" }, "startStepId": "89855da9-7928-4250-8ea0-cf0707fcc260", "publishedChildren": true, "status": "VALID", "statusReasons": [ { … } ], "_links": { "property1": { … }, "property2": { … } } }
- RUCKUS One API host for North American region.https://api.ruckus.cloud/workflows/{workflowId}
- RUCKUS One API host for European region.https://api.eu.ruckus.cloud/workflows/{workflowId}
- RUCKUS One API host for Asian region.https://api.asia.ruckus.cloud/workflows/{workflowId}
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
No request payload{ "requestId": "string", "id": "string" }
Request
Updates an existing workflow with new configuration values including name, description, network restrictions (allowedIps/disAllowedIps), and publication status. This operation supports partial updates where only provided fields are modified. The workflow can be updated in 'WORK_IN_PROGRESS' status, and publication status can be changed to 'VALIDATE' (for validation only) or 'PUBLISHED' (to publish the workflow). Once published, a workflow cannot be modified except for publication status changes. The operation validates the workflow before publishing and returns appropriate status codes based on the operation type. This operation is asynchronous and returns a request ID for tracking the update process.
- application/json
- application/vnd.ruckus.v1+json
The list of IP addresses that are permitted to access this workflow. Only one allowed IP can be queried for using filter in the query data.
The list of IP addresses that are not permitted to access this workflow. Only one not allowed IP can be queried for using filter in the query data.
This is the publication details for the workflow. The only change here that will be recognized on a PATCH, is a request to change the publication state of this workflow. A status of 'validate' will validate the current workflow and return an error if it cannot be published, if no errors are found then no change will occur.
Indicates that there is a published workflow that is a child of this workflow.
- RUCKUS One API host for North American region.https://api.ruckus.cloud/workflows/{workflowId}
- RUCKUS One API host for European region.https://api.eu.ruckus.cloud/workflows/{workflowId}
- RUCKUS One API host for Asian region.https://api.asia.ruckus.cloud/workflows/{workflowId}
- Payload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
{ "name": "string", "description": "string", "allowedIps": [ "string" ], "disAllowedIps": [ "string" ], "publishedDetails": { "status": "WORK_IN_PROGRESS" }, "startStepId": "89855da9-7928-4250-8ea0-cf0707fcc260", "publishedChildren": true, "_links": { "property1": { … }, "property2": { … } } }
{ "requestId": "string", "id": "string" }