Skip to content

Commit 3a56a3f

Browse files
committed
added docs for experimental warm transfer mode
1 parent 8176749 commit 3a56a3f

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

fern/call-forwarding.mdx

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,83 @@ Here is a full example of a `transferCall` payload using the warm transfer with
362362
}
363363
```
364364

365+
#### 6. Experimental Warm Transfer
366+
367+
In this mode, Vapi dials the destination number and places the caller on hold (with a default ringtone). If the destination answers, Vapi connects the calls. If voicemail is detected or the call isn't answered, Vapi plays a fallback message to the caller.
368+
369+
- **Configuration:**
370+
371+
- Set the `mode` to `"warm-transfer-experimental"`.
372+
- Provide a `message` to be spoken to the operator when they answer.
373+
- Optionally define a `summaryPlan` that will take precedence over the message if enabled.
374+
- Configure a `fallbackPlan` with a message and whether to end the call if transfer fails.
375+
- When voicemail detection is enabled in the assistant configuration (with either Google or OpenAI provider), it will use that configuration to detect if a human answered the call. Note that only Google or OpenAI providers are supported for voicemail detection with transfer plans, even if the assistant configuration supports other providers like Twilio or Vapi.
376+
377+
- **Example:**
378+
379+
```json
380+
"transferPlan": {
381+
"mode": "warm-transfer-experimental",
382+
"message": "Transferring a customer to you.",
383+
"fallbackPlan": {
384+
"message": "Could not transfer your call, goodbye.",
385+
"endCallEnabled": true
386+
},
387+
"summaryPlan": {
388+
"enabled": true,
389+
"messages": [
390+
{
391+
"role": "system",
392+
"content": "Please provide a summary of the call."
393+
},
394+
{
395+
"role": "user",
396+
"content": "Here is the transcript:\n\n{{transcript}}\n\n"
397+
}
398+
]
399+
}
400+
}
401+
```
402+
403+
Here is a full example of a `transferCall` payload using the experimental warm transfer mode:
404+
405+
```json
406+
{
407+
"type": "transferCall",
408+
"function": {
409+
"name": "myTransferCall"
410+
},
411+
"destinations": [
412+
{
413+
"type": "number",
414+
"number": "+1123456789",
415+
"message": "Transferring the call now...",
416+
"transferPlan": {
417+
"mode": "warm-transfer-experimental",
418+
"message": "Transferring a customer to you.",
419+
"fallbackPlan": {
420+
"message": "Could not transfer your call, goodbye.",
421+
"endCallEnabled": true
422+
},
423+
"summaryPlan": {
424+
"enabled": true,
425+
"messages": [
426+
{
427+
"role": "system",
428+
"content": "Please provide a summary of the call."
429+
},
430+
{
431+
"role": "user",
432+
"content": "Here is the transcript:\n\n{{transcript}}\n\n"
433+
}
434+
]
435+
}
436+
}
437+
}
438+
]
439+
}
440+
```
441+
365442
**Notes:**
366443

367444
- In all warm transfer modes, the `{{transcript}}` variable contains the full transcript of the call and can be used within the `summaryPlan`.

fern/sdk/mcp-server.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ The Vapi MCP Server provides the following tools for integration:
3939
- `list_phone_numbers`: Lists all Vapi phone numbers
4040
- `get_phone_number`: Gets details of a specific phone number
4141

42+
### Vapi Tools
43+
- `list_tools`: Lists all Vapi tools
44+
- `get_tool`: Gets details of a specific tool
45+
4246
## Setup Options
4347

4448
There are two primary ways to connect to the Vapi MCP Server:

0 commit comments

Comments
 (0)