> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://poly-ai.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://poly-ai.ferndocs.com/_mcp/server.

# Advanced steps

> Enable ASR biasing, DTMF collection, and function references in flow steps for precise control.

Advanced steps give maximum control over transitions, ASR biasing, and DTMF collection. They are intended for developers who need precise control that Default steps cannot provide.

## ASR biasing options (per-step)

Advanced steps support structured ASR biasing modes for common input types:

| Mode            | Use case                                  |
| --------------- | ----------------------------------------- |
| Alphanumeric    | Booking references, confirmation codes    |
| Name spelling   | Phonetically spelled names                |
| Numeric         | Ages, short numbers                       |
| Party size      | Group booking numbers                     |
| Precise date    | Specific calendar dates                   |
| Relative date   | Flexible time references ("next Tuesday") |
| Single number   | One-digit responses                       |
| Time            | Spoken times                              |
| Yes/No          | Confirmation-style responses              |
| Address         | Postcodes, street names                   |
| Custom keywords | Your own keyphrases                       |

See [ASR biasing in flows](/advanced/code-driven-flows/asr-biasing) for full details.

## DTMF configuration (per-step)

Advanced steps can collect DTMF (touch-tone) input. Configure:

| Setting                    | Description                                                     |
| -------------------------- | --------------------------------------------------------------- |
| **Enable DTMF**            | Toggle on to accept keypad input                                |
| **Inter-digit timeout**    | How long to wait between digits (default 3 seconds)             |
| **Max digits**             | Maximum number of digits to collect (1-32)                      |
| **End key**                | Which key signals input is complete (`#`, `*`, or none)         |
| **Collect while speaking** | Whether to accept input while the agent is talking              |
| **Mark as PII**            | Flag the collected input as personally identifiable information |

See [DTMF in flows](/advanced/code-driven-flows/dtmf) for full details.

## Rich text references

Advanced step prompts support inline references using template tags:

| Reference type      | Syntax                 | Purpose                                    |
| ------------------- | ---------------------- | ------------------------------------------ |
| Transition function | `{{ft:functionId}}`    | Call a transition function from the prompt |
| Global function     | `{{fn:functionId}}`    | Call a global function                     |
| SMS template        | `{{sms:templateId}}`   | Send an SMS template                       |
| Handoff             | `{{ho:destinationId}}` | Trigger a handoff                          |
| Variant attribute   | `{{va:attributeId}}`   | Insert a variant attribute value           |

## Related pages

#### [No-code flows overview](/agent-studio/flows/no-code/overview)

Step types, routing logic, and canvas controls.

#### [Entities](/agent-studio/flows/no-code/entities)

Configure entity types and validation for your flows.

#### [ASR biasing](/advanced/code-driven-flows/asr-biasing)

Improve transcription accuracy for structured inputs in flow steps.