नंबर पर ट्रांसफ़र करें

तय शर्तों के आधार पर कॉल को बाहरी फ़ोन नंबरों या SIP URI पर ट्रांसफ़र करें।

परिचय

transfer_to_number सिस्टम टूल, कुछ शर्तें पूरी होने पर ElevenLabs एजेंट को चल रही कॉल किसी तय फ़ोन नंबर या SIP URI पर ट्रांसफ़र करने देता है। इससे एजेंट जटिल समस्याएं, खास अनुरोध या मानवीय सहायता वाली स्थितियां किसी लाइव ऑपरेटर को सौंप सकते हैं।

यह सुविधा Twilio और SIP ट्रंक नंबरों के ज़रिए ट्रांसफ़र सपोर्ट करती है। ट्रिगर होने पर, एजेंट इंतज़ार कर रहे यूज़र को एक संदेश दे सकता है और कॉल लेने वाले मानव ऑपरेटर के लिए स्थिति का सार बताने वाला अलग संदेश भी दे सकता है।

transfer_to_number सिस्टम टूल सिर्फ़ फ़ोन कॉल के लिए उपलब्ध है और चैट विजेट में उपलब्ध नहीं है।

ट्रांसफ़र के प्रकार

सिस्टम तीन तरह के ट्रांसफ़र सपोर्ट करता है:

  • कॉन्फ़्रेंस ट्रांसफ़र: डिफ़ॉल्ट व्यवहार, जो डेस्टिनेशन को कॉल करता है और प्रतिभागी को कॉन्फ़्रेंस रूम में जोड़ता है, फिर AI एजेंट को हटा देता है ताकि सिर्फ़ कॉलर और ट्रांसफ़र किया गया प्रतिभागी रहें। नेटिव Twilio इंटीग्रेशन इस्तेमाल करने पर, मानव ऑपरेटर को सुनाया जाने वाला वॉर्म ट्रांसफ़र संदेश (agent_message) सपोर्ट करता है।
  • ब्लाइंड ट्रांसफ़र: मानव ऑपरेटर को वॉर्म ट्रांसफ़र संदेश दिए बिना, कॉल को सीधे डेस्टिनेशन पर ट्रांसफ़र करता है। मूल कॉलर ID बरकरार रहती है। यह सिर्फ़ तब उपलब्ध है जब एजेंट का फ़ोन नंबर नेटिव Twilio इंटीग्रेशन के ज़रिए इंपोर्ट किया गया हो।
  • SIP REFER ट्रांसफ़र: कॉल को सीधे डेस्टिनेशन पर ट्रांसफ़र करने के लिए SIP REFER प्रोटोकॉल इस्तेमाल करता है। फ़ोन नंबर और SIP URI, दोनों के साथ काम करता है, लेकिन सिर्फ़ तब उपलब्ध है जब बातचीत के दौरान SIP प्रोटोकॉल इस्तेमाल हो रहा हो और आपका SIP Trunk, SIP REFER के ज़रिए ट्रांसफ़र की अनुमति देता हो। वॉर्म ट्रांसफ़र संदेश सपोर्ट नहीं करता।

वॉर्म ट्रांसफ़र संदेश (agent_message) सिर्फ़ तब उपलब्ध हैं जब एजेंट का फ़ोन नंबर नेटिव Twilio इंटीग्रेशन के ज़रिए इंपोर्ट किया गया हो। SIP-आधारित ट्रांसफ़र वॉर्म ट्रांसफ़र संदेश सपोर्ट नहीं करते।

ब्लाइंड ट्रांसफ़र सिर्फ़ तब उपलब्ध हैं जब एजेंट का फ़ोन नंबर नेटिव Twilio इंटीग्रेशन के ज़रिए इंपोर्ट किया गया हो और इन्हें अभी UI में JSON एडिटर के ज़रिए कॉन्फ़िगर करना ज़रूरी है। ट्रांसफ़र टूल कॉन्फ़िगरेशन में “Edit as JSON” चुनें और अपनी ट्रांसफ़र रूल के लिए "transfer_type": "blind" सेट करें।

उद्देश्य: AI सहायता अपर्याप्त होने पर बातचीत को सहज रूप से मानव ऑपरेटर को सौंपें।

ट्रिगर शर्तें: LLM को इस टूल को तब कॉल करना चाहिए, जब:

  • जटिल समस्या के लिए मानवीय निर्णय की ज़रूरत हो
  • यूज़र साफ़ तौर पर मानव सहायता मांगे
  • खास अनुरोध के लिए AI अपनी क्षमता की सीमा तक पहुंच जाए
  • एस्केलेशन प्रोटोकॉल ट्रिगर हो जाएं

पैरामीटर:

  • reason (string, वैकल्पिक): ट्रांसफ़र का कारण
  • transfer_number (string, आवश्यक): जिस फ़ोन नंबर पर ट्रांसफ़र करना है (कॉन्फ़िगर किए गए नंबरों से मेल खाना चाहिए)
  • client_message (string, आवश्यक): ट्रांसफ़र का इंतज़ार करते समय क्लाइंट को सुनाया जाने वाला मैसेज
  • agent_message (string, आवश्यक): कॉल पाने वाले मानव ऑपरेटर के लिए मैसेज

फंक्शन कॉल फ़ॉर्मैट:

{
"type": "function",
"function": {
"name": "transfer_to_number",
"arguments": "{\"reason\": \"Complex billing issue\", \"transfer_number\": \"+15551234567\", \"client_message\": \"I'm transferring you to a billing specialist who can help with your account.\", \"agent_message\": \"Customer has a complex billing dispute about order #12345 from last month.\"}"
}
}

इम्प्लीमेंटेशन: ट्रांसफ़र फ़ोन नंबर और शर्तें कॉन्फ़िगर करें। ग्राहक और कॉल पाने वाले मानव ऑपरेटर, दोनों के लिए मैसेज तय करें। यह Twilio और SIP ट्रंकिंग, दोनों के साथ काम करता है।

जिन नंबरों पर ट्रांसफ़र किया जा सकता है

मानव ट्रांसफ़र, SIP trunking और Twilio फ़ोन नंबरों, दोनों का इस्तेमाल करके बाहरी फ़ोन नंबरों पर ट्रांसफ़र सपोर्ट करता है।

मानव ट्रांसफ़र सक्षम करना

मानव ट्रांसफ़र को transfer_to_number सिस्टम टूल से कॉन्फ़िगर किया जाता है।

1

ट्रांसफ़र टूल जोड़ें

Agent टैब में अपने एजेंट के कॉन्फ़िगरेशन के भीतर transfer_to_number सिस्टम टूल चुनकर मानव ट्रांसफ़र सक्षम करें। टूल जोड़ते समय “Transfer to Human” चुनें।

मानव ट्रांसफ़र टूल जोड़ें
'Transfer to Human' टूल चुनें
2

टूल विवरण कॉन्फ़िगर करें (वैकल्पिक)

ट्रांसफ़र कब ट्रिगर करना है, इसके लिए LLM को गाइड करने हेतु आप कस्टम विवरण दे सकते हैं। खाली छोड़ने पर, तय ट्रांसफ़र रूल्स को शामिल करने वाला डिफ़ॉल्ट विवरण इस्तेमाल होगा।

मानव ट्रांसफ़र टूल का विवरण
ट्रांसफ़र टूल विवरण कॉन्फ़िगर करें
3

ट्रांसफ़र रूल्स तय करें

फ़ोन नंबरों या SIP URI पर ट्रांसफ़र करने के लिए खास रूल्स कॉन्फ़िगर करें। हर रूल के लिए यह तय करें:

  • ट्रांसफ़र प्रकार: कॉन्फ़्रेंस (डिफ़ॉल्ट), ब्लाइंड या SIP REFER ट्रांसफ़र तरीकों में से चुनें
  • नंबर प्रकार: सामान्य फ़ोन नंबरों के लिए Phone या SIP पतों के लिए SIP URI चुनें
  • फ़ोन नंबर/SIP URI: सही फ़ॉर्मेट में टारगेट डेस्टिनेशन:
    • फ़ोन नंबर: E.164 फ़ॉर्मेट (जैसे, +12125551234)
    • SIP URI: SIP फ़ॉर्मेट (जैसे, sip:1234567890@example.com)
  • शर्त: वे परिस्थितियां बताने वाला सामान्य भाषा का विवरण जिनमें ट्रांसफ़र होना चाहिए (जैसे, “यूज़र साफ़ तौर पर किसी इंसान से बात करने का अनुरोध करता है”, “यूज़र को संवेदनशील अकाउंट जानकारी अपडेट करनी है”)।

LLM इन शर्तों और टूल विवरण का इस्तेमाल करके तय करेगा कि कब और किस डेस्टिनेशन पर ट्रांसफ़र करना है।

SIP REFER ट्रांसफ़र के लिए बातचीत के दौरान SIP प्रोटोकॉल ज़रूरी है और आपके SIP Trunk को SIP REFER के ज़रिए ट्रांसफ़र की अनुमति देनी होगी। सिर्फ़ SIP REFER, SIP URI पर ट्रांसफ़र सपोर्ट करता है।

ब्लाइंड ट्रांसफ़र सिर्फ़ तब उपलब्ध हैं जब एजेंट का फ़ोन नंबर नेटिव Twilio इंटीग्रेशन के ज़रिए इंपोर्ट किया गया हो और इन्हें JSON एडिटर से कॉन्फ़िगर करना होगा। मूल कॉलर ID बरकरार रहती है, लेकिन मानव ऑपरेटर को कोई वॉर्म ट्रांसफ़र संदेश नहीं भेजा जाता।

मानव ट्रांसफ़र रूल्स कॉन्फ़िगरेशन
फ़ोन नंबर और शर्त के साथ ट्रांसफ़र रूल्स तय करें

पक्का करें कि डेस्टिनेशन सही फ़ॉर्मेट में हों:

  • फ़ोन नंबर: E.164 फ़ॉर्मेट में और सही तरीके से कॉन्फ़िगर किए गए अकाउंट से जुड़े हुए
  • SIP URI: मान्य SIP फ़ॉर्मेट (sip:user@domain या sips:user@domain)
4

कस्टम SIP REFER हेडर कॉन्फ़िगर करें (वैकल्पिक)

SIP REFER ट्रांसफ़र इस्तेमाल करते समय, रिसीविंग सिस्टम को अतिरिक्त जानकारी भेजने के लिए आप कस्टम SIP हेडर शामिल कर सकते हैं।

हर कस्टम हेडर के लिए यह तय करें:

  • हेडर नाम: SIP हेडर का नाम (जैसे, X-Customer-ID, X-Priority)
  • हेडर वैल्यू: हेडर की वैल्यू, जो स्टैटिक टेक्स्ट हो सकती है या इसमें डायनामिक वेरिएबल्स शामिल हो सकते हैं

कस्टम SIP REFER हेडर सिर्फ़ SIP REFER ट्रांसफ़र के साथ शामिल होते हैं। कॉन्फ़्रेंस ट्रांसफ़र कस्टम हेडर सपोर्ट नहीं करते।

सिस्टम हेडर X-Conversation-ID और X-Caller-ID ElevenLabs अपने-आप शामिल करता है और ये समान नाम वाले किसी भी कस्टम हेडर को ओवरराइड करेंगे (case-insensitive)।

5

यूज़र-टू-यूज़र इन्फ़ॉर्मेशन (UUI) कॉन्फ़िगर करें (वैकल्पिक)

SIP REFER ट्रांसफ़र, रिसीविंग प्लेटफ़ॉर्म (जैसे Talkdesk या Genesys Cloud) को Refer-To हेडर के User-to-User पैरामीटर में भेजा जाने वाला छोटा पेलोड, यूज़र-टू-यूज़र इन्फ़ॉर्मेशन (UUI), ले जा सकते हैं। UUI सिर्फ़ SIP URI पर SIP REFER ट्रांसफ़र डेस्टिनेशन के लिए भेजा जाता है; फ़ोन-नंबर (tel:) डेस्टिनेशन इसे नहीं ले जाते।

uui ऑब्जेक्ट के साथ हर ट्रांसफ़र रूल के लिए UUI कॉन्फ़िगर करें:

  • data: भेजा जाने वाला पेलोड, plaintext के रूप में। ElevenLabs इसे hex-encode करता है और ;encoding=hex जोड़ता है। यह स्टैटिक टेक्स्ट हो सकता है या इसमें डायनामिक वेरिएबल्स शामिल हो सकते हैं। अधिकतम 256 बाइट (UTF-8), डायनामिक वेरिएबल्स बदलने के बाद लागू — सादे ASCII के लिए 256 अक्षर, मल्टी-बाइट अक्षरों के लिए कम।
  • protocol_discriminator: एक hex octet, उदाहरण के लिए 04। उन प्लेटफ़ॉर्म के लिए इसे शामिल करें जो पेलोड का पहला octet हटा देते हैं; उन प्लेटफ़ॉर्म के लिए इसे न दें जो पेलोड को जैसा है वैसा पास करते हैं।
  • protocol_discriminator_mode: prefix (डिफ़ॉल्ट) octet को पहले जोड़ता है, जिससे 04<hex>;encoding=hex बनता है। pd_parameter इसे अलग पैरामीटर के रूप में जोड़ता है, जिससे <hex>;pd=04;encoding=hex बनता है।

Talkdesk वैल्यू को बिना बदलाव के पास करता है, इसलिए protocol discriminator न दें। Genesys Cloud, discriminator मौजूद न होने पर पेलोड का पहला octet हटा देता है, इसलिए protocol_discriminator शामिल करें। Genesys UUI डेटा फ़ॉर्मेट देखें।

256-बाइट की सीमा डायनामिक वेरिएबल्स बदलने के बाद लागू होती है। अकाउंट ID जैसे आइडेंटिफ़ायर या छोटे कोड भेजें, पूरी कॉल समरी जैसे free-form टेक्स्ट नहीं, जो सीमा से अधिक होने पर ट्रांसफ़र से हटा दिया जाता है।

इनबाउंड SIP कॉल पर UUI पाने के लिए किसी कॉन्फ़िगरेशन की ज़रूरत नहीं है। जब किसी इनकमिंग INVITE में User-to-User हेडर होता है, तो उसकी वैल्यू एजेंट को {{sip_uui_raw}} और {{sip_uui_data}} डायनामिक वेरिएबल्स के रूप में मिलती है। SIP रेफरेंस देखें।

6

पोस्ट-डायल अंक कॉन्फ़िगर करें (वैकल्पिक)

पोस्ट-डायल अंक DTMF टोन होते हैं, जो फ़ोन के ट्रांसफ़र डेस्टिनेशन से कनेक्ट होने के बाद भेजे जाते हैं। यह एक्सटेंशन डालने या IVR (Interactive Voice Response) मेनू को अपने-आप नेविगेट करने के लिए उपयोगी है।

हर ट्रांसफ़र रूल के लिए, आप इनसे बनी post_dial_digits स्ट्रिंग तय कर सकते हैं:

  • अंक (0-9): मानक DTMF टोन
  • w: 0.5 सेकंड की देरी
  • W: 1 सेकंड की देरी
  • * और #: विशेष DTMF टोन

उदाहरण के लिए, ww1234 कॉल कनेक्ट होने के बाद 1 सेकंड इंतज़ार करता है और फिर एक्सटेंशन 1234 डायल करता है।

पोस्ट-डायल अंक सिर्फ़ तब उपलब्ध हैं जब एजेंट का फ़ोन नंबर (ट्रांसफ़र शुरू करने वाला नंबर) नेटिव Twilio इंटीग्रेशन के ज़रिए इंपोर्ट किया गया हो। डेस्टिनेशन नंबर कोई भी फ़ोन नंबर हो सकता है।

पोस्ट-डायल अंक सिर्फ़ कॉन्फ़्रेंस और ब्लाइंड ट्रांसफ़र प्रकारों के लिए सपोर्ट होते हैं। SIP REFER ट्रांसफ़र पोस्ट-डायल अंक सपोर्ट नहीं करते।

API इम्प्लीमेंटेशन

API के ज़रिए एजेंट बनाते या अपडेट करते समय आप transfer_to_number सिस्टम टूल कॉन्फ़िगर कर सकते हैं (एजेंट बनाएं, एजेंट अपडेट करें)। टूल क्लाइंट (ट्रांसफ़र किए जा रहे यूज़र) और एजेंट (कॉल लेने वाले मानव ऑपरेटर), दोनों के लिए संदेश तय करने देता है।

from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs
elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")
# Define transfer rules
transfer_rules = [
{
"transfer_destination": {"type": "phone", "phone_number": "+15551234567"},
"condition": "When the user asks for billing support.",
"transfer_type": "conference",
# Wait 1s, then dial extension 1234 (native Twilio only)
"post_dial_digits": {"type": "static", "value": "ww1234"},
},
{
"transfer_destination": {"type": "phone", "phone_number": "+15559876543"},
"condition": "When the user asks to speak to a human.",
# Native Twilio integration only, preserves caller ID, no warm transfer message
"transfer_type": "blind",
},
{
"transfer_destination": {"type": "sip_uri", "sip_uri": "sip:support@example.com"},
"condition": "When the user requests to file a formal complaint.",
"transfer_type": "sip_refer",
"custom_sip_headers": [
{"type": "static", "key": "X-Department", "value": "complaints"},
{"type": "static", "key": "X-Priority", "value": "high"},
# Use "dynamic" to read the value from a dynamic variable
{"type": "dynamic", "key": "X-Customer-ID", "value": "{{customer_id}}"},
],
"uui": {
"data": "account_id={{customer_id}}",
"protocol_discriminator": "04", # Genesys Cloud; omit for Talkdesk
"protocol_discriminator_mode": "prefix", # or "pd_parameter"
},
},
]
response = elevenlabs.conversational_ai.agents.create(
conversation_config=ConversationalConfig(
agent=AgentConfig(
first_message="Hi, how can I help you today?",
prompt={
"prompt": "You are a helpful assistant.",
"built_in_tools": {
"transfer_to_number": {
"type": "system",
"name": "transfer_to_number",
# Optional custom description
"description": "Transfer the user to a human operator based on their request.",
"params": {
"system_tool_type": "transfer_to_number",
"transfers": transfer_rules,
},
}
},
},
),
),
)
# Note: When the LLM decides to call this tool, it needs to provide:
# - transfer_number: The phone number to transfer to (must match one defined in rules).
# - client_message: Message read to the user during transfer.
# - agent_message: Message read to the human operator receiving the call (native Twilio integration only, not used for blind transfers or SIP).