# Getting Started (/docs/products/ussd-flows/getting-started)

## Before You Start

- Your Space needs **Developer Mode**. If the Developer section shows **Enable Developer Mode**, turn it on. You can't turn it off again.
- You need access to the Developer section. If **USSD Flows** is missing from the Developer menu, ask your Space admin.

## Create and Publish a Flow



## A Longer Example

This flow signs up a young person for a youth fund. It asks for a name and an age, then shows a summary.

```json
{
  "version": "1.0",
  "pages": [
    {
      "id": "ask_name",
      "component": {
        "type": "prompt",
        "label": "Welcome to the Makeni Youth Fund. Enter your name:",
        "data_type": "text",
        "max_length": 30,
        "max_invalid_input_attempts": 3
      }
    },
    {
      "id": "ask_age",
      "component": {
        "type": "prompt",
        "label": "Thank you, $(page.ask_name.value). Enter your age:",
        "data_type": "integer",
        "min_value": 18,
        "max_value": 35,
        "max_invalid_input_attempts": 3
      }
    },
    {
      "id": "confirm",
      "component": {
        "type": "display",
        "label": "Thank you, $(page.ask_name.value). You are signed up, age $(page.ask_age.value)."
      }
    }
  ]
}
```

The first page takes a name of up to 30 characters. The second takes a whole number from 18 to 35. `max_invalid_input_attempts` limits how many wrong answers a caller can give. The last page shows both answers and ends the session.

`$(page.ask_name.value)` puts the answer from the `ask_name` page into a later screen. See [Variables](/docs/products/ussd-flows/developers/variables) for everything you can use.

## Common Mistakes

- **Sharing the code too early.** A new flow is live with the example flow. Publish your own flow first.
- **Saving but not publishing.** Callers only see what you publish.
- **Reusing a page `id`.** Every page needs its own `id`, because variables use it to find an answer.
- **Long screens.** Phones show at most 130 characters of a label, after variables are filled in, and 64 for a menu item. The rest is cut off.

The full rules for pages and fields are in the [Flow Definition](/docs/products/ussd-flows/developers/flow-definition).

## Next Steps

- [Editing & Publishing](/docs/products/ussd-flows/editing-and-publishing): the editor, the Simulator, drafts and publishing
- [Managing Flows](/docs/products/ussd-flows/managing-flows): disable, enable, name and organise flows
- [Flow Definition](/docs/products/ussd-flows/developers/flow-definition): every page type and its options
- [Variables](/docs/products/ussd-flows/developers/variables): use `$(page...)`, `$(session...)` and `$(data...)`
