> ## Documentation Index
> Fetch the complete documentation index at: https://www.voiceflow.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# vf workflow add-branch

> vf workflow add-branch: add workflow branch. Requires --body-param, --environment-alias, --project-id, --step-id and --workflow-id, with a worked example.

Add one branch and its port to a step.

## Usage

```bash
vf workflow add-branch [flags]
```

## Examples

```bash
  vf workflow add-branch --workflow-id <id> --step-id <id> --project-id <id> --environment-alias <value>
```

## Flags

```text
      --body string                          Request body as JSON (alternative to individual flags). Can also be provided via stdin.
  -b, --body-param string                    JSON value (variants: condition: { label: string, matchAll: boolean, assertions: object[], to: string, ... }, buttons: { label: string, url: string, to: string, kind: string }, card: { label: string, url: string, to: string, kind: string }, carousel: { label: string, url: string, to: string, kind: string, ... }, code: { label: string, to: string, kind: string }, crew: { name: string, description: string, requiredVariables: object[], messages: object, ... })
      --body-param.buttons string            StableWorkflowButtonsBranchAdd variant as JSON
      --body-param.buttons.label string      Plain text; markdown is not interpreted. {variable_name} inserts a variable or entity, {variable_name.path} a field of a variable. Escape a literal { or \ with a backslash. A name matching neither is stored as literal text and reported in unresolvedReferences; secrets are not available here. [required]
      --body-param.buttons.to string         The block this branch leads to. In create, a block key from this request; everywhere else, an existing block ID.
      --body-param.buttons.url string        string value
      --body-param.card string               StableWorkflowCardBranchAdd variant as JSON
      --body-param.card.label string         Plain text; markdown is not interpreted. {variable_name} inserts a variable or entity, {variable_name.path} a field of a variable. Escape a literal { or \ with a backslash. A name matching neither is stored as literal text and reported in unresolvedReferences; secrets are not available here. [required]
      --body-param.card.to string            The block this branch leads to. In create, a block key from this request; everywhere else, an existing block ID.
      --body-param.card.url string           string value
      --body-param.carousel string           StableWorkflowCarouselBranchAdd variant as JSON
      --body-param.carousel.card-id string   The card the new button goes on. [required]
      --body-param.carousel.label string     Plain text; markdown is not interpreted. {variable_name} inserts a variable or entity, {variable_name.path} a field of a variable. Escape a literal { or \ with a backslash. A name matching neither is stored as literal text and reported in unresolvedReferences; secrets are not available here. [required]
      --body-param.carousel.to string        The block this branch leads to. In create, a block key from this request; everywhere else, an existing block ID.
      --body-param.carousel.url string       string value
      --body-param.code string               StableWorkflowCodeBranchAdd variant as JSON
      --body-param.code.label string         [required]
      --body-param.code.to string            The block this branch leads to. In create, a block key from this request; everywhere else, an existing block ID.
      --body-param.condition string          StableWorkflowConditionBranchAdd variant as JSON
      --body-param.crew string               StableWorkflowCrewBranchAdd variant as JSON
  -e, --environment-alias string             [required]
  -h, --help                                 help for add-branch
  -p, --project-id string                    [required]
  -s, --step-id string                       [required]
  -w, --workflow-id string                   [required]
```

## Global flags

These flags are inherited from the parent command and work on every invocation.

```text
      --agent-mode             Enable structured errors and default TOON output for AI coding agents. Automatically enabled when a known agent environment is detected (CLAUDE_CODE, CURSOR_AGENT, etc.). Use --agent-mode=false to disable.
      --color string           Control colored output: auto (color when output is a TTY), always, or never. Respects NO_COLOR and FORCE_COLOR env vars. (default "auto")
  -d, --debug                  Log request and response diagnostics to stderr
      --dry-run                Preview the request that would be sent without executing it (output to stderr)
  -H, --header stringArray     Set a custom HTTP request header (format: "Key: Value"). Can be specified multiple times.
      --include-headers        Include HTTP response headers in the output
  -q, --jq string              Filter and transform output using a jq expression (e.g., '.name', '.items[] | .id')
      --no-interactive         Disable all interactive features (auto-prompting, explorer auto-launch, TUI forms)
  -o, --output-format string   Specify the output format. Options: pretty, json, yaml, table, toon. (default "pretty")
      --server-url string      Override the default server URL
      --timeout string         HTTP request timeout (e.g., 30s, 5m, 100ms)
      --token string           Voiceflow bearer token
      --usage                  Print the CLI Usage schema in KDL format
```

## See also

- [vf workflow](/docs/cli/commands/workflow) - Operations for workflow
