How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Opal Workflows API

## Workflows OverviewIn Opal, a workflow is an arrangement of tasks and approvals required to progress through the lifecycle of a StoryFirst resource. **Historical Note:***The v2 Workflows API will supersede the v2 [Phase Items](#tag/Phase-Items) API, although initial rollout will only include support forWorkflow on Moments which means there will be a period of time during which the Phase Items API remains the APIfor Content Workflows.*### Workflow / Phase Items TranslationsThe following resources described below for the v2 Workflows API have fairly direct translations to the older Phase Items API.- A _workflow_ was known as a _phase group_.- A _stage_ was known as a _phase_.- An _assignment_ was known as a _phase item_.### ContextWorkflows from the v2 Workflow API have an optional `context` relationship. These contexts tie workflows to the resources againstwhich the workflow is being performed. Currently only the **Moment** context is supported.A workflow without a `context` is a reasonable thing to think about: Such a workflow might have common stages that apply broadlyin more than one context. Although a workflow can conceptually be created without a context, it must be given a context before it canbe started.Currently, the capabilities supported by contextless workflows are not built out in the Opal Platform. API requests should be made tocreate contexts for all workflows before building them out or starting them.**Important:** Contexts tie workflows to resources from neighboring services; although Opal has one coherent v2 API, a client mustrequest StoryFirst resources (like `moment`s) from other services rather than `including` them on Workflow requests. For example,a Workflow might have a `context` with a `moment_id` of `'3432'`; the client would make a request to `moments/v2/3432` to retrievedetails for that Moment.See the documentation on [`POST` **Create a Context**](#tag/Workflows/operation/CreateContextV2) for more information.### ResourcesA `workflow` is arranged into `stage`s, each of which is a `circuit_breaker`, an `approval` stage, or a `task` stage.All stages can optionally specify a `due_date`, but if `null` then the due date is left up to interpretation of the userof the workflow -- For a Moment Workflow, perhaps the due date is the `scheduled_date` of the Moment, or perhapsthe exact date is not important.Assignments are completed by `POST`ing `response`s. Circuit breakers and tasks can be completed and approvals can beapproved or declined. An approved response can be superseded by a following declined response on the same assignment.Similarly, tasks can be "undone" after being marked complete by sending a follow-up response. Responses are a ledger withthe most recent response representing the current state of the assignment.#### Circuit BreakerCircuit breakers generally just contain one assignment. When the assignment is completed, the circuit breaker is completedand the following stage becomes active. Circuit breakers allow workflows to pause between any two stages and they are usedto create the initial pause before a workflow is started (giving users time to build a workflow out before beginning workagainst it).#### ApprovalApproval stages can contain any number of approval `assignment`s. They can be configured such that all of those approvalsmust be given for the workflow to progress (`metadata.completion_rules.all`) or they can be configured such that the workflowprogresses after any one of the approvals is given (`metadata.completion_rules.one`).##### Approval ResponseEach approval `response` can be either `approved` or `declined` and it can optionally contain a message from the approver.As noted above, any number of responses can be given on a single assignment; the most recent response represents the stateof the approval: approved, declined, or in the absence of a response, simply incomplete.#### TaskTask stages can contain any number of task `assignment`s. A task stage is complete after all assignments within it have beencompleted.##### Task ResponseEach task `response` can be either _complete_ (`complete: true`) or _incomplete_ (`complete: false`).As noted above, any number of responses can be given on a single task; the most recent response represents the state of thetask: complete or incomplete.### TemplatesCreation of a new workflow often involves creating a handful of the same resources every time. For this reason, there are templatesthe allow you to create one of two types of workflows more easily. You always get a `circuit_breaker` with one assignment at the startand then you get either an `approval` or a `task` `stage` next, again with one assignment. All assignments start out unassigned.See the documentation on [`POST` **Create a Workflow**](#tag/Workflows/operation/CreateWorkflowsV2) for more information.### RewindingWorkflows can be "rewound" to undo some portion of them. **The big caveat being:** You are not allowed to rewind back to the start of (or before) a completed final approvel stage. Final approvalstages (i.e. the last approval stage in a workflow) are special because they can have side effects that cannot be taken back --if workflow completion resulted in publishing to a third party platform, for example, then rewinding back to an unapproved state for theworkflow would leave the workflow unrepresentative of the fact that something had already been published.See the documentation on [`PATCH` **Rewind a Workflow**](#tag/Workflows/operation/RewindWorkflowV2) for more information.

Opal Workflows API is one of 79 APIs that Opal publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Workflows. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 21 operations across 14 paths. It is described by OpenAPI 3.2.0, at version 1.0.

Requests are made against a single base URL, https://login.ouropal.com.

21 operations 14 paths 0 schemas 2 DELETE8 GET3 PATCH8 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0
Base URL
https://login.ouropal.com
Authentication
OAuth 2.0, API Key, OAuth 2.0, API Key
Resource Areas
1

Authentication & Security 4

Opal Workflows API declares 4 security schemes for authenticating requests. It supports OAuth 2.0 (oauth2) using the authorizationCode flow, exposing 1 scope. An API key is passed in the header as Session-Token (api_key). It supports OAuth 2.0 (anonymous_oauth) using the clientCredentials flow, exposing 1 scope. An API key is passed in the cookie as share_token (presentation_share_cookie).

  • oauth2 — This API uses OAuth 2.0 with the authorization code grant flow. You can find more detailed authentication instructions in the [Authentication Strategies](/api/…
  • api_key — (Deprecated) This API also supports authentication via an API or session token set in the request headers.
  • anonymous_oauth — The OAuth 2.0 client credentials flow is used for secure server-server requests when Opal does not need to associate a request with a particular Opal user. The…
  • presentation_share_cookie — A cookie set and read by the Monolith service that authorizes a non-opal user to view a presentation and the resources within it. Other services can rely on th…

Paths & Operations 21

Across 14 paths, the API surfaces 21 operations — 2 DELETE, 8 GET, 3 PATCH, 8 POST. Each is listed below with its method, path, parameters, and response codes.

Workflows 21

Workflows Overview In Opal, a workflow is an arrangement of tasks and approvals required to progress through the lifecycle of a StoryFirst resource. Historical Note: The v2 Workfl…

POST
/workflows/v2/contexts
Create a Context
CreateContextV2 1 param body → 201400401404422
GET
/workflows/v2/workflows
Get a collection of workflows
ReadWorkflowsV2 5 params → 200400401404
POST
/workflows/v2/workflows
Create a workflow
CreateWorkflowsV2 2 params body → 201400401404
GET
/workflows/v2/workflows/{workflow_id}
Get a Workflow
ReadWorkflowV2 3 params → 200400401404
PATCH
/workflows/v2/workflows/{workflow_id}/rewind
Rewind a Workflow
RewindWorkflowV2 2 params body → 200400401404422
POST
/workflows/v2/workflows/{workflow_id}/duplicate
Duplicate a Workflow
DuplicateWorkflowV2 2 params body → 201400401404422
POST
/workflows/v2/stages
Create a stage
CreateStageV2 1 param body → 200400401422
GET
/workflows/v2/stages/{stage_id}
Get a stage by ID
ReadStageV2 2 params → 200400401422
PATCH
/workflows/v2/stages/{stage_id}
Update a Stage by id
UpdateStageV2 2 params body → 200400401403404409422
DELETE
/workflows/v2/stages/{stage_id}
Delete a stage
DeleteStageV2 2 params → 200404409
GET
/workflows/v2/assignments/{assignment_id}
Get an Assignment
ReadAssignmentV2 2 params → 200400401404422
PATCH
/workflows/v2/assignments/{assignment_id}
Update an assignment by id
UpdateAssignmentV2 1 param body → 200400401403404409422
DELETE
/workflows/v2/assignments/{assignment_id}
Delete an Assignment
DeleteAssignmentV2 1 param → 200400401404422
GET
/workflows/v2/assignments
Get a collection of assignments
ReadAssignmentsV2 4 params → 200400401404
POST
/workflows/v2/assignments
Create an assignment
CreateAssignmentV2 body → 201400401404
POST
/workflows/v2/responses
Create a Response for an Assignment
CreateResponseV2 1 param body → 201400401404
GET
/workflows/v2/responses/{response_id}
Fetch a Response for an Assignment
ReadResponseV2 2 params → 200400401404422
GET
/v3/workflows
Get a collection of workflows
ReadWorkflowsV3 5 params → 200400401404
POST
/v3/workflows
Create a workflow
CreateWorkflowsV3 2 params body → 201400401404
GET
/v3/workflows/{workflow_id}
Get a Workflow by ID
ReadWorkflowV3 3 params → 200400401404
POST
/v3/workflows/{workflow_id}/duplicate
Duplicate a Workflow
DuplicateWorkflowV3 2 params body → 201400401404422

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

opal-workflows-api-openapi.yml Raw ↑

Other APIs Opal publishes across the network.

Opal Accounts API
Opal Activities API
Opal Annotations API
Opal Asset Reference Options API
Opal Asset Reference Usage Rights Options API
Opal Asset References API
Opal Assets API
Opal Block Connectors API
Opal Block Custom Field Values API
Opal Block Duplication API
Opal Blocks API
Opal Board Collaborators API
Where this information came from

This is an independent, third-party profile of Opal Workflows API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.