> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # addPreAnswerVerb > Add a SWML verb to run before the call is answered. [swml-reference]: /docs/swml/reference [ref-agentbase]: /docs/server-sdks/reference/typescript/agents/agent-base Add a verb to run before the call is answered (phase 1). Pre-answer verbs execute while the call is still ringing. > **Warning** > > Only certain verbs are safe before answering. The platform may ignore or > reject verbs that require an active media session. Verbs with `auto_answer` > capability (like `play` and `connect`) must include `"auto_answer": false` in > their config to prevent automatic answering. Safe pre-answer verbs: `transfer`, `execute`, `return`, `label`, `goto`, `request`, `switch`, `cond`, `if`, `eval`, `set`, `unset`, `hangup`, `send_sms`, `sleep`, `stop_record_call`, `stop_denoise`, `stop_tap`. ## **Parameters** **`verbName`** `string` — required SWML verb name (e.g., `"play"`, `"sleep"`, `"request"`). --- **`config`** `Record` — required Verb configuration object. See the [SWML reference][swml-reference] for verb-specific parameters. --- ## **Returns** [`AgentBase`][ref-agentbase] -- Returns `this` for method chaining. ## **Example** ```typescript {5} import { AgentBase } from '@signalwire/sdk'; const agent = new AgentBase({ name: 'support', route: '/support' }); agent.setPromptText('You are a helpful assistant.'); agent.addPreAnswerVerb('play', { urls: ['ring:us'], auto_answer: false, }); await agent.serve(); ``` > Add a SWML verb to run before the call is answered.