HubSpot कनेक्टर
HubSpot कनेक्टर
द्विदिशीय कॉन्टैक्ट सिंक, डील ट्रैकिंग, एंगेजमेंट डेटा, और दोनों प्लेटफ़ॉर्म्स पर एकीकृत मार्केटिंग ऑटोमेशन के लिए अपने HubSpot CRM को Tajo के माध्यम से Brevo से कनेक्ट करें।
अवलोकन
| गुण | मान |
|---|---|
| प्लेटफ़ॉर्म | HubSpot |
| श्रेणी | CRM |
| सेटअप जटिलता | मध्यम |
| आधिकारिक इंटीग्रेशन | हां |
| सिंक किया गया डेटा | कॉन्टैक्ट्स, कंपनियां, डील्स, टिकट्स, इवेंट्स |
| API Base URL | https://api.hubapi.com |
विशेषताएं
- द्विदिशीय कॉन्टैक्ट सिंक - HubSpot और Brevo के बीच कॉन्टैक्ट्स को रीयल-टाइम में सिंक रखें
- डील पाइपलाइन ट्रैकिंग - राजस्व-आधारित सेगमेंटेशन के लिए डील स्टेज और मान सिंक करें
- कंपनी डेटा सिंक - कॉन्टैक्ट्स को कंपनी रिकॉर्ड्स और फर्मोग्राफिक डेटा से जोड़ें
- टिकट इंटीग्रेशन - ग्राहक स्वास्थ्य स्कोरिंग के लिए सपोर्ट टिकट ट्रैक करें
- एंगेजमेंट ट्रैकिंग - ईमेल ओपन, क्लिक, मीटिंग्स, कॉल्स, और नोट्स सिंक करें
- कस्टम ऑब्जेक्ट समर्थन - HubSpot कस्टम ऑब्जेक्ट्स को Brevo एट्रिब्यूट्स में मैप करें
- वर्कफ़्लो ट्रिगर्स - Brevo ऑटोमेशन ट्रिगर करने के लिए HubSpot लाइफसाइकल स्टेज परिवर्तनों का उपयोग करें
- वेबहुक इवेंट्स - CRM डेटा परिवर्तनों के लिए रीयल-टाइम सूचनाएं
पूर्वावश्यकताएं
शुरू करने से पहले, सुनिश्चित करें कि आपके पास है:
- एक HubSpot खाता (Free, Starter, Professional, या Enterprise)
- आवश्यक स्कोप्स के साथ एक HubSpot private app या OAuth app
- API एक्सेस वाला एक Brevo खाता
- एक Tajo खाता
प्रमाणीकरण
Private App Access Token (अनुशंसित)
ग्रैन्युलर स्कोप नियंत्रण के साथ सीधे API एक्सेस के लिए HubSpot में एक private app बनाएं।
- HubSpot Settings > Integrations > Private Apps पर जाएं
- एक नया private app बनाएं
- आवश्यक स्कोप्स कॉन्फ़िगर करें
- access token कॉपी करें
curl -X GET "https://api.hubapi.com/crm/v3/objects/contacts" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json"OAuth 2.0
उपयोगकर्ता प्राधिकरण की आवश्यकता वाले मल्टी-अकाउंट इंटीग्रेशन के लिए OAuth 2.0 का उपयोग करें।
# Authorization URLhttps://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}आवश्यक स्कोप्स
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.deals.readcrm.objects.deals.writecrm.objects.custom.readcrm.schemas.custom.readकॉन्फ़िगरेशन
बुनियादी सेटअप
connectors: hubspot: enabled: true access_token: "${HUBSPOT_ACCESS_TOKEN}"
# Data sync options sync: contacts: true companies: true deals: true tickets: true engagements: true
# Sync direction direction: bidirectional # or 'hubspot_to_brevo' | 'brevo_to_hubspot'
# List assignment in Brevo lists: all_contacts: 10 qualified_leads: 11 customers: 12फ़ील्ड मैपिंग
HubSpot प्रॉपर्टीज़ को Brevo कॉन्टैक्ट एट्रिब्यूट्स में मैप करें:
डिफ़ॉल्ट मैपिंग्स
| Parameter | Type | Description |
|---|---|---|
email required | string | कॉन्टैक्ट ईमेल (प्राथमिक पहचानकर्ता) |
firstname optional | string | Brevo में FIRSTNAME एट्रिब्यूट से मैप होता है |
lastname optional | string | Brevo में LASTNAME एट्रिब्यूट से मैप होता है |
phone optional | string | WhatsApp/SMS के लिए SMS एट्रिब्यूट से मैप होता है |
company optional | string | संबद्ध कंपनी का नाम |
lifecyclestage optional | string | HubSpot लाइफसाइकल स्टेज (subscriber, lead, MQL, SQL, customer) |
hs_lead_status optional | string | लीड योग्यता स्थिति |
hubspot_owner_id optional | string | असाइन किया गया sales owner ID |
कस्टम प्रॉपर्टी मैपिंग
field_mapping: # Standard fields email: email firstname: FIRSTNAME lastname: LASTNAME phone: SMS
# CRM fields lifecyclestage: LIFECYCLE_STAGE hs_lead_status: LEAD_STATUS company: COMPANY_NAME
# Deal metrics hs_total_deal_value: DEAL_VALUE num_associated_deals: DEAL_COUNT
# Custom properties preferred_channel: PREFERRED_CHANNEL customer_segment: SEGMENTAPI एंडपॉइंट्स
CRM ऑब्जेक्ट्स
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
GET | /crm/v3/objects/contacts | कॉन्टैक्ट्स सूचीबद्ध करें |
POST | /crm/v3/objects/contacts | एक कॉन्टैक्ट बनाएं |
PATCH | /crm/v3/objects/contacts/{id} | एक कॉन्टैक्ट अपडेट करें |
GET | /crm/v3/objects/companies | कंपनियां सूचीबद्ध करें |
GET | /crm/v3/objects/deals | डील्स सूचीबद्ध करें |
POST | /crm/v3/objects/deals | एक डील बनाएं |
GET | /crm/v3/objects/tickets | टिकट्स सूचीबद्ध करें |
एसोसिएशन्स
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
GET | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} | एसोसिएशन्स प्राप्त करें |
PUT | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} | एसोसिएशन बनाएं |
एंगेजमेंट्स
| मेथड | एंडपॉइंट | विवरण |
|---|---|---|
GET | /crm/v3/objects/calls | कॉल एंगेजमेंट्स सूचीबद्ध करें |
GET | /crm/v3/objects/emails | ईमेल एंगेजमेंट्स सूचीबद्ध करें |
GET | /crm/v3/objects/meetings | मीटिंग्स सूचीबद्ध करें |
GET | /crm/v3/objects/notes | नोट्स सूचीबद्ध करें |
GET | /crm/v3/objects/tasks | टास्क्स सूचीबद्ध करें |
इवेंट्स
कॉन्टैक्ट इवेंट्स
| इवेंट | ट्रिगर | उपयोग मामला |
|---|---|---|
contact.creation | नया कॉन्टैक्ट बनाया गया | स्वागत फ़्लो ट्रिगर |
contact.propertyChange | कॉन्टैक्ट प्रॉपर्टी अपडेट | एट्रिब्यूट सिंक |
contact.merge | कॉन्टैक्ट्स मर्ज हुए | डुप्लिकेट हैंडलिंग |
contact.deletion | कॉन्टैक्ट हटाया गया | Brevo में क्लीनअप |
डील इवेंट्स
| इवेंट | ट्रिगर | उपयोग मामला |
|---|---|---|
deal.creation | नई डील बनाई गई | सेल्स सूचना |
deal.propertyChange | डील स्टेज बदला | पाइपलाइन ऑटोमेशन |
deal.deletion | डील हटाई गई | राजस्व रिपोर्टिंग |
कंपनी इवेंट्स
| इवेंट | ट्रिगर | उपयोग मामला |
|---|---|---|
company.creation | नई कंपनी जोड़ी गई | अकाउंट-आधारित मार्केटिंग |
company.propertyChange | कंपनी डेटा अपडेट | फर्मोग्राफिक सिंक |
कोड उदाहरण
कनेक्टर प्रारंभ करें
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect HubSpotawait tajo.connectors.connect('hubspot', { accessToken: process.env.HUBSPOT_ACCESS_TOKEN});कॉन्टैक्ट सिंक चलाएं
// Full bidirectional syncawait tajo.connectors.sync('hubspot', { type: 'full', resources: ['contacts', 'companies', 'deals'], direction: 'bidirectional', since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('hubspot');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 34200,// companiesSynced: 5100,// dealsSynced: 2340// }वेबहुक इवेंट्स हैंडल करें
// Handle HubSpot webhook notificationsapp.post('/webhooks/hubspot', async (req, res) => { const signature = req.get('X-HubSpot-Signature-v3');
// Verify webhook signature if (!verifyHubSpotSignature(req.body, signature)) { return res.status(401).send('Unauthorized'); }
for (const event of req.body) { await tajo.connectors.handleWebhook('hubspot', { eventType: event.subscriptionType, objectId: event.objectId, propertyName: event.propertyName, propertyValue: event.propertyValue }); }
res.status(200).send('OK');});दर सीमाएं
HubSpot private app या OAuth app के अनुसार दर सीमाएं लागू करता है:
| प्लान | दर सीमा | बर्स्ट सीमा |
|---|---|---|
| Free/Starter | 100 अनुरोध/10 सेकंड | 150 अनुरोध/10 सेकंड |
| Professional | 150 अनुरोध/10 सेकंड | 200 अनुरोध/10 सेकंड |
| Enterprise | 200 अनुरोध/10 सेकंड | 250 अनुरोध/10 सेकंड |
| API add-on | 200 अनुरोध/10 सेकंड | 250 अनुरोध/10 सेकंड |
अतिरिक्त सीमाएं:
- Search API: 5 अनुरोध/सेकंड प्रति ऐप
- बैच ऑपरेशन्स: प्रति बैच अनुरोध 100 रिकॉर्ड्स
- दैनिक सीमा: 500,000 अनुरोध/दिन (OAuth ऐप्स)
दर सीमा हैंडलिंग
जब सीमाएं पार हो जाती हैं तो HubSpot 429 Too Many Requests प्रतिक्रिया देता है। एक्सपोनेंशियल बैकऑफ का उपयोग करें और X-HubSpot-RateLimit-* हेडर्स की निगरानी करें।
समस्या निवारण
सामान्य समस्याएं
| समस्या | कारण | समाधान |
|---|---|---|
| 401 Unauthorized | समाप्त या अमान्य टोकन | private app टोकन पुन: जनरेट करें या OAuth टोकन रीफ्रेश करें |
| कॉन्टैक्ट सिंक नहीं हुआ | ईमेल प्रॉपर्टी गायब | HubSpot कॉन्टैक्ट्स के लिए Brevo सिंक हेतु ईमेल आवश्यक है |
| डुप्लिकेट कॉन्टैक्ट्स | कोई डिडुप्लीकेशन नियम नहीं | HubSpot में मर्ज नियम कॉन्फ़िगर करें |
| वेबहुक प्राप्त नहीं हुआ | सब्सक्रिप्शन सक्रिय नहीं | वेबहुक सब्सक्रिप्शन पुनः पंजीकृत करें |
| प्रॉपर्टी मैप नहीं हुई | कस्टम प्रॉपर्टी नहीं बनाई गई | पहले HubSpot में प्रॉपर्टी बनाएं |
डीबग मोड
विस्तृत लॉगिंग सक्षम करें:
connectors: hubspot: debug: true log_level: verbose log_webhooks: trueकनेक्शन परीक्षण करें
tajo connectors test hubspot# ✓ API connection successful# ✓ Contacts readable# ✓ Companies readable# ✓ Deals readable# ✓ Webhooks registeredसर्वोत्तम प्रथाएं
- API keys के बजाय private apps का उपयोग करें - API keys अप्रचलित हैं; बेहतर सुरक्षा के लिए private apps का उपयोग करें
- द्विदिशीय सिंक सावधानी से लागू करें - सिंक स्रोत ट्रैक करके अनंत लूप से बचें
- लाइफसाइकल स्टेज मैप करें - Brevo में कॉन्टैक्ट्स को सेगमेंट करने के लिए HubSpot लाइफसाइकल स्टेज का उपयोग करें
- बैच API अनुरोध - दर सीमाओं के भीतर रहने के लिए बल्क ऑपरेशन्स के लिए बैच एंडपॉइंट्स का उपयोग करें
- वेबहुक डिलीवरी की निगरानी करें - रीट्राई लॉजिक और डेड लेटर हैंडलिंग सेट करें
- इंक्रीमेंटल सिंक का उपयोग करें -
lastmodifieddateप्रॉपर्टी का उपयोग करके केवल बदले गए रिकॉर्ड्स सिंक करें
सुरक्षा
- Private App Tokens - ग्रैन्युलर अनुमतियों के साथ स्कोप्ड एक्सेस टोकन
- OAuth 2.0 - रीफ्रेश टोकन रोटेशन के साथ इंडस्ट्री-स्टैंडर्ड प्राधिकरण
- वेबहुक सिग्नेचर - HMAC-आधारित सिग्नेचर सत्यापन (v3)
- TLS एन्क्रिप्शन - ट्रांजिट में सभी API संचार एन्क्रिप्टेड
- स्कोप्ड अनुमतियां - प्रति इंटीग्रेशन न्यूनतम आवश्यक स्कोप एक्सेस