> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# goto

> Jumps to a defined label in the current SWML section.

Jump to a `label` within the current section, optionally based on a condition.
The `goto` method will only navigate to a label within the same section.

## **Properties**

An object that accepts the following properties.

The label in section to jump to.

A JavaScript condition that determines whether to perform the jump. If the condition evaluates to true, the jump is executed. If omitted, the jump is unconditional.

The maximum number of times to jump, from the minimum of `1` to max `100` jumps.

## **Examples**

### Loop with max

```yaml
version: 1.0.0
sections:
  main:
    - label: foo
    - play:
        url: 'say: This speech will be repeated 4 times.'
    - goto:
        label: foo
        max: 3
```

```json
{
  "version": "1.0.0",
  "sections": {
    "main": [
      {
        "label": "foo"
      },
      {
        "play": {
          "url": "say: This speech will be repeated 4 times."
        }
      },
      {
        "goto": {
          "label": "foo",
          "max": 3
        }
      }
    ]
  }
}
```

### Loop if a condition is satisfied

```yaml
version: 1.0.0
sections:
  main:
    - label: foo
    - play:
        url: 'say: This is some text that will be repeated 4 times.'
    - set:
        do_loop: true
    - goto:
        label: foo
        when: do_loop === true
        max: 3
```

```json
{
  "version": "1.0.0",
  "sections": {
    "main": [
      {
        "label": "foo"
      },
      {
        "play": {
          "url": "say: This is some text that will be repeated 4 times."
        }
      },
      {
        "set": {
          "do_loop": true
        }
      },
      {
        "goto": {
          "label": "foo",
          "when": "do_loop === true",
          "max": 3
        }
      }
    ]
  }
}
```