> For the complete documentation index, see [llms.txt](https://docs.ixhello.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ixhello.com/ixhc2/collect-input-node-dtmf-and-speech-to-text.md).

# Collect Input Node (DTMF and Speech-to-Text)

## Overview

The Collect Input node enables flow builders to gather user input during interactions and store the captured value in a flow variable for use in downstream logic. It provides a deterministic method of collecting information without relying on LLMs, intent detection, or NLU processing.

The node supports:

* DTMF (keypad) input
* Speech input using Speech-to-Text (STT)
* Combined DTMF + Speech mode

The node is designed to capture exactly what the user enters or says and store it as a variable. It does not interpret meaning, infer intent, extract entities, or invoke AI reasoning.

***

### Key Benefits

#### Deterministic Input Collection

The Collect Input node provides a reliable way to gather user-provided values such as:

* Account numbers
* Order IDs
* Reference numbers
* Postal codes
* Callback numbers
* Customer names
* Verification information

Unlike AI-driven interactions, the node captures information exactly as provided and follows predefined validation rules.

#### Reduced Cost and Latency

For many voice journeys, transcription is all that is required.

The Collect Input node:

* Uses DTMF and/or STT only
* Does not invoke LLM reasoning
* Reduces processing latency
* Lowers operational cost
* Provides predictable behavior

#### Reusable in Flow Logic

Captured values can be used throughout the flow:

* Branch conditions
* API Calls
* Set Variable nodes
* Validation steps
* Routing decisions
* Agent handoff context

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2FtX0SLmRSGpk2rj2aJYn2%2Fimage.png?alt=media&amp;token=34966421-460d-40c5-a399-722191398178" alt=""><figcaption></figcaption></figure>

***

## Supported Input Modes

### 1. DTMF Mode

DTMF mode captures keypad input entered by callers.

#### Best For

* Account numbers
* PINs
* Member IDs
* Case references
* Numeric order IDs
* Callback phone numbers

#### Available Settings

| Setting               | Description                               |
| --------------------- | ----------------------------------------- |
| Minimum Digits        | Minimum number of digits required         |
| Maximum Digits        | Maximum number of digits allowed          |
| Terminator Key        | Key used to indicate input completion     |
| Inter-Digit Timeout   | Maximum time allowed between key presses  |
| Retry Count           | Number of retry attempts allowed          |
| Timeout Message       | Prompt played when timeout occurs         |
| Invalid Input Message | Prompt played when input validation fails |

#### Example

Prompt: Please enter your 4-digit account number.

Configuration:

* Minimum Digits: 4
* Maximum Digits: 4
* Terminator Key: #
* Retry Count: 2

Accepted Input: 1234

Rejected Input: 12

The node will play the configured retry prompt until retries are exhausted.

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2FljXUJsU2CxTHrDoYZ2pl%2Fimage.png?alt=media&amp;token=4e281fea-a084-40e2-81e2-a7e5e4b7d5b3" alt="" width="311"><figcaption></figcaption></figure>

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2F62ud0OMfO735E8xSVxFe%2Fimage.png?alt=media&amp;token=8fcdc579-bd2a-40d8-8ae4-fbfce5548510" alt="" width="312"><figcaption></figcaption></figure>

***

### 2. Speech Mode

Speech mode captures caller speech and converts it into text using the Speech-to-Text provider configured in the flow's voice settings.

#### Important

The node:

* Uses STT only
* Does not invoke an LLM
* Does not interpret user intent
* Stores the transcript exactly as recognized

#### Example Use Cases

* Customer names
* Short reference phrases
* Spoken identifiers
* Callback requests

#### Example

Prompt: Please say your full name.

Caller says: John Doe

Stored variable: John Doe

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2FVatTASVyCiWDwvSUwTcr%2Fimage.png?alt=media&amp;token=a4df3e69-0f85-4e24-8cdf-da1102b2f83b" alt="" width="349"><figcaption></figcaption></figure>

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2F6jsFObqX199ynNm411Z0%2Fimage.png?alt=media&amp;token=0248edf3-0443-434c-b52f-45e1efe26c3d" alt="" width="341"><figcaption></figcaption></figure>

***

### 3. DTMF + Speech Mode

This mode allows users to provide input either through:

* Keypad entry
* Speech

#### Example Prompt

You can enter or say your account number.

#### Runtime Behavior

The first valid input method is accepted.

Example:

* User starts entering DTMF digits
* DTMF collection becomes active
* Speech input will not interrupt the ongoing DTMF collection

If the user wishes to change input method:

* Complete the DTMF collection using the terminator key
* Retry the prompt
* Provide speech input

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2FEfelbZZWJ6QCHUbjtDk7%2Fimage.png?alt=media&amp;token=b3451b7d-d0fb-4e78-8c33-ef4b26889067" alt="" width="312"><figcaption></figcaption></figure>

***

### DTMF Configuration

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2FOCRpi9x0AzTNCqVES51f%2Fimage.png?alt=media&amp;token=1c28561c-acaa-495a-826b-e6d1283406a6" alt="" width="311"><figcaption></figcaption></figure>

### Minimum and Maximum Digits

These settings define valid input length.

#### Fixed Length Input

Example: 4-digit account number

| Setting        | Value |
| -------------- | ----- |
| Minimum Digits | 4     |
| Maximum Digits | 4     |

Only 4 digits are accepted.

***

#### Variable Length Input

Example: Account number can contain different lengths.

| Setting        | Value |
| -------------- | ----- |
| Minimum Digits | 4     |
| Maximum Digits | 12    |

Any value between 4 and 12 digits is considered valid.

***

### Terminator Key

Specifies the key used to indicate completion of input.

Default: #

Other supported options may be selected from configuration.

Example: 123456#

The system treats the input as complete when the terminator key is pressed.

***

### Inter-Digit Timeout

Defines how long the system waits between two key presses.

Example:

If a user enters: 1

and waits longer than the configured timeout before entering the next digit:

* Input times out
* Retry prompt is played

***

## Retry Handling

The node supports configurable retry behavior.

### Invalid Input

Occurs when:

* Input does not meet minimum length
* Input exceeds maximum length
* Input fails configured collection rules

Example:

Expected: 4 digits

User enters: 12

The node:

1. Plays retry prompt
2. Waits for new input
3. Repeats until retry limit is reached

***

### No Input

Occurs when:

* User provides no response
* Timeout period expires

The node:

1. Plays no-input prompt
2. Allows retry attempts
3. Follows the failure branch if retries are exhausted

***

### Max Retries Exhausted Branch

Once retry limits are reached:

* Input collection stops
* Flow follows the Max Retries Exhausted path

This enables builders to:

* End the flow
* Transfer to an agent
* Route elsewhere
* Provide escalation messaging

***

## Runtime Behavior

### Successful Input

When valid input is captured:

1. Value is saved to the configured variable.
2. Flow proceeds through the success path.
3. Downstream nodes can consume the value.

***

### Failed Input

When input validation fails:

1. Retry prompt plays.
2. Retry counters increase.
3. Failure path executes after maximum retries.

***

## Voice Settings Dependency

Speech-based collection uses the Speech-to-Text provider configured at the flow level.

Navigate to:

Flow Settings → Voice Settings

The Collect Input node uses the configured:

* Speech-to-Text provider
* Text-to-Speech provider
* Voice configuration

No separate STT model selection is required within the node itself.

***

## Barge-In Behavior

#### Speech Input

If barge-in is enabled, callers can interrupt the system prompt using speech while the prompt is playing.

#### DTMF Input

Once a DTMF collection session has started:

* Speech cannot interrupt the active DTMF collection.
* Input modes cannot be switched mid-collection.
* Users must complete or terminate the current DTMF entry before providing speech input.

***

## AI Usage

The Collect Input node is intentionally designed as a deterministic collection mechanism.

#### What Uses AI?

Only Speech-to-Text transcription.

When a caller speaks:

1. Speech is transcribed using the configured STT provider.
2. The resulting transcript is stored.

#### What Does Not Use AI?

The node does not:

* Detect intent
* Extract entities
* Classify sentiment
* Apply reasoning
* Invoke LLMs
* Perform NLU processing

The collected value is stored exactly as entered or transcribed.

***

## Transcript Variable Support

In the same release, Flow Designer introduces an official **Transcript Variable**.

The transcript variable:

* Captures the complete conversation transcript
* Follows the configured PII redaction policy
* Redacts sensitive information when redaction is enabled
* Can be sent to external APIs for processing or analytics

#### Example Use Cases

* Conversation analysis
* Knowledge extraction
* Quality monitoring
* External AI processing
* Analytics workflows

#### PII Redaction Support

When PII redaction is enabled:

* Personal information is automatically redacted in the transcript variable.
* The transcript remains safe for downstream sharing and processing based on configured policies.

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2FTLZ4U3gZ1d8LjRx1ezUZ%2Fimage.png?alt=media&amp;token=1f649ca2-c4e7-4c0b-8dbb-878ec83b1852" alt=""><figcaption></figcaption></figure>

***

## Best Practices

1. Use DTMF for structured numeric values.
2. Use Speech when spoken input is more natural.
3. Use DTMF + Speech only when flexibility is required.
4. Clearly communicate expected input format in prompts.
5. Configure retry messages that guide users to correct mistakes.
6. Validate captured values downstream where business validation is required.
7. Use meaningful variable names such as `accountNumber`, `orderReference`, or `customerName`.
8. Configure appropriate timeout and retry values to improve completion rates.

***

### Summary

The Collect Input node provides a simple, reliable, and deterministic way to capture user input in voice journeys. It supports DTMF, speech, or both input methods, stores the captured value in a flow variable, and integrates seamlessly with downstream flow logic. By relying only on keypad input and Speech-to-Text transcription, it offers lower latency, lower cost, and predictable execution while giving builders a flexible foundation for common IVR and voice automation scenarios.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ixhello.com/ixhc2/collect-input-node-dtmf-and-speech-to-text.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
