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

Steps

Manages the steps for the workflow.

Operations

Split Options

Manages the split options for split steps in a workflow.

Operations

Get All Split Options

Request

Retrieves all of the split options for the split step.

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

Responses

Success

Body
pagingobject(PageDto)

The paging information for this response.

contentArray of objects(SplitStepOption_v1_0)

The content list of the data.

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

Creates Split Option

Request

Creates a new split option for a split step, defining a branching path in the workflow. A split option represents a conditional branch that users can take based on the evaluation of an enrollment action. The new option is automatically added to the end of the existing options list and will be processed in the order they were created. Each split option requires a unique name within the split step and must reference a valid enrollment action that matches the split step's action type. The operation is asynchronous and returns a request ID for tracking the creation process. Split options enable conditional workflow branching where different user paths can lead to different subsequent steps.

Path
workflowIdstring(uuid)required
stepIdstring(uuid)required
Bodyrequired
optionNamestringnon-emptyrequired

The name of the option for this step.

enrollmentActionIdstring(uuid)required

The ID of the enrollment action to be followed in this step.

_linksobject(Links)
{ "optionName": "string", "enrollmentActionId": "a76b6dde-7900-4ffb-87fb-676692f788d1", "_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" }

Creates Step Under Split Option

Request

Creates a new step that will be executed when a specific split option is selected by the user. This operation allows you to define the workflow path that follows a particular split option. If no step is currently assigned to the option, the new step becomes the immediate next step for that option. If a step already exists for the option, the new step is inserted before the existing step, creating a sequential flow. The operation requires a valid action definition that matches the step type being created. This enables complex branching workflows where different split option choices lead to different sequences of steps. The operation is asynchronous and returns a request ID for tracking the creation process.

Path
workflowIdstring(uuid)required
stepIdstring(uuid)required
optionIdstring(uuid)required
Bodyrequired
actionDefinitionIdstring(uuid)

The action definition ID for this step. This is a read only attribute for steps, and will be determined by the provided enrollment action on the create. For split steps this will determine the type of options that can be added to the step.

enrollmentActionIdstring(uuid)required

The ID of the enrollment action to be followed in this step.

_linksobject
typestringrequired

The type of step.

Discriminator
firstSplitOptionobject(SplitStepOption_v1_0)

The split option to be created when this split step is created. It can be any kind of step defined in the option and will created if provided on the POST, but will be ignored on a PATCH.

{ "actionDefinitionId": "0b16f95e-fcc6-4107-a58b-86f2fc764d01", "enrollmentActionId": "a76b6dde-7900-4ffb-87fb-676692f788d1", "_links": { "property1": { … }, "property2": { … } }, "type": "SplitStep_v1_0", "firstSplitOption": { "optionName": "string", "enrollmentActionId": "a76b6dde-7900-4ffb-87fb-676692f788d1", "_links": { … } } }

Responses

Accepted

Body
requestIdstring

Unique identifier for the asynchronous request.

idstring

Optional resource ID returned after successful processing.

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

Get Split Option

Request

Retrieves the split option by id.

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

Responses

Success

Body
idstring(uuid)read-only

The unique ID for this option on the workflow.

optionNamestringnon-emptyrequired

The name of the option for this step.

enrollmentActionIdstring(uuid)required

The ID of the enrollment action to be followed in this step.

actionDefinitionIdstring(uuid)read-only

The action definition ID for this step. This is a read only attribute, and will be determined by the provided enrollment action on the create.

actionTypestringread-only

The action type assigned to this step.

nextStepIdstring(uuid)read-only

The next step for this option. This is a read only attribute.

statusstringread-only

The validation status of the split option.

Enum"VALID""INVALID"
statusReasonsArray of objects(SplitOptionStatusReasonDto_v1_0)uniqueread-only

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

_linksobject(Links)
Response
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "optionName": "string", "enrollmentActionId": "a76b6dde-7900-4ffb-87fb-676692f788d1", "actionDefinitionId": "0b16f95e-fcc6-4107-a58b-86f2fc764d01", "actionType": "string", "nextStepId": "142c7a6d-2f1c-4ddc-9f1b-2ef0d2239d82", "status": "VALID", "statusReasons": [ { … } ], "_links": { "property1": { … }, "property2": { … } } }

Delete Split Option

Request

Deletes the requested option and all of the steps under this option.

Path
workflowIdstring(uuid)required
stepIdstring(uuid)required
optionIdstring(uuid)required
Query
includeChildrenboolean
Default false
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" }

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