FeaturesJuly 1, 202615 min readFlowyte Team

Say It or Press It: DTMF Keypad Input for AI Phone Agents

Let callers say a value or press it on the keypad. How DTMF keypad entry on a Flowyte Collect step captures zip codes and order numbers without mistakes.

Some values are painful to say out loud. A ten-digit order number. A zip code in a noisy kitchen. Say-or-press DTMF keypad input fixes this: on any step where your Flowyte agent collects a value, the caller can speak it or punch it in on their phone keypad, whichever is easier in the moment. Both paths land in the same variable, so everything after that step just works.

This walkthrough covers how to turn keypad entry on, how the two settings (expected digits and submit key) shape the experience, and two real examples: a pizza shop checking a delivery zip and an online store looking up an order.

Key Takeaways

  • Say-or-press keypad input (DTMF) lets a caller speak a value or press it on their phone keypad on any Collect step, and both fill the same variable.
  • Turning it on is one checkbox per Collect step, and it is off by default, so nothing changes on your existing agents until you decide to use it.
  • Set expected digits for fixed-length values like a 5-digit zip, and the entry submits itself; leave it blank and set a submit key (pound) for variable-length values like order numbers.
  • Leading zeros are kept and nothing gets dropped, so the captured value is safe to hand to a lookup, a message, or a webhook.
  • Unlike an IVR phone tree, the keypad here is an input method, not a menu: callers answer one clear question instead of pressing through numbered options.

What Is Say-or-Press Keypad Input?

Say-or-press keypad input means a caller can answer a question by speaking or by pressing digits on their phone keypad (DTMF tones), and the agent accepts either one. It matters because certain values, like long order numbers and easy-to-mishear zip codes, are faster and more accurate to type than to say. For example, when a Flowyte agent asks "What is your order number?", the caller can say "one thousand one" or tap 1-0-0-1 and press pound. Either way, the same value is captured.

The narration in our walkthrough puts it plainly: "Say it, or press it." Sometimes talking isn't the easy option. A noisy room. A long order number. A zip code the agent keeps mishearing. The keypad is simply another way to give the same answer.

This is a shipped Flowyte capability, available today on any step where your agent collects a value.

How Do You Turn On Keypad Entry?

Setup is one checkbox on a Collect step, plus two optional settings that fine-tune how entry ends. Here is the exact procedure the walkthrough demonstrates:

1

Open the Collect step in your playbook

Go to the playbook step that captures the value, such as "Collect zip" or "Collect order_number". The step's prompt is the question the agent asks, and the "Save into slot" field names the variable the answer is stored in.

2

Check the keypad entry option

Under "Keypad entry (DTMF)", check "Allow the caller to enter this on their phone keypad". The caller can now say or press the value. It is off by default, so none of your existing agents change until you flip it on.

3

Set expected digits for fixed-length values

Enter how long the value is: 5 for a zip code, 10 for a phone number. Once the caller has pressed that many digits, the entry submits automatically. No extra key needed.

4

Leave expected digits blank for variable-length values

For something like an order or account number that varies in length, leave expected digits empty and set a submit key instead. The pound key (#) is the usual choice: the caller presses it when they're done.

5

Confirm where the value is saved

Check the slot name on the step. Whether the caller speaks the value or types it, it lands in this one variable, so every later step reads from the same place.

6

Test before you publish

Use Test & Simulate to run the agent as a chat or a call. Try both input paths: say the value once, then type it once, and confirm the same downstream behavior. Publish when both feel right.

Info

Keypad entry is off by default on every Collect step. Turning it on for one step does not affect any other step or agent, so you can roll it out field by field.

Where Does the Value Go?

Whether the caller says it or presses it, the value lands in the exact same place: the step's variable. One slot. Speech and keypad both fill that one box.

That single detail is what makes the feature powerful. Every step after it, a lookup, a message, a branch, just uses that variable. It never has to care whether the caller spoke the digits or typed them. Leading zeros are kept and nothing gets dropped, which matters for zip codes like 02134 and for account numbers where a dropped zero means a failed lookup.

So there is no special "keypad mode" to build around. You design the conversation once, and the keypad is simply another way to fill the same variable.

What Does This Look Like on Real Calls?

The walkthrough builds two working examples, one for each entry style.

Slice House, a pizza shop. When someone calls for delivery, the first thing the agent needs is a zip code, to be sure the shop actually delivers there. The first step of the playbook collects the zip with keypad entry on and expected digits set to 5. The caller says their zip or taps it in, and five keys submits itself. The very next step hands the saved zip to a geo check that compares it against the shop's delivery radius, just an address and a radius, no hand-typed list of zip codes. Five-nine-eight-oh-one? Great news, they deliver. Nine-oh-two-one-oh? Just outside the area. The caller pressed five keys, and the agent knew instantly whether to take the order.

Nova Threads, an online store. A caller wants to check on an order. Order numbers are long and easy to mishear over the phone, so this is a perfect fit for the keypad. Same idea: one step collects the order number with keypad entry on, but this time expected digits stays blank and pound is the submit key, since order numbers vary in length. The prompt becomes "say or enter your order number, then press pound." The number goes into its own variable, and the next step runs a live order lookup against the store's connected order system. Order one-thousand-one? Paid and fulfilled, read straight back to the caller. No hold queue, and no spelling out a confirmation number three times.

SettingSlice House (zip check)Nova Threads (order lookup)
Value collected5-digit zip codeOrder number, variable length
Expected digits5 (auto-submits)Blank
Submit keyNot neededPound (#)
Next step uses the variable forDelivery-radius checkLive order lookup
Best forFixed-length valuesValues that vary in length

Two very different businesses, the exact same pattern: collect a value with the keypad on, and that value becomes a variable your playbook can hand to anything.

How Is This Different From an IVR Phone Tree?

An IVR phone tree uses the keypad as a menu: press 1 for sales, press 2 for support, and hope your problem maps onto an option someone predicted in advance. Say-or-press uses the keypad as an input method inside a real conversation. The agent asks one clear question, and the caller answers it in whichever way is easier.

That distinction is the whole point. You get the accuracy of touch-tone entry for the values where speech struggles, without forcing every caller through numbered menus for everything else. If you are weighing a rebuild of an aging phone menu, see how Flowyte replaces a traditional IVR menu with a conversational agent, and how an AI answering service handles the calls a menu would have sent to voicemail.

IVR phone treeFlowyte agent with say-or-press
Keypad's jobNavigate a menuAnswer one question
Caller experiencePress through optionsTalk normally; type only where it helps
Handling a zip or order numberRarely supported cleanlyOne checkbox on the step that collects it
Changing the experienceRe-map the treeEdit one step, re-test

The agent side of the conversation still speaks naturally, in 300+ voices across 30+ languages, so typing a value never means falling back to a robotic menu voice.

Which Fields Should Get Keypad Entry?

Turn it on for the fields where it genuinely helps, and leave conversation to speech everywhere else. The strongest candidates share two traits: they are strings of digits, and getting one digit wrong breaks the next step.

  • Zip codes: 5 digits, auto-submit, feeds delivery or service-area checks
  • Order numbers: variable length, pound to submit, feeds order lookups
  • Account numbers: variable length, often with leading zeros that must survive
  • Callback and phone numbers: 10 digits, auto-submit, feeds follow-up steps

Your callers get a faster, more accurate way to answer, without ever leaving the call. If you have not built the surrounding agent yet, start with the plain-English agent walkthrough and add keypad entry to the steps that collect digits.

Walkthrough transcript

One of the most-requested features is finally here: letting your callers use their phone keypad. Say it, or press it. In this walkthrough I'll show you how to turn it on, and walk through two real examples — a pizza shop checking a delivery zip, and an online store looking up an order.

Because sometimes talking isn't the easy option. A noisy room. A long order number. A zip code the agent keeps mishearing. So now, on any step where you collect a value, you can let the caller say it out loud, or punch it in on the keypad — whichever is easier for them.

And setting it up is one checkbox. On any Collect step, you'll see a new option: keypad entry. Flip it on, and the caller can now press the digits on their phone. It's off by default, so nothing changes on your existing agents until you decide to use it.

Two small settings fine-tune it. Expected digits tells it how long the value is — five for a zip, ten for a phone number — and it submits automatically once they've pressed that many. Leave it blank for something variable-length, and the caller just presses the pound key when they're done.

Now here's the important part — how the value is stored. Whether the caller says it or presses it, it lands in the exact same place: this step's variable. One slot. Speech and keypad both fill that one box.

And that's what makes it powerful. Every step after it — a lookup, a message, a branch — just uses that variable. It never has to care whether the caller spoke the digits or typed them. Leading zeros are kept, nothing gets dropped. The keypad is simply another way to fill the same variable.

Let's see it in a real playbook. First, a pizza shop — Slice House. When someone calls for delivery, the very first thing we need is their zip code, to be sure we actually deliver to them.

So the first step of the playbook collects the zip. We turn keypad entry on, set expected digits to five, and now the caller can say their zip, or tap it in — five keys and it submits itself.

That zip is now saved as a variable. The very next step hands it straight to our geo service, which checks the zip against the shop's delivery radius. No spreadsheet, no hand-typed list of zip codes — just the address and a radius.

And here's the payoff. Five-nine-eight-oh-one? Great news — we deliver. Nine-oh-two-one-oh? Sorry, just outside the area. The caller pressed five keys, and the agent knew instantly whether to take the order.

Second example — an online store, Nova Threads, connected to its online storefront. A caller wants to check on an order. Order numbers are long and easy to mishear over the phone, so this is a perfect fit for the keypad.

Same idea, one step collects the order number. Keypad entry on — but this time we leave expected digits blank and set a submit key, since order numbers vary in length. Now the prompt is: say or enter your order number, then press pound.

The order number goes into its own variable, and the next step passes it straight to the store's order lookup — a real, live query against the connected store.

Order one-thousand-one? Paid and fulfilled. The caller typed it in, we pulled the real order from the connected store, and read the status right back — no agent, and no spelling out a confirmation number three times.

Two very different businesses, the exact same pattern: collect a value with the keypad on, and that value becomes a variable your playbook can hand to anything — a geo lookup, an order query, a webhook, or just a message.

So turn it on for the fields where it helps — zip codes, order numbers, account numbers, phone numbers — and your callers get a faster, more accurate way to answer, without ever leaving the call.

That's keypad capture — say it or press it, saved as a variable, ready to use anywhere in your playbook. And if you'd like a hand setting it up, we're always here — just email support at Flowyte dot com.

Common Questions

What is DTMF keypad input on an AI phone call?

DTMF (dual-tone multi-frequency) is the tone your phone sends when you press a key. With say-or-press keypad input, a Flowyte agent accepts those tones as an answer on any Collect step, so a caller can type a zip code or order number instead of saying it. The typed value is stored exactly like a spoken one.

Do callers have to choose between speaking and pressing?

No. When keypad entry is on for a step, the caller can do either, and both paths fill the same variable. Someone in a quiet office might just say the value, while someone in a noisy shop taps it in. The agent handles both without any extra configuration.

How does the agent know when the caller has finished entering digits?

Two settings control this. If you set expected digits, the entry submits automatically once that many keys are pressed, such as five for a zip code. If the value varies in length, leave expected digits blank and set a submit key like pound, and the caller presses it when they are done.

Will turning on keypad entry change my existing agents?

No. Keypad entry is off by default on every Collect step, so nothing changes until you check the option on a specific step. You can enable it one field at a time and test each change before publishing.

What kinds of values work best with keypad entry?

Digit strings where accuracy matters most: zip codes, order numbers, account numbers, and callback phone numbers. Leading zeros are kept and nothing gets dropped, so the captured value is safe to pass to a lookup or a webhook. Open-ended answers, like describing a problem, are still better spoken.

How is say-or-press different from an IVR phone tree?

An IVR phone tree uses the keypad to navigate menus: press 1, press 2, and hope your issue fits an option. Say-or-press uses the keypad to answer a specific question inside a natural conversation. Callers only touch the keypad when typing a value is genuinely easier than saying it.

How much does an AI phone agent with keypad entry cost?

Keypad entry is included; there is no separate charge for it. Flowyte voice calls start at $0.11 per minute pay-as-you-go on a credit system where 1 credit equals $0.01, and phone numbers are $2 per month. You get free credits at signup with no card required, and the pricing page has full plan details.

Start Capturing Values Both Ways

Say-or-press keypad input closes the gap between conversation and accuracy. One checkbox turns it on per Collect step, expected digits or a submit key controls when entry ends, and the result lands in the same variable your later steps already use. Zip checks, order lookups, account verification, and callback capture all get faster and more reliable, and your callers never touch a menu tree to do it.

The next step is to open one Collect step on your agent, enable keypad entry, and test both input paths. Rates for calls and numbers are on the pricing page.

Give Your Callers the Keypad Option

Turn on say-or-press keypad entry on any Collect step, test it in minutes, and launch on a real number. Free credits at signup, no card required.

Start Building Free

About the Author

Flowyte Team

Flowyte Team

Product Team

The team behind Flowyte, the AI agent studio for phone and chat. We build the product, run it on our own phone lines, and write these guides from what we ship and test - not from theory.

Stay Updated

Get notified when we publish new tutorials and product updates.

No spam. Unsubscribe anytime.