You want to automatically output a message to a caller after the caller has not triggered an input (=said anything) for a period of time.
In order to achieve the above, you need to use two Cognigy.AI concepts together:
- Audiocodes Session Parameter/Voice Gateway Config for User Timeout
- Rule Intents
Step 1: Session Parameters for User Timeout
Start by adding either a Voice Gateway Set Session Config Node or an Audiocodes Set Session Parameter Node to your Flow and configure it as below:
Voice Gateway Set Session Config:
Audiocodes Set Session Parameters:
This will cause Audiocodes/the Voice Gateway to send an event to Cognigy after 5000ms of inactivity (=silence) on the caller side.
You could set a No User Input Prompt here as well and not have an event sent to the Flow and you'd be done. It could be more flexible to handle this event in an Intent though, as shown below.
Step 2: Rule Intents
Add a new Rule Intent and add the following intent rule:
input.data.request.activities.name === "noUserInput"
This Intent will now always trigger when a noUserInput event hits Cognigy.AI and you can handle it as you see fit, for example with a Default Reply or in an Attached Flow for more complex logic.
Optional: Create dynamic reprompts
You could create fully dynamic reprompts by storing the reprompt message in the Context in your Flow and then outputting it from the Context in a Default Reply. In that way the reprompt can change, depending on where the caller is in your Flow.