Idle messages use the customer.speech.timeout hook to automatically prompt users during periods of inactivity. When a user stops speaking, Sulus starts a timer and triggers configured actions when the timeout is reached.
Key configuration options:
| Option | Type | Range | Default | Description |
|---|
timeoutSeconds | number | 1–1000s | 7.5s | How long to wait for customer speech before triggering |
triggerMaxCount | number | 1–10 | 3 | Maximum times the hook triggers per call |
triggerResetMode | string | never | onUserSpeech | never | Whether to reset the trigger count when the user speaks |
Example — end call after 30 seconds of silence:
{
"hooks": [
{
"on": "customer.speech.timeout",
"options": { "timeoutSeconds": 10, "triggerMaxCount": 3 },
"do": [{ "type": "say", "exact": "Are you still there?" }]
},
{
"on": "customer.speech.timeout",
"options": { "timeoutSeconds": 30, "triggerMaxCount": 3 },
"do": [
{ "type": "say", "exact": "I'll be ending the call now." },
{ "type": "tool", "tool": { "type": "endCall" } }
]
}
]
}
Idle messages are automatically disabled during tool calls and warm transfers to avoid interrupting system processes.