CRM एकीकरण: Salesforce और HubSpot
ग्राहक इतिहास प्राप्त करना, इंटरैक्शन की लॉगिंग करना और CRM रिकॉर्ड अपडेट करना।
CRM एकीकरण: Salesforce और HubSpot, CoddyKit पर AI एजेंट का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह AI एजेंट सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। AI एजेंट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
CRM एकीकरण क्यों महत्वपूर्ण है
जो ग्राहक सेवा एजेंट ग्राहक का इतिहास नहीं देख सकता, वह बिना पूरी जानकारी के काम कर रहा होता है। Salesforce और HubSpot जैसे CRM सिस्टम ग्राहक का पूरा अभिलेख रखते हैं: पिछले टिकट, खरीदारी, सदस्यता स्तर और खाते से जुड़े नोट्स।
CRM के साथ एकीकरण करने से एजेंट प्रतिक्रियाओं को व्यक्तिगत बना सकता है और समस्याओं का तेज़ी से समाधान कर सकता है।
simple-salesforce के साथ Salesforce से कनेक्ट करना
simple-salesforce Salesforce REST एपीआई के लिए सबसे लोकप्रिय Python लाइब्रेरी है। उपयोगकर्ता नाम/पासवर्ड/सुरक्षा टोकन या OAuth कनेक्टेड ऐप प्रवाह के ज़रिए कनेक्ट करें।
from simple_salesforce import Salesforce
sf = Salesforce(
username='agent@company.com',
password='YOUR_SF_PASSWORD',
security_token='YOUR_SF_TOKEN',
domain='login' # use 'test' for sandbox
)
print('Connected to Salesforce org:', sf.base_url)SOQL क्वेरी: ग्राहक अभिलेख प्राप्त करना
Salesforce Object Query Language (SOQL), SQL जैसी है, लेकिन Salesforce ऑब्जेक्ट पर काम करती है। इसका उपयोग ईमेल से किसी संपर्क को खोजने और उसके खाते का विवरण प्राप्त करने के लिए करें।
def get_customer_by_email(sf, email: str) -> dict | None:
query = (
f"SELECT Id, FirstName, LastName, Email, AccountId, "
f"Account.Name, Account.Type "
f"FROM Contact "
f"WHERE Email = '{email}' "
f"LIMIT 1"
)
result = sf.query(query)
if result['totalSize'] == 0:
return None
record = result['records'][0]
return {
'contact_id': record['Id'],
'name': f"{record['FirstName']} {record['LastName']}",
'account_id': record['AccountId'],
'account_name': record['Account']['Name']
}
if __name__ == '__main__':
class FakeSF:
def query(self, query):
return {
'totalSize': 1,
'records': [{
'Id': '003ABC', 'FirstName': 'Jane', 'LastName': 'Doe',
'AccountId': '001XYZ',
'Account': {'Name': 'Acme Corp', 'Type': 'Customer'},
}],
}
customer = get_customer_by_email(FakeSF(), 'jane@acme.com')
print(f"Found customer: {customer['name']} at {customer['account_name']}")
Salesforce से सहायता केस का इतिहास प्राप्त करना
ग्राहक के पिछले सहायता टिकट प्राप्त करने के लिए Case ऑब्जेक्ट पर क्वेरी करें। केस की स्थिति और समाधान भी शामिल करें, ताकि एजेंट को वही प्रश्न दोबारा न पूछने पड़ें।
def get_case_history(sf, contact_id: str, limit: int = 10) -> list:
query = (
f"SELECT Id, CaseNumber, Subject, Status, "
f"CreatedDate, ClosedDate, Resolution__c "
f"FROM Case "
f"WHERE ContactId = '{contact_id}' "
f"ORDER BY CreatedDate DESC "
f"LIMIT {limit}"
)
result = sf.query(query)
return [
{
'case_number': r['CaseNumber'],
'subject': r['Subject'],
'status': r['Status'],
'created': r['CreatedDate'][:10],
'resolution': r.get('Resolution__c')
}
for r in result['records']
]
if __name__ == '__main__':
class FakeSF:
def query(self, query):
return {'records': [{
'Id': '500A', 'CaseNumber': '00001234', 'Subject': 'Login issue',
'Status': 'Closed', 'CreatedDate': '2026-07-01T10:00:00Z',
'ClosedDate': '2026-07-02T09:00:00Z', 'Resolution__c': 'Reset password',
}]}
for case in get_case_history(FakeSF(), '003ABC'):
print(f"Case {case['case_number']}: {case['subject']} ({case['status']})")
Salesforce में नया Case बनाना
जब एजेंट बातचीत से नया सहायता टिकट बनाता है, तो नया Case अभिलेख जोड़ें। उसे संपर्क और खाते से जोड़ें, ताकि वह ग्राहक की समयरेखा में दिखाई दे।
def create_case(sf, contact_id: str, account_id: str,
subject: str, description: str, priority: str = 'Medium') -> str:
result = sf.Case.create({
'ContactId': contact_id,
'AccountId': account_id,
'Subject': subject,
'Description': description,
'Priority': priority,
'Status': 'New',
'Origin': 'AI Agent'
})
case_id = result['id']
print(f'Created Case: {case_id}')
return case_id
if __name__ == '__main__':
class FakeCase:
def create(self, data):
return {'id': '500NEW01'}
class FakeSF:
Case = FakeCase()
create_case(FakeSF(), '003ABC', '001XYZ', 'Cannot reset password', 'Customer locked out after 3 attempts')
HubSpot से कनेक्ट करना
hubspot-api-client लाइब्रेरी HubSpot के REST एपीआई को सरल रूप में उपलब्ध कराती है। निजी ऐप के एक्सेस टोकन से प्रमाणीकरण करें (सर्वर-से-सर्वर एकीकरण के लिए OAuth की आवश्यकता नहीं होती)।
from hubspot import HubSpot
from hubspot.crm.contacts import SimplePublicObjectInput
client = HubSpot(access_token='YOUR_HUBSPOT_PRIVATE_APP_TOKEN')
print('HubSpot client ready')HubSpot संपर्क खोजना
ईमेल से ग्राहक खोजने के लिए संपर्क खोज एपीआई का उपयोग करें। प्रतिक्रिया में संपर्क के सभी गुणधर्म शामिल होते हैं, जिनमें जीवनचक्र चरण, सौदा संबद्धताएँ और कस्टम फ़ील्ड भी शामिल हैं।
from hubspot.crm.contacts import PublicObjectSearchRequest
def get_hubspot_contact(client, email: str) -> dict | None:
search_request = PublicObjectSearchRequest(
filter_groups=[{
'filters': [{
'propertyName': 'email',
'operator': 'EQ',
'value': email
}]
}],
properties=['firstname', 'lastname', 'email',
'lifecyclestage', 'hs_object_id']
)
response = client.crm.contacts.search_api.do_search(
public_object_search_request=search_request
)
if response.total == 0:
return None
contact = response.results[0]
return {'id': contact.id, **contact.properties}HubSpot टिकट का इतिहास प्राप्त करना
HubSpot सहायता टिकटों को अपने tickets ऑब्जेक्ट में संग्रहीत करता है। संबद्धता एपीआई का उपयोग करके किसी संपर्क से जुड़े टिकट प्राप्त करें।
def get_hubspot_tickets(client, contact_id: str) -> list:
assoc = client.crm.contacts.associations_api.get_all(
contact_id,
to_object_type='tickets'
)
ticket_ids = [r.id for r in assoc.results]
if not ticket_ids:
return []
tickets = []
for tid in ticket_ids[:10]: # limit to 10 most recent
ticket = client.crm.tickets.basic_api.get_by_id(
tid,
properties=['subject', 'hs_ticket_priority',
'hs_pipeline_stage', 'createdate']
)
tickets.append({
'id': tid,
'subject': ticket.properties.get('subject'),
'priority': ticket.properties.get('hs_ticket_priority'),
'stage': ticket.properties.get('hs_pipeline_stage')
})
return tickets
if __name__ == '__main__':
from types import SimpleNamespace
class AssocApi:
def get_all(self, contact_id, to_object_type):
return SimpleNamespace(results=[SimpleNamespace(id='t1'), SimpleNamespace(id='t2')])
class TicketsBasicApi:
_data = {
't1': {'subject': 'Cannot login', 'hs_ticket_priority': 'HIGH', 'hs_pipeline_stage': '1'},
't2': {'subject': 'Refund request', 'hs_ticket_priority': 'MEDIUM', 'hs_pipeline_stage': '2'},
}
def get_by_id(self, tid, properties):
return SimpleNamespace(properties=self._data[tid])
fake_client = SimpleNamespace(crm=SimpleNamespace(
contacts=SimpleNamespace(associations_api=AssocApi()),
tickets=SimpleNamespace(basic_api=TicketsBasicApi()),
))
for t in get_hubspot_tickets(fake_client, 'contact_1'):
print(f"Ticket {t['id']}: {t['subject']} [{t['priority']}]")
HubSpot टिकट बनाना
एक ही कार्यप्रवाह में नया टिकट जोड़ें और उसे संपर्क से संबद्ध करें। इससे एजेंट के अनुरोधों को संभालने के दौरान ग्राहक का CRM अभिलेख अपने-आप अद्यतन रहता है।
from hubspot.crm.tickets import SimplePublicObjectInputForCreate
from hubspot.crm.associations.v4.models import AssociationSpec
def create_hubspot_ticket(client, contact_id: str,
subject: str, description: str) -> str:
ticket_input = SimplePublicObjectInputForCreate(
properties={
'subject': subject,
'content': description,
'hs_ticket_priority': 'MEDIUM',
'hs_pipeline': 'support_pipeline',
'hs_pipeline_stage': 'new'
},
associations=[{
'types': [AssociationSpec(association_category='HUBSPOT_DEFINED',
association_type_id=16)],
'to': {'id': contact_id}
}]
)
ticket = client.crm.tickets.basic_api.create(
simple_public_object_input_for_create=ticket_input
)
return ticket.idसंपर्क अभिलेख अद्यतन करना
सफल समाधान के बाद, संपर्क के अभिलेख में नोट और जीवनचक्र चरण में हुए बदलाव जोड़कर उसे अद्यतन करें। इससे एजेंट के किसी मैन्युअल प्रयास के बिना CRM अद्यतन रहता है।
def update_hubspot_contact(client, contact_id: str, updates: dict) -> None:
client.crm.contacts.basic_api.update(
contact_id=contact_id,
simple_public_object_input=SimplePublicObjectInput(
properties=updates
)
)
# After resolving a billing issue:
update_hubspot_contact(client, 'CONTACT_123', {
'hs_lead_status': 'CONNECTED',
'notes_last_contacted': 'Resolved billing duplicate charge issue via AI agent.'
})एजेंट के लिए एकीकृत CRM संदर्भ
एक ऐसा फ़ंक्शन बनाएँ जो कॉन्फ़िगर किए गए CRM से ग्राहक का संदर्भ प्राप्त करे। एजेंट हर बातचीत की शुरुआत में इसे कॉल करता है, ताकि अपनी प्रतिक्रियाओं को व्यक्तिगत बना सके।
def get_customer_context(email: str, crm: str = 'salesforce') -> dict:
if crm == 'salesforce':
customer = get_customer_by_email(sf, email)
if not customer:
return {'found': False}
cases = get_case_history(sf, customer['contact_id'])
return {'found': True, 'customer': customer, 'history': cases}
elif crm == 'hubspot':
customer = get_hubspot_contact(client, email)
if not customer:
return {'found': False}
tickets = get_hubspot_tickets(client, customer['id'])
return {'found': True, 'customer': customer, 'history': tickets}
return {'found': False, 'error': 'Unknown CRM'}simple-salesforce लाइब्रेरी के ज़रिए अभिलेख प्राप्त करने के लिए Salesforce की कौन-सी क्वेरी भाषा उपयोग की जाती है?
Salesforce अभिलेख प्राप्त करने के लिए अपनी स्वयं की क्वेरी भाषा का उपयोग करता है। ग्राहक का इतिहास खोजने वाले एजेंट टूल बनाने के लिए यह जानना आवश्यक है।
CRM एकीकरण का पुनरावलोकन
Salesforce (simple-salesforce + SOQL) या HubSpot (hubspot-api-client) के साथ एकीकरण करने से आपके ग्राहक सेवा एजेंट को ग्राहक का पूरा संदर्भ मिलता है: इतिहास, केस, टिकट और खाते का डेटा।
हमेशा एकीकृत get_customer_context() फ़ंक्शन बनाएँ, ताकि प्रतिक्रिया उत्पन्न करने से पहले एजेंट का प्रॉम्प्ट प्रासंगिक इतिहास से समृद्ध हो जाए।
एआई शिक्षक के साथ AI एजेंट सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 60
- पाठ
- 239
अक्सर पूछे जाने वाले प्रश्न
क्या “CRM एकीकरण: Salesforce और HubSpot” पाठ निःशुल्क है?
हाँ—“CRM एकीकरण: Salesforce और HubSpot” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और AI एजेंट पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। AI एजेंट पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“CRM एकीकरण: Salesforce और HubSpot” में मैं क्या सीखूँगा?
ग्राहक इतिहास प्राप्त करना, इंटरैक्शन की लॉगिंग करना और CRM रिकॉर्ड अपडेट करना। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ AI एजेंट का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या AI एजेंट शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर AI एजेंट शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“CRM एकीकरण: Salesforce और HubSpot” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस AI एजेंट पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर AI एजेंट पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- टिकट रूटिंग और एस्केलेशन तर्क
- CRM एकीकरण: Salesforce और HubSpot
- मानव हस्तांतरण प्रोटोकॉल
- ग्राहक संदर्भ और इतिहास प्रबंधन