> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeroruntime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Wakeup Call

> Automatically nudge users back into the conversation after a period of inactivity

A Wakeup Call automatically triggers an action when the user has been inactive for a specified period of time. Instead of leaving a silent gap when the caller goes quiet, the agent can gently check in, re-prompt, or offer help, keeping the conversation alive and maintaining engagement.

## How it works

Set `wake_up` on your `Pipeline` to the number of seconds of caller silence to allow before nudging. When the caller stays quiet for that long, the runtime calls your agent's `on_wake_up` method, where you decide what happens next.

```python theme={null}
pipeline = Pipeline(
    stt=CartesiaSTT(model="ink-2"),
    llm=OpenAILLM(model="gpt-5.4-nano-2026-03-17", streaming=True),
    tts=SarvamAITTS(streaming=True),
    vad=SileroVAD(),
    turn_detector=TurnDetector(model="echo_large"),
    wake_up=10,              # nudge after 10s of caller silence
)

class PatientAgent(Agent):
    def __init__(self) -> None:
        super().__init__(
            name="PatientAgent",
            agent_id=AGENT_ID,
            instructions=(
                "You are a patient assistant. Answer questions and help the caller. If they go "
                "quiet, you'll gently check in on them."
            ),
            pipeline=pipeline,
        )
        self._nudges = 0

    async def on_enter(self) -> None:
        await self.session.say("Hi! Take your time — I'm here whenever you're ready.")

    async def on_exit(self) -> None:
        await self.session.say("Goodbye!")

    async def on_wake_up(self) -> None:
        # Called by the runtime when the caller has been silent for `wake_up` seconds.
        self._nudges += 1
        await self.session.say("Are you still there? I'm happy to keep helping.")
```

<Tip>Track state across nudges (like the `_nudges` counter above) to escalate your response — for example, offer more help on the first nudge and end the call after several unanswered check-ins.</Tip>

### Configuration Options

<ParamField path="wake_up" type="int">
  The number of seconds of caller silence to allow before triggering `on_wake_up`. Omit it to disable wake-up calls.
</ParamField>

### Callback

<ParamField path="on_wake_up" type="async method">
  Override this method on your `Agent` to define the wake-up action. The runtime calls it each time the caller stays silent for `wake_up` seconds.
</ParamField>

## References

<Tabs>
  <Tab title="Python">
    #### Examples

    <CardGroup cols={2}>
      <Card title="Wakeup Call" icon="github" href="https://github.com/ZeroRuntimeAI/zrt-python-sdk-examples/blob/feat/update-examples/features/wakeup_call.py">
        Checkout the full implementation on GitHub
      </Card>
    </CardGroup>

    #### SDK Reference

    <CardGroup cols={2}>
      <Card title="Pipeline" icon="book" href="/api-reference/python/core/pipeline">
        `Pipeline` in the Python API reference.
      </Card>

      <Card title="Agent" icon="book" href="/api-reference/python/core/agent-and-session">
        `Agent` in the Python API reference.
      </Card>
    </CardGroup>
  </Tab>
</Tabs>
