---
title: "Create Workflow"
method: POST
path: "/v2/workflows"
tags: ["Workflow API"]
---

# Create Workflow

`POST /v2/workflows`

Create a new workflow for a team.

## Request body

- SvflowPublicapiCreateWorkflowRequest
  - `teamId` string, required — The ID of the team.
  - `name` string, required — The name of the workflow.
  - `description` string — A description of the workflow.
  - `requireFormConfirmation` boolean, nullable — Whether the workflow requires form confirmation (optional).
  - `content` string, required — The content/code of the workflow.
  - `isPublished` boolean, nullable — Whether to publish the workflow after creation (optional).
  - `tagIds` string[] — The IDs of the tags to associate with the workflow.
  - `showInServiceCatalog` boolean, nullable — Whether to list this workflow in the Service Catalog (optional). When omitted, the workflow is not listed.
  - `serviceCatalogDescription` string, nullable — Optional description shown at the top of the Service Catalog run form.

## Response `200`

Success

- SvflowPublicapiCreateWorkflowResponse
  - `data` SvflowPubapimodelsWorkflow
    - `id` string — The ID of the workflow.
    - `teamId` string — The ID of the team that the workflow belongs to.
    - `name` string — The name of the workflow.
    - `description` string — A description of the workflow.
    - `requireFormConfirmation` boolean — Whether the workflow requires form confirmation.
    - `content` string — The content/code of the workflow.
    - `isPublished` boolean — Whether the workflow is published. Set to true to publish the workflow.
    - `hasUnpublishedChanges` boolean — Whether there are unpublished changes to the workflow (computed by server).
    - `tagIds` string[] — IDs of tags associated with this workflow.
    - `showInServiceCatalog` boolean — Whether this workflow is listed in the Service Catalog.
    - `serviceCatalogDescription` string — Description shown at the top of the Service Catalog run form.
    - `scopedId` string — The copy-invariant scoped ID of the workflow (e.g. "wf_..."), stable across cross-team copies.
    - `folderId` string, nullable — The ID of the folder the workflow lives in, if any. Populated on the single-workflow responses (Get/Create/Update and the folder-move endpoint); omitted from ListWorkflows responses — fetch the workflow to read its folder membership.

## Other responses

- `default` — Error

---

[API](https://skmtc.net/serval/apis/serval-public-api.md) · [All operations](https://skmtc.net/serval/apis/serval-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/serval/serval-public-api/versions/0549515e9384/schema)
