Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions fern/call-forwarding.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,83 @@ Here is a full example of a `transferCall` payload using the warm transfer with
}
```

#### 6. Experimental Warm Transfer

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.

- **Configuration:**

- Set the `mode` to `"warm-transfer-experimental"`.
- Provide a `message` to be spoken to the operator when they answer.
- Optionally define a `summaryPlan` that will take precedence over the message if enabled.
- Configure a `fallbackPlan` with a message and whether to end the call if transfer fails.
- 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.

- **Example:**

```json
"transferPlan": {
"mode": "warm-transfer-experimental",
"message": "Transferring a customer to you.",
"fallbackPlan": {
"message": "Could not transfer your call, goodbye.",
"endCallEnabled": true
},
"summaryPlan": {
"enabled": true,
"messages": [
{
"role": "system",
"content": "Please provide a summary of the call."
},
{
"role": "user",
"content": "Here is the transcript:\n\n{{transcript}}\n\n"
}
]
}
}
```

Here is a full example of a `transferCall` payload using the experimental warm transfer mode:

```json
{
"type": "transferCall",
"function": {
"name": "myTransferCall"
},
"destinations": [
{
"type": "number",
"number": "+1123456789",
"message": "Transferring the call now...",
"transferPlan": {
"mode": "warm-transfer-experimental",
"message": "Transferring a customer to you.",
"fallbackPlan": {
"message": "Could not transfer your call, goodbye.",
"endCallEnabled": true
},
"summaryPlan": {
"enabled": true,
"messages": [
{
"role": "system",
"content": "Please provide a summary of the call."
},
{
"role": "user",
"content": "Here is the transcript:\n\n{{transcript}}\n\n"
}
]
}
}
}
]
}
```

**Notes:**

- In all warm transfer modes, the `{{transcript}}` variable contains the full transcript of the call and can be used within the `summaryPlan`.
Expand Down
4 changes: 4 additions & 0 deletions fern/sdk/mcp-server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ The Vapi MCP Server provides the following tools for integration:
- `list_phone_numbers`: Lists all Vapi phone numbers
- `get_phone_number`: Gets details of a specific phone number

### Vapi Tools
- `list_tools`: Lists all Vapi tools
- `get_tool`: Gets details of a specific tool

## Setup Options

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