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

# Set Up Fast Direct Routing

> Configure cold transfers for fast, direct routing without operator briefing. Your agent transfers the call immediately and disconnects—caller goes straight to the destination with no three-way handoff. Simple to set up, ideal for high-volume basic escalations and IVR routing where speed matters more than context.

Route calls directly without briefing. Cold transfers connect callers straight to the destination — fastest option when speed matters more than context handoff.

**What you'll learn:** Cold transfer workflow, configuration steps, route options, and when to choose cold over warm transfers.

## How Cold Transfer Works

1. **Agent determines the caller needs transfer**
2. **Agent initiates transfer** to configured destination
3. **Agent disconnects immediately**
4. **Caller connects directly** with destination

## When to Use Cold Transfer

**Best for:**

* Simple routing to departments or IVR systems
* High-volume, basic escalations
* General inquiries that don't require context
* Routing to automated systems or menus
* Situations where speed matters more than context

**Choose warm transfer instead when:**

* Complex issues requiring operator context
* High-value calls needing personalization
* Caller shouldn't have to re-explain situation

## Configuring Cold Transfer

<Accordion title="Quick Start: Configure via API">
  This example shows only the transfer-related fields. The PUT endpoint requires the full agent configuration including `name`, `config.primaryLanguage`, `config.ttsConfig`, and `config.llmConfig`.

  ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X PUT "https://blackbox.dasha.ai/api/v1/agents/{agentId}" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Your Agent Name",
      "config": {
        "primaryLanguage": "en-US",
        "ttsConfig": { ... },
        "llmConfig": { ... },
        "features": {
          "transfer": {
            "type": "cold",
            "description": "Transfer to support when customer needs general assistance",
            "endpointDestination": "+15550200",
            "transferRoutes": [
              {
                "name": "Sales",
                "description": "For pricing and purchases",
                "endpointDestinations": [{ "endpoint": "+15550201" }]
              },
              {
                "name": "Support",
                "description": "For technical help",
                "endpointDestinations": [{ "endpoint": "+15550202" }]
              }
            ],
            "failoverBehavior": {
              "continueConversation": true
            }
          }
        }
      }
    }'
  ```
</Accordion>

### Configure via Dashboard

1. Open your agent's configuration
2. Navigate to the **Features** tab
3. Scroll to **Call Transfers** section
4. Select **Cold Transfer** type

### Step 2: Configure Basic Settings

**Transfer Description**

* Guides the language model on when to use this transfer
* Example: "Transfer to main support line when customer asks for general assistance"
* Be specific about when this transfer should be used

**Endpoint Destination**

* Phone number: `+1234567890`
* SIP URI: `sip:support@yourdomain.com`

### Step 3: Configure Transfer Routes (Optional)

Multiple destination options for intelligent routing:

**Example: Department-based routing**

* Route Name: "Sales Department"

* Description: "For pricing, quotes, and new purchases"

* Destination: `+1-555-0201`

* Route Name: "Technical Support"

* Description: "For technical problems and troubleshooting"

* Destination: `+1-555-0202`

The language model selects the appropriate route based on conversation context.

### Step 4: Configure Hold Media (Optional)

**Hold Media**

* Audio file played while transfer is being established
* Upload hold music or messages
* Example: "Please hold while we transfer your call."
* Professional experience during connection

### Step 5: Configure Failover Behavior

What happens if transfer fails (destination busy, unavailable, or doesn't answer):

**Failover Options:**

* **Continue Conversation**: Agent resumes and tries to help
* **End Call**: Call terminates gracefully

**System Message** (for agent context):

* Example: "Transfer failed. Apologize and offer alternative help."

**Static Phrase** (to caller):

* Example: "I apologize, but I'm unable to complete the transfer at this time. Please call back or visit our website for assistance."

## Configuration Example

<Accordion title="Example: Complete Cold Transfer Configuration">
  This shows the `config.features.transfer` object structure:

  ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "type": "cold",
    "description": "Transfer to main support line for general inquiries outside your knowledge base.",
    "endpointDestination": "+15550200",
    "transferRoutes": [
      {
        "name": "Sales-Department",
        "description": "For pricing, quotes, and new purchases",
        "endpointDestinations": [{ "endpoint": "+15550201" }]
      },
      {
        "name": "Technical-Support",
        "description": "For technical problems and troubleshooting",
        "endpointDestinations": [{ "endpoint": "+15550202" }]
      }
    ],
    "holdMedia": {
      "isEnabled": true,
      "mediaFileId": "your-media-file-id"
    },
    "failoverBehavior": {
      "continueConversation": false,
      "staticPhrase": "I apologize, but I'm unable to complete the transfer at this time. Please call back or visit our website for assistance."
    }
  }
  ```
</Accordion>

## Common Use Cases

### General Department Routing

**Configuration:**

* Multiple routes: Sales, Support, Billing
* Hold media: "Please hold while we transfer you"
* Failover: Continue Conversation

**Why:** Simple routing where caller will explain needs to department

### IVR System Routing

**Configuration:**

* Single destination: Main IVR system
* Hold media: "Transferring you to our menu system"
* Failover: End Call

**Why:** IVR systems handle caller routing; no context needed

### After-Hours Routing

**Configuration:**

* Route to answering service or voicemail
* Hold media: "Transferring to our after-hours line"
* Failover: Continue and offer alternative

**Why:** Simple handoff to after-hours coverage

### High-Volume Basic Inquiries

**Configuration:**

* Route to general support queue
* Hold media: Professional hold music
* Failover: Continue Conversation

**Why:** Speed matters; support team will gather information

## Troubleshooting

### Problem: Callers Confused After Transfer

**Solution:** Configure agent to explain where caller is being transferred and why. Add clear hold media. Consider if warm transfer would be better for this use case.

### Problem: Transfers Fail Frequently

**Solution:** Verify destination numbers are correct and answering. Check if destinations have capacity. Configure appropriate failover behavior.

### Problem: Callers Have to Re-Explain Issues

**Solution:** This is expected with cold transfer. If it's problematic, consider switching to warm transfer for these scenarios.

### Problem: Agent Transfers Too Often

**Solution:** Refine transfer description to be more specific. Expand agent's knowledge base. Update system prompt to encourage problem-solving before transferring.

## Next steps

<CardGroup cols={2}>
  <Card title="Warm Transfer" icon="handshake" href="/docs/advanced-features/call-transfers/warm-transfer">
    Contextual operator briefing
  </Card>

  <Card title="HTTP Transfer" icon="webhook" href="/docs/advanced-features/call-transfers/http-transfer">
    Dynamic routing decisions
  </Card>

  <Card title="Call Transfers Overview" icon="phone" href="/docs/advanced-features/call-transfers">
    Compare all transfer types
  </Card>

  <Card title="Maximum Call Duration" icon="clock" href="/docs/advanced-features/max-call-duration">
    Control transferred call length
  </Card>
</CardGroup>
