Skip to content

Workflow Management API (0.0.4)

Overview

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.

Getting Started: Creating Workflows and Steps

1. Create a Workflow

To create a new workflow:

  1. Use POST /workflows with required fields: name, description
  2. Optionally specify allowedIps and disAllowedIps for network restrictions
  3. The workflow will be created with a status of work in progress
  4. Use PATCH /workflows/{workflowId} to update workflow properties

2. Create Steps

Steps define the user journey within a workflow:

  1. Start Step: Use POST /workflows/{workflowId}/steps to create the initial step
  2. Regular Steps: Create additional steps using POST /workflows/{workflowId}/steps/{stepId}
  3. Split Steps: Create branching logic using split steps with multiple options
  4. End Steps: Mark steps as terminating to end the workflow

3. Assign Actions to Steps

Each step requires an action definition:

  1. Query available actions using GET /workflowActionDefinitions
  2. Assign action by setting actionDefinitionId in the step
  3. For split steps, create options using POST /workflows/{workflowId}/steps/{stepId}/splitOptions
  4. Each split option must have a matching action type

4. Connect Steps in Sequence

Link steps together to create the workflow flow:

  1. Set nextStepId to connect steps in sequence
  2. Use POST /workflows/{workflowId}/steps/{stepId}/nextSteps/{detachedStepId} to attach steps
  3. For split steps, each option can lead to different next steps

5. Publish the Workflow

Make the workflow available to users:

  1. Use PATCH /workflows/{workflowId} with publishedDetails.status: 'PUBLISHED'
  2. The workflow must be valid before publishing
  3. Published workflows can be assigned to captive portal networks
Download OpenAPI description
Languages
Servers
RUCKUS One API host for North American region.
https://api.ruckus.cloud/
RUCKUS One API host for European region.
https://api.eu.ruckus.cloud/
RUCKUS One API host for Asian region.
https://api.asia.ruckus.cloud/

Workflow

Manages the workflows, including create, update and delete.

Operations

Create Workflow

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.

Bodyrequired
namestringnon-emptyrequired

The name of the workflow.

descriptionstring

The description of a workflow.

allowedIpsArray of strings

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.

disAllowedIpsArray of strings

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.

publishedDetailsobject(PublishedDetails_v1_0)

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.

startStepIdstring(uuid)

The start step for this workflow.

publishedChildrenboolean

Indicates that there is a published workflow that is a child of this workflow.

_linksobject(Links)
{ "name": "string", "description": "string", "allowedIps": [ "string" ], "disAllowedIps": [ "string" ], "publishedDetails": { "status": "WORK_IN_PROGRESS" }, "startStepId": "89855da9-7928-4250-8ea0-cf0707fcc260", "publishedChildren": true, "_links": { "property1": {}, "property2": {} } }

Responses

Accepted

Body
requestIdstring

Unique identifier for the asynchronous request.

idstring

Optional resource ID returned after successful processing.

Response
{ "requestId": "string", "id": "string" }

Clone Workflow

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.

Path
workflowIdstring(uuid)required
No request payload

Responses

Accepted

Body
requestIdstring

Unique identifier for the asynchronous request.

idstring

Optional resource ID returned after successful processing.

Response
{ "requestId": "string", "id": "string" }

Get Versioned Workflows

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.

Path
workflowIdstring(uuid)required
Query
excludeContentboolean
Default false
Bodyrequired
sortFieldstring

The field to use to sort on.

sortOrderstring

The sort order of the applied query.

Enum"ASC""DESC"
pageinteger(int32)>= 0

The page number to return, paging starts with 0.

pageSizeinteger(int32)[ 1 .. 2000 ]

The number of items requested on the page.

filtersobject

The list of filters to apply.

{ "sortField": "string", "sortOrder": "ASC", "page": 0, "pageSize": 1, "filters": { "property1": null, "property2": null } }

Responses

Success

Body
pagingobject(PageDto)

The paging information for this response.

contentArray of objects(Workflow_v1_0)

The content list of the data.

Response
{ "paging": { "totalCount": 0, "page": 0, "pageSize": 0, "pageCount": 0 }, "content": [ {} ] }

Import Workflow

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.

Path
workflowIdstring(uuid)required
stepIdstring(uuid)required
referencedWorkflowIdstring(uuid)required
No request payload

Responses

Accepted

Body
requestIdstring

Unique identifier for the asynchronous request.

idstring

Optional resource ID returned after successful processing.

Response
{ "requestId": "string", "id": "string" }

Get Current Workflows

Request

Retrieves all of the work in progress workflows based on the query criteria.

Query
excludeContentboolean
Default false
Bodyrequired
sortFieldstring

The field to use to sort on.

sortOrderstring

The sort order of the applied query.

Enum"ASC""DESC"
pageinteger(int32)>= 0

The page number to return, paging starts with 0.

pageSizeinteger(int32)[ 1 .. 2000 ]

The number of items requested on the page.

filtersobject

The list of filters to apply.

{ "sortField": "string", "sortOrder": "ASC", "page": 0, "pageSize": 1, "filters": { "property1": null, "property2": null } }

Responses

Success

Body
pagingobject(PageDto)

The paging information for this response.

contentArray of objects(Workflow_v1_0)

The content list of the data.

Response
{ "paging": { "totalCount": 0, "page": 0, "pageSize": 0, "pageCount": 0 }, "content": [ {} ] }

Get Workflow

Request

Retrieves the requested workflow by id.

Path
workflowIdstring(uuid)required

Workflow identifier.

No request payload

Responses

Success

Body
idstring(uuid)read-only

The unique ID for this workflow.

namestringnon-emptyrequired

The name of the workflow.

descriptionstring

The description of a workflow.

allowedIpsArray of strings

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.

disAllowedIpsArray of strings

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.

publishedDetailsobject(PublishedDetails_v1_0)

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.

startStepIdstring(uuid)

The start step for this workflow.

publishedChildrenboolean

Indicates that there is a published workflow that is a child of this workflow.

statusstringread-only

The validation status of the workflow.

Enum"VALID""INVALID"
statusReasonsArray of objects(WorkflowStatusReasonDto_v1_0)read-only

The set of reasons for an invalid status. This will be empty if the workflow is valid.

_linksobject(Links)
Response
{ "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": {} } }

Delete Workflow

Request

Initiates a request that will delete the workflow requested. If the workflow id provided is for a workflow that is in a work in progress state then it will be deleted along with all dependent published and retired workflows.

Path
workflowIdstring(uuid)required
No request payload

Responses

Accepted

Body
requestIdstring

Unique identifier for the asynchronous request.

idstring

Optional resource ID returned after successful processing.

Response
{ "requestId": "string", "id": "string" }

Update a Workflow

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.

Path
workflowIdstring(uuid)required
Bodyrequired
namestringnon-emptyrequired

The name of the workflow.

descriptionstring

The description of a workflow.

allowedIpsArray of strings

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.

disAllowedIpsArray of strings

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.

publishedDetailsobject(PublishedDetails_v1_0)

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.

startStepIdstring(uuid)

The start step for this workflow.

publishedChildrenboolean

Indicates that there is a published workflow that is a child of this workflow.

_linksobject(Links)
{ "name": "string", "description": "string", "allowedIps": [ "string" ], "disAllowedIps": [ "string" ], "publishedDetails": { "status": "WORK_IN_PROGRESS" }, "startStepId": "89855da9-7928-4250-8ea0-cf0707fcc260", "publishedChildren": true, "_links": { "property1": {}, "property2": {} } }

Responses

Ok - Returned if a validation request finds no errors.

Body
requestIdstring

Unique identifier for the asynchronous request.

idstring

Optional resource ID returned after successful processing.

Response
{ "requestId": "string", "id": "string" }

Steps

Manages the steps for the workflow.

Operations

Split Options

Manages the split options for split steps in a workflow.

Operations

Enrollment UI Configuration

Manages the enrollment configuration for the workflow.

Operations

Action Definition

Manages the action definitions that can be used in workflow steps.

Operations