---
title: "Create a flow"
method: POST
path: "/v1/companies/{company_uuid}/flows"
tags: ["Flows"]
---

# Create a flow

`POST /v1/companies/{company_uuid}/flows`

## Request

- Base URL: `https://api.gusto-demo.com`
- URL: `https://api.gusto-demo.com/v1/companies/{company_uuid}/flows`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/gusto/apis/gusto-api/docs/v1/companies/:company_uuid/flows/post.ts> (a function with typed inputs; its response is checked against the schema)

Generate a link to access a pre-built workflow in Gusto white-label UI. For security, all generated flows will expire within 1 hour of inactivity or 24 hours from creation time, whichever comes first.

You can see a list of all possible flow types in our [Flow Types](https://docs.gusto.com/embedded-payroll/docs/flow-types) guide.

You can also mix and match flow_types in the same category to create custom flows suitable for your needs.

For instance, to create a custom onboarding flow that only includes `add_addresses`, `add_employees`, and `sign_all_forms` steps, simply stitch those flow_types together into a comma delimited string:

```json
{
  "flow_type": "add_addresses,add_employees,sign_all_forms"
}
```

Please be mindful of data dependencies in each step to achieve the best user experience.

For more information and in-depth guides review the [Getting Started](https://docs.gusto.com/embedded-payroll/docs/flows-getting-started) guide for flows.

scope: `flows:write`

## Path parameters

- `company_uuid` string, required

## Headers

- `X-Gusto-API-Version` '2026-06-15'

## Request body

- CreateFlowRequest: Request body for creating a flow.
  - `flow_type` string, required: The type of flow to generate. Multiple flow types can be combined by separating them with commas (e.g., "add_addresses,add_employees,sign_all_forms").
  - `entity_uuid` string: UUID of the target entity applicable to the flow. This field is optional for company flows.
  - `entity_type` 'Company' | 'Employee' | 'Contractor' | 'Payroll': The type of target entity applicable to the flow. This field is optional for company flows.
  - `options` object: Optional configuration object that varies based on the flow_type. This can contain arbitrary key-value pairs specific to the flow being generated.

## Response `201`

Created

- Flow: The representation of a flow in Gusto white-label UI.
  - `url` string

## Other responses

- `404`: Not Found
- `422`: Unprocessable Entity This may happen when the body of your request contains errors such as `invalid_attribute_value`, or the request fails due to an `invalid_operation`. See the [Errors Categories](https://docs.gusto.com/embedded-payroll/docs/error-categories) guide for more details.

## Changes

- **2026-11-03** `f98575fa2a5e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gusto/apis/gusto-api/changes/v1/companies/:company_uuid/flows/post.md)

---

[API](https://skmtc.dev/gusto/apis/gusto-api.md) - [All operations](https://skmtc.dev/gusto/apis/gusto-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gusto/apis/gusto-api/revisions/f98575fa2a5e?raw)
