Salesforce

अपने ElevenLabs एजेंट्स को Salesforce CRM से कनेक्ट करें

परिचय

कस्टमर डेटा ऐक्सेस करने, लीड्स मैनेज करने और अवसर बनाने के लिए अपने ElevenLabs AI एजेंट्स को Salesforce CRM से कनेक्ट करें। यह इंटीग्रेशन आपके एजेंट्स को मौजूदा कस्टमर रिकॉर्ड प्राप्त करने, नई लीड्स और कॉन्टैक्ट्स बनाने और बातचीत के दौरान Salesforce ऑब्जेक्ट्स को क्वेरी करने देता है।

क्षमताएं

क्षमतासहायता
ज़ीरो रिटेंशन मोड (ZRM)समर्थित नहीं
ट्रिगर्स में अटैचमेंटसमर्थित नहीं — आने वाली केस टिप्पणियों और ईमेल के अटैचमेंट एजेंट को फ़ॉरवर्ड नहीं किए जाते
टूल्स में अटैचमेंटसमर्थित नहीं — टूल्स सिर्फ़ टेक्स्ट पर काम करते हैं

सेटअप

यह इंटीग्रेशन ऑथेंटिकेशन के लिए Salesforce OAuth 2.0 Client Credentials का इस्तेमाल करता है। आपको Salesforce में एक External Client App बनाना होगा।

1

एक External Client App बनाएं

  1. एडमिनिस्ट्रेटर के तौर पर अपने Salesforce org में लॉग इन करें
  2. Setup > External Client App Manager पर जाएं
  3. New External Client App पर क्लिक करें
  4. External Client App Name (जैसे, ElevenLabs Agents), API Name, और Contact Email भरें
  5. API (Enable OAuth Settings) में:
    • Enable OAuth और Enable Client Credentials Flow चुनें
    • Callback URL: https://api.elevenlabs.io/oauth/callback
    • OAuth Start URL: https://api.elevenlabs.io/oauth/start
    • Selected OAuth Scopes: ये स्कोप जोड़ें:
      • Full access (full)
      • Perform requests on your behalf at any time (refresh_token, offline_access)
      • Manage user data via api
  6. Create पर क्लिक करें
  7. ऐप पेज पर Settings टैब खोलें, OAuth Settings पर जाएं और Consumer Key and Secret पर क्लिक करें
  8. Consumer Key और Consumer Secret कॉपी करें — ऑथेंटिकेशन के लिए इनकी ज़रूरत होगी
2

OAuth Client Credentials फ़्लो कॉन्फ़िगर करें

Client Credentials Flow उन server-to-server इंटीग्रेशन के लिए सुझाया जाता है, जिनमें यूज़र इंटरैक्शन की ज़रूरत नहीं होती। सुनिश्चित करें कि आपके Salesforce एडमिन ने यह फ़्लो सक्षम किया है।

  1. अपने External Client App में Edit पर क्लिक करें
  2. Enable Client Credentials Flow चुनें — एक Run As फ़ील्ड दिखाई देगी
  3. Run As में अपना एडमिन यूज़र या एक समर्पित सर्विस अकाउंट सेट करें — यही सभी API कॉल की अनुमतियां तय करता है
  4. Permitted Users को Admin approved users are pre-authorized पर सेट करें
  5. Save पर क्लिक करें

Run As यूज़र सभी API कॉल की अनुमतियां तय करता है। System Administrator प्रोफ़ाइल वाले यूज़र या ऐसी कस्टम प्रोफ़ाइल वाले यूज़र को चुनें, जिसके पास API एक्सेस और आपके एजेंट को चाहिए ऑब्जेक्ट्स (Contact, Lead, Account आदि) की अनुमति हो। यूज़र रिकॉर्ड में API Enabled अनुमति चुनी होनी चाहिए।

3

अपना Salesforce डोमेन ढूंढें

API कॉल के लिए आपका Salesforce डोमेन ज़रूरी है।

तरीका 1: अपना मौजूदा URL देखें

Salesforce में लॉग इन होने पर, अपने ब्राउज़र का एड्रेस बार देखें:

  • Lightning Experience: https://acme.lightning.force.com/
  • My Domain: https://acme.my.salesforce.com/

तरीका 2: Setup > Company Information

Setup > Company Information पर जाएं और अपना My Domain URL या Organization जानकारी देखें।

तरीका 3: Setup > Domain Management

Setup > Domain Management > My Domain पर जाएं। आपका डोमेन पेज के सबसे ऊपर दिखेगा।

सामान्य डोमेन फ़ॉर्मैट:

  • https://acme.my.salesforce.com (My Domain)
  • https://acme.lightning.force.com (Lightning)
  • https://acme.develop.my.salesforce.com (Sandbox)
ट्रेलिंग स्लैश के बिना पूरा डोमेन इस्तेमाल करें।
4

ElevenLabs में कनेक्ट करें

ElevenLabs इंटीग्रेशन सेटअप में अपना Salesforce instance hostname (जैसे, acme.my.salesforce.com), Client ID (Consumer Key), और Client Secret (Consumer Secret) दर्ज करें।

डेमो वीडियो

इस डेमो में पुराने webhook टूल्स का इस्तेमाल किया गया है। अगर आप नेटिव Salesforce इंटीग्रेशन इस्तेमाल कर रहे हैं, तो टूल्स अपने-आप कॉन्फ़िगर हो जाते हैं — मैन्युअल webhook सेटअप की ज़रूरत नहीं है।

Salesforce इंटीग्रेशन डेमो

यह कैसे काम करता है

1

ग्राहक की शुरुआती पूछताछ

एजेंट ग्राहक की जानकारी जुटाता है और उनकी व्यावसायिक ज़रूरतों व मौजूदा चुनौतियों को समझने के लिए प्रासंगिक सवाल पूछता है।

2

ग्राहक डेटा खोज

एजेंट संपर्क, अकाउंट या लीड ढूंढने के लिए salesforce_search_records से मौजूदा रिकॉर्ड जांचता है। वह salesforce_get_record से पूरी जानकारी पाता है और इस जानकारी का इस्तेमाल बातचीत को व्यक्तिगत बनाने के लिए करता है।

3

लीड क्वालिफ़िकेशन

अगर ग्राहक नया है, तो एजेंट संपर्क जानकारी लेता है, उनकी व्यावसायिक ज़रूरतों का आकलन करता है और सही सेल्स प्रोसेस या रूटिंग तय करता है।

4

रिकॉर्ड बनाना

एजेंट salesforce_create_record का इस्तेमाल करके सही रिकॉर्ड (लीड, संपर्क या अवसर) बनाता है, ग्राहक को रिकॉर्ड बनने की पुष्टि करता है और आगे के चरण समझाता है।

टूल ऑथराइज़ेशन को Workplace Auth Connections से मैनेज किया जा सकता है, जो token refresh को अपने-आप संभालता है। बातचीत की गुणवत्ता बेहतर बनाने के लिए टूल्स तकनीकी ID के बजाय आसानी से समझ आने वाले नाम और विवरण लौटाते हैं।

टूल कॉन्फ़िगरेशन

तीन webhook टूल उपलब्ध हैं: salesforce_search_records, salesforce_get_record, और salesforce_create_record। हर टूल के लिए Workplace Auth Connection से ऑथराइज़ेशन कॉन्फ़िगर करें।

ऑथराइज़ेशन - Workplace OAuth2 कनेक्शन

1

Workplace Auth Connections पर जाएं

अपने ElevenLabs डैशबोर्ड में Agents > Workplace Auth Connections पर जाएं और Add Auth पर क्लिक करें।

2

Salesforce कनेक्शन कॉन्फ़िगर करें

अपने Salesforce इंटीग्रेशन के लिए नीचे दिए फ़ील्ड भरें:

Connection Name: Salesforce CRM

Client ID

  • External Client App से आपकी Consumer Key
  • उदाहरण: 3MVG9JJlvRU3L4pRiOu8pQt5xXB4xGZGm0yW...

Client Secret

  • External Client App से आपका Consumer Secret
  • उदाहरण: 1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF...

Token URL

  • आपके Salesforce डोमेन का OAuth token endpoint
  • फ़ॉर्मैट: https://{domain}.my.salesforce.com/services/oauth2/token
  • उदाहरण: https://acme.my.salesforce.com/services/oauth2/token

Scopes (वैकल्पिक)

  • Salesforce API एक्सेस के लिए OAuth स्कोप
  • सुझाया गया: full, api, refresh_token
  • अपने External Client App के डिफ़ॉल्ट स्कोप इस्तेमाल करने के लिए खाली छोड़ दें

Extra Parameters (JSON)

  • आपके सेटअप के लिए अतिरिक्त OAuth पैरामीटर
  • Client Credentials फ़्लो का उदाहरण:
{
"grant_type": "client_credentials"
}
4

ऑथ कनेक्शन बनाएं

अपना कॉन्फ़िगरेशन जोड़ने के लिए Create auth connection पर क्लिक करें।

5

टूल कॉन्फ़िगरेशन में इस्तेमाल करें

कनेक्शन सफल होने पर, इसे सेव करें और Authentication सेक्शन में अपने webhook टूल कॉन्फ़िगरेशन में इसका संदर्भ दें।

Workplace Auth Connections token refresh को अपने-आप संभालता है, इसलिए आपको token को मैन्युअल रूप से मैनेज करने की ज़रूरत नहीं है।

Webhook टूल कॉन्फ़िगरेशन

Authentication सेक्शन में हर टूल के लिए एक Workplace Auth Connection (OAuth2) जोड़ें। हर टूल का कॉन्फ़िगरेशन देखने के लिए नीचे दिए टैब इस्तेमाल करें।

नाम: salesforce_search_records विवरण: SOQL क्वेरी का इस्तेमाल करके Salesforce में मौजूदा रिकॉर्ड खोजता है। केवल ID नहीं, बल्कि Names समेत आसानी से समझ आने वाली जानकारी हमेशा लौटाता है। तरीका: GET URL: https://acme.my.salesforce.com/services/data/v58.0/query/?q={soql_query}

हेडर्स:

  • Content-Type: application/json

क्वेरी पैरामीटर:

  • q: SOQL क्वेरी स्ट्रिंग (जैसे, “SELECT Id, Name, Email FROM Contact WHERE Email = ‘example@email.com’”)

टूल JSON:

{
"type": "webhook",
"name": "salesforce_search_records",
"description": "Searches for existing records in Salesforce using SOQL queries. Always returns human-readable names and details, not just IDs.",
"api_schema": {
"url": "https://acme.my.salesforce.com/services/data/v58.0/query/",
"method": "GET",
"path_params_schema": [],
"query_params_schema": [
{
"id": "q",
"type": "string",
"description": "SOQL query string to search for records. Always include Name fields and other human-readable information. Example: SELECT Id, Name, Email, Phone, Company FROM Contact WHERE Email = 'customer@example.com'. For Opportunities, include: SELECT Id, Name, StageName, Amount, CloseDate, Account.Name FROM Opportunity",
"dynamic_variable": "",
"constant_value": "",
"required": true,
"value_type": "llm_prompt"
}
],
"request_body_schema": null,
"request_headers": [
{
"type": "value",
"name": "Content-Type",
"value": "application/json"
}
]
},
"response_timeout_secs": 30,
"dynamic_variables": {
"dynamic_variable_placeholders": {}
}
}

सामान्य Salesforce ऑब्जेक्ट्स

ऑब्जेक्टउद्देश्यसामान्य फ़ील्ड
Leadऐसे संभावित ग्राहक जो अभी क्वालिफ़ाई नहीं हुए हैंFirstName, LastName, Email, Phone, Company, Industry, Status
Contactअकाउंट से जुड़े क्वालिफ़ाई किए गए व्यक्तिFirstName, LastName, Email, Phone, AccountId, Title
Accountसंगठन या कंपनियांName, Type, Industry, Phone, BillingAddress
Opportunityप्रगति पर मौजूद सेल्स डीलName, StageName, Amount, CloseDate, AccountId
Caseग्राहक सेवा अनुरोधSubject, Description, Status, Priority, ContactId

सामान्य SOQL क्वेरीज़

अपने एजेंट के सिस्टम प्रॉम्प्ट को कस्टमाइज़ करते समय इन SOQL क्वेरीज़ को शुरुआती बिंदु के रूप में इस्तेमाल करें। सभी क्वेरीज़ तकनीकी IDs के बजाय इंसानों के पढ़ने लायक जानकारी लौटाती हैं:

ईमेल से कॉन्टैक्ट खोजें

SELECT Id, Name, Email, Phone, Title, Account.Name, Account.Type FROM Contact WHERE Email = 'customer@example.com'

ईमेल या फ़ोन से लीड खोजें

SELECT Id, Name, Email, Phone, Company, Industry, Status, LeadSource, Title FROM Lead WHERE Email = 'customer@example.com' OR Phone = '+1234567890'

नाम से अकाउंट खोजें

SELECT Id, Name, Type, Industry, Phone, BillingCity, BillingState, Website FROM Account WHERE Name LIKE '%Company Name%'

हाल की अवसरों की जानकारी खोजें

SELECT Id, Name, StageName, Amount, CloseDate, Account.Name, Account.Type, Owner.Name, Description FROM Opportunity WHERE CreatedDate = THIS_MONTH

अकाउंट के आधार पर अवसर खोजें

SELECT Id, Name, StageName, Amount, CloseDate, Probability, NextStep, Owner.Name FROM Opportunity WHERE Account.Name LIKE '%Company Name%'

इंटीग्रेशन टेस्टिंग

अपना External Client App सेट अप करने और इंटीग्रेशन कनेक्ट करने के बाद, प्रोडक्शन में डिप्लॉय करने से पहले इसकी जांच करें:

  1. खोज सुविधा: अपने एजेंट से मौजूदा कॉन्टैक्ट खोजने के लिए कहें।
  2. रिकॉर्ड बनाना: अपने एजेंट से नई लीड या कॉन्टैक्ट बनाने के लिए कहें।
  3. डेटा प्राप्त करना: पुष्टि करें कि आपका एजेंट ग्राहकों की विस्तृत जानकारी प्राप्त कर सकता है।

केस कमेंट ट्रिगर: Email-to-Case के लिए ईमेल जवाब

अगर आपने Salesforce Case Comment ट्रिगर (Service Cloud Cases के लिए एजेंट का ऑटो-रिस्पॉन्स) सक्षम किया है, तो कम-से-कम एक इनबाउंड ईमेल वाले Cases के जवाब ग्राहक को असली, थ्रेडेड ईमेल के रूप में भेजे जाते हैं — सिर्फ़ आंतरिक Case Comment के रूप में नहीं। यह इस बात पर आधारित है कि Case में कोई इनबाउंड ईमेल है या नहीं, न कि Case की Origin पिकलिस्ट वैल्यू पर। इसलिए, अगर आपका org सामान्य “Email” के बजाय “Email - Returns” जैसी कस्टमाइज़्ड Origin वैल्यू इस्तेमाल करता है, तब भी यह सही तरह से काम करता है। जिन Cases में कोई इनबाउंड ईमेल नहीं है, उनमें पहले की तरह कोई बदलाव किए बिना सार्वजनिक Case Comment पोस्ट होता रहेगा। ग्राहक के मूल ईमेल में CC किए गए सभी पते जवाब में भी अपने-आप CC हो जाते हैं, ठीक वैसे ही जैसे किसी मानव एजेंट का “Reply All” काम करता है — बस आपके org के Email-to-Case रूटिंग पते CC में जानबूझकर शामिल नहीं किए जाते, ताकि जवाब Email-to-Case द्वारा फिर से इनजेस्ट न हो और एजेंट अपने ही संदेश पर दोबारा ट्रिगर न हो।

ईमेल जवाब भेजने के लिए, सिर्फ़ Case Comments के लिए ज़रूरी सेटअप के अलावा कुछ और सेटअप चाहिए:

  • Run As यूज़र के Profile या Permission Set में, इंटीग्रेशन के लिए पहले से ज़रूरी API Enabled अनुमति के अलावा, Send Email सिस्टम अनुमति भी सक्षम होनी चाहिए (Setup > Users > Profiles, System Permissions के अंतर्गत)।
  • आपके org की Email Deliverability सेटिंग (Setup > Email > Deliverability) में बाहरी ईमेल की अनुमति होनी चाहिए — Sandboxes में डिफ़ॉल्ट रूप से यह प्रतिबंधित सेटिंग होती है, जो बिना सूचना के आउटबाउंड ईमेल ब्लॉक कर देती है।
  • अगर आप चाहते हैं कि जवाब Run As यूज़र के अपने मेलबॉक्स के बजाय किसी सपोर्ट उपनाम से आएं, तो ट्रिगर पर Org-Wide Email Address Id फ़ील्ड को Organization-Wide Email Address के Id पर सेट करें (Setup > Organization-Wide Addresses > पते पर क्लिक करें > URL से Id कॉपी करें)। Run As यूज़र के अपने पते से भेजने के लिए इसे खाली छोड़ दें।
  • ट्रिगर पर Email-to-Case Routing Address(es) फ़ील्ड को अपने org के Email-to-Case पते पर सेट करें (एक से अधिक पते होने पर कॉमा से अलग करें, Setup > Email-to-Case)। इसके बिना, इंटीग्रेशन ग्राहक के ईमेल के To पते से रूटिंग पते का अनुमान लगाने की कोशिश करता है। इसमें वे Cases छूट जाते हैं जिनमें आपका रूटिंग पता मुख्य प्राप्तकर्ता के बजाय सिर्फ़ CC में था — ऐसी स्थिति में जवाब में उसे फिर से CC करने पर एजेंट अपने ही संदेश पर दोबारा ट्रिगर हो जाएगा।

अगर ग्राहक के org में ये कॉन्फ़िगर नहीं हैं, तो ईमेल भेजने में विफलता की स्थिति में सार्वजनिक Case Comment पोस्ट किया जाता है, ताकि कोई जवाब बिना सूचना के छूट न जाए — लेकिन ऊपर दिया गया सेटअप पूरा होने तक ग्राहक को वह ईमेल से नहीं मिलेगा।

सुरक्षा संबंधी बातें

  • सभी API कॉल के लिए HTTPS एंडपॉइंट इस्तेमाल करें।
  • सुनिश्चित करें कि Salesforce में सही फ़ील्ड-लेवल सुरक्षा कॉन्फ़िगर की गई है।
  • Run As यूज़र की अनुमतियां तय करती हैं कि इंटीग्रेशन किस डेटा तक पहुंच सकता है — इन्हें उसी अनुसार सीमित रखें।
  • API एक्सेस और उपयोग का नियमित रूप से ऑडिट करें।

उपयोगी लिंक