Hi Ana!
Thanks for the questions. :)
------
When a customer presses an invalid option (for instance, we have the options “1” and “2” and the customer presses “5”).
- Is it possible to present a prompt as “Invalid option”?
Yes, you can do that. The approach we'd use here is to have a reusable task with a Play Audio action that then jumps back to the main menu:
![invalid_menu_choice_task]()
And then under the main menu you go ahead and add menu choices for the "invalid" DTMF values that jump to this reusable task. In the screen shot below I added a couple of the "invalid" menu choices but it shows the general idea:
![menu_choices_jump_to_invalid_choice_task]()
---
- If the customer pressed three times an invalid option, we would like to present a prompt like “You have exceeded the number of attempts” and then transfer to ACD or disconnect the call. Is this possible?
You could add additional logic to that reusable task from above that increments a counter, add a Decision action and if that counter is greater than or equal to three then you Transfer to ACD, Disconnect or whatever. Otherwise it would jump back to the main menu.
---
For timeouts, when a customer doesn’t press any option.
- Is it possible to redirect the customer to a task that isn't listed on “Default Menu Choice”? For instance, if the customer didn’t press any option, we would like to present a prompt like “No option was selected ” and then disconnect the call.
If you used the above approach, one possibility would be to change the audio and play "No valid menu choice was selected". That may be sufficient but obviously doesn't distinguish between the case of "we received DTMF and it was invalid" vs. "no DTMF input received".
Below is another approach because if you want to have more granular or dynamic handling, remember that you can always use a reusable task. The logic below uses a collect input to get DTMF input where 1 transfers to Sales, 2 transfers to Support, any other DTMF will play "invalid menu choice selected" and no DTMF input plays "No menu choice selected":
![collect_input_task]()
Obviously you'd want to put that logic inside of a Loop action or something get retry logic set up if there was an invalid DTMF entered, no DTMF or a transfer failure but I wanted to point out you can get a lot more control this way if you really want. FWIW, the switch action would look like this:
![switch_action]()