---
title: "Create a Workflow Synchronously"
method: POST
path: "/workflows"
tags: ["Workflows"]
---

# Create a Workflow Synchronously

`POST /workflows`

Launch a new Workflow synchronously. 

**OAuth Scope required:** `public.workflows.createWorkflows`

## Query parameters

- `useDefaultValues` boolean

## Headers

- `x-as-user-email` string
- `x-as-user-id` string

## Request body

- WorkflowLaunchModel — Note that `creator` is required when launching with a legacy bearer token but will be ignored when launching via an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or 'x-as-user-email` header will be used.
  - `template` string, required — The identifier of the workflow template
  - `attributes` AttributesModel, required — The data that will be used to populate the workflow's fields. Learn more about the various attributes and their associated types by viewing the [Launch a Workflow](https://developer.ironcladapp.com/docs/launch-a-workflow) guide. Your attributes will differ and include more than this simple example.
    - `counterpartyName` string, required
    - `draft` FileUploadModel[] — The files for the draft documents of this workflow, please note that we only support `url` for json request and `multipartField` for multipart request
      - union
        - object — Provide a URL for a file representing the first uploaded version of a counterparty paper. This field is required when the template source is set to third party paper
          - `url` string, required
        - object — Provide a file with the same key as in the entry in form-data's attachment, for example, we expect a key called <SampleNDA>
          - `file` string, required
    - `paperSource` 'Counterparty paper' | 'Our paper' — Indicate the type of paper source used on a contract that supports both templatized and third party paper functionality. This field is required when there exists a question for selecting paper source on the template
    - `localLinkedRecord` string — The readable ID (e.g. "IC-123") or UUID of the record to link as a related record.
    - `localParentRecord` string — The readable ID (e.g. "IC-456") or UUID of the record to set as the parent record.
    - `localChildRecord` string — The readable ID (e.g. "IC-789") or UUID of the record to set as the child record.
  - `creator` union — The Ironclad user (must be a user in your Ironclad account) to be used for launching the workflow. This is required when using a legacy bearer token but will be ignored when using an OAuth token. If the token was generated with the Authorization Code grant, the associated token user will be used. If the token was generated with the Client Credentials grant, the required `x-as-user-id` or `x-as-user-email` header will be used.
    - object — The Ironclad user (must be a user in your Ironclad account) used to launch the workflow by using the user's email address.
      - `type` string — The type of value used to identify the user.
      - `email` string — The email address of the Ironclad user.
    - object — The Ironclad user (must be a user in your Ironclad account) used to launch the workflow by using the user's ID.
      - `type` string — The type of value used to identify the user.
      - `id` string — The user ID of the Ironclad user.

## Response `200`

Launched Workflow Response.

- LaunchedWorkflow — The response from a successful workflow launch.
  - `id` string, required — The ID of the launched workflow.
  - `ironcladId` string — The Ironclad ID of the launched workflow.
  - `title` string, required — The name used for the launched workflow.
  - `template` string, required — The identifier of the workflow template
  - `step` 'Review' | 'Sign' | 'Archive' | 'Complete', required — The step the workflow is currently on.
  - `attributes` object, required — The workflow attributes (also known as properties). Attributes of type linkedRecord, parentRecord, or childRecord are returned as objects with recordId and readableId.
  - `schema` AttributesModel, required — The data that will be used to populate the workflow's fields. Learn more about the various attributes and their associated types by viewing the [Launch a Workflow](https://developer.ironcladapp.com/docs/launch-a-workflow) guide. Your attributes will differ and include more than this simple example.
    - `counterpartyName` string, required
    - `draft` FileUploadModel[] — The files for the draft documents of this workflow, please note that we only support `url` for json request and `multipartField` for multipart request
      - union
        - object — Provide a URL for a file representing the first uploaded version of a counterparty paper. This field is required when the template source is set to third party paper
          - `url` string, required
        - object — Provide a file with the same key as in the entry in form-data's attachment, for example, we expect a key called <SampleNDA>
          - `file` string, required
    - `paperSource` 'Counterparty paper' | 'Our paper' — Indicate the type of paper source used on a contract that supports both templatized and third party paper functionality. This field is required when there exists a question for selecting paper source on the template
    - `localLinkedRecord` string — The readable ID (e.g. "IC-123") or UUID of the record to link as a related record.
    - `localParentRecord` string — The readable ID (e.g. "IC-456") or UUID of the record to set as the parent record.
    - `localChildRecord` string — The readable ID (e.g. "IC-789") or UUID of the record to set as the child record.
  - `isCancelled` boolean, required — Displays if the launched workflow has been cancelled.
  - `isComplete` boolean, required — Displays if the launched workflow has been completed.
  - `status` 'active' | 'paused' | 'cancelled' | 'completed', required — The current status of the launched workflow.
  - `creator` object
    - `id` string
    - `email` string
    - `displayName` string
  - `created` string, required — The date (ISO8601 format) the workflow was launched
  - `lastUpdated` string, required — The date (ISO8601 format) the workflow was last updated
  - `roles` WorkflowRoleModel[], required
    - `id` string
    - `displayName` string
    - `assignees` WorkflowRoleAssigneeModel[]
      - `userName` string
      - `userId` string
      - `email` string
  - `approvals` object, required
    - `state` 'not_started' | 'in_progress' | 'completed' | 'not_applicable' — The state of the approvals.
  - `signatures` object, required
    - `state` 'not_started' | 'in_progress' | 'complete' | 'not_applicable' — The state of the signatures.
    - `url` string — The url where signature information is located if it exists.
  - `recordIds` string[]
  - `isRevertibleToReview` boolean, required — Displays if the launched workflow can be reverted back to the review step.

## Other responses

- `400` — Error Launching Workflow.

---

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