HubSpot konektor
HubSpot konektor
Prepoj svoj HubSpot CRM s Brevo cez Tajo pre obojsmernú synchronizáciu kontaktov, sledovanie obchodov, dáta o zapojení a zjednotenú marketingovú automatizáciu na oboch platformách.
Prehľad
| Vlastnosť | Hodnota |
|---|---|
| Platforma | HubSpot |
| Kategória | CRM |
| Zložitosť nastavenia | Stredná |
| Oficiálna integrácia | Áno |
| Synchronizované dáta | Kontakty, Spoločnosti, Obchody, Tickety, Udalosti |
| API Base URL | https://api.hubapi.com |
Funkcie
- Obojsmerná synchronizácia kontaktov - Udržiavaj kontakty synchrónne medzi HubSpot a Brevo v reálnom čase
- Sledovanie pipeline obchodov - Synchronizuj fázy a hodnoty obchodov pre segmentáciu podľa príjmov
- Synchronizácia dát spoločností - Priraď kontakty k záznamom spoločností a firmografickým dátam
- Integrácia ticketov - Sleduj support tickety pre hodnotenie zdravia zákazníka
- Sledovanie zapojenia - Synchronizuj otvorenia e-mailov, kliknutia, stretnutia, hovory a poznámky
- Podpora vlastných objektov - Namapuj vlastné objekty HubSpot na atribúty Brevo
- Spúšťače workflowov - Použi zmeny životného cyklu v HubSpot na spúšťanie automatizácií v Brevo
- Webhook udalosti - Notifikácie v reálnom čase o zmenách dát v CRM
Predpoklady
Predtým, než začneš, uisti sa, že máš:
- HubSpot účet (Free, Starter, Professional alebo Enterprise)
- Súkromnú alebo OAuth aplikáciu v HubSpot s požadovanými scopes
- Brevo účet s API prístupom
- Tajo účet
Autentifikácia
Prístupový token súkromnej aplikácie (odporúčané)
Vytvor súkromnú aplikáciu v HubSpot pre priamy prístup k API s jemnou kontrolou scopes.
- Choď do HubSpot Settings > Integrations > Private Apps
- Vytvor novú súkromnú aplikáciu
- Nakonfiguruj požadované scopes
- Skopíruj prístupový 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
Použi OAuth 2.0 pre integrácie s viacerými účtami, ktoré vyžadujú autorizáciu používateľa.
# Authorization URLhttps://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}Požadované scopes
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.deals.readcrm.objects.deals.writecrm.objects.custom.readcrm.schemas.custom.readKonfigurácia
Základné nastavenie
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: 12Mapovanie polí
Namapuj vlastnosti HubSpot na atribúty kontaktov v Brevo:
Predvolené mapovania
| Parameter | Type | Description |
|---|---|---|
email required | string | E-mail kontaktu (primárny identifikátor) |
firstname optional | string | Mapuje sa na atribút FIRSTNAME v Brevo |
lastname optional | string | Mapuje sa na atribút LASTNAME v Brevo |
phone optional | string | Mapuje sa na atribút SMS pre WhatsApp/SMS |
company optional | string | Názov priradenej spoločnosti |
lifecyclestage optional | string | Fáza životného cyklu v HubSpot (subscriber, lead, MQL, SQL, customer) |
hs_lead_status optional | string | Stav kvalifikácie leadu |
hubspot_owner_id optional | string | ID priradeného obchodného vlastníka |
Mapovanie vlastných vlastností
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 endpointy
CRM objekty
| Metóda | Endpoint | Popis |
|---|---|---|
GET | /crm/v3/objects/contacts | Zoznam kontaktov |
POST | /crm/v3/objects/contacts | Vytvorenie kontaktu |
PATCH | /crm/v3/objects/contacts/{id} | Aktualizácia kontaktu |
GET | /crm/v3/objects/companies | Zoznam spoločností |
GET | /crm/v3/objects/deals | Zoznam obchodov |
POST | /crm/v3/objects/deals | Vytvorenie obchodu |
GET | /crm/v3/objects/tickets | Zoznam ticketov |
Asociácie
| Metóda | Endpoint | Popis |
|---|---|---|
GET | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} | Získanie asociácií |
PUT | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} | Vytvorenie asociácie |
Zapojenia
| Metóda | Endpoint | Popis |
|---|---|---|
GET | /crm/v3/objects/calls | Zoznam hovorov |
GET | /crm/v3/objects/emails | Zoznam e-mailových zapojení |
GET | /crm/v3/objects/meetings | Zoznam stretnutí |
GET | /crm/v3/objects/notes | Zoznam poznámok |
GET | /crm/v3/objects/tasks | Zoznam úloh |
Udalosti
Udalosti kontaktov
| Udalosť | Trigger | Prípad použitia |
|---|---|---|
contact.creation | Vytvorenie nového kontaktu | Spustenie welcome flow |
contact.propertyChange | Aktualizácia vlastnosti kontaktu | Synchronizácia atribútov |
contact.merge | Zlúčenie kontaktov | Správa deduplikácie |
contact.deletion | Odstránenie kontaktu | Vyčistenie v Brevo |
Udalosti obchodov
| Udalosť | Trigger | Prípad použitia |
|---|---|---|
deal.creation | Vytvorenie nového obchodu | Notifikácia predaja |
deal.propertyChange | Zmena fázy obchodu | Automatizácia pipeline |
deal.deletion | Odstránenie obchodu | Reportovanie príjmov |
Udalosti spoločností
| Udalosť | Trigger | Prípad použitia |
|---|---|---|
company.creation | Pridanie novej spoločnosti | Account-based marketing |
company.propertyChange | Aktualizácia dát spoločnosti | Synchronizácia firmografických dát |
Ukážky kódu
Inicializácia konektora
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});Spustenie synchronizácie kontaktov
// 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// }Spracovanie webhook udalostí
// 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');});Obmedzenia rýchlosti
HubSpot uplatňuje obmedzenia rýchlosti pre každú súkromnú alebo OAuth aplikáciu:
| Plán | Obmedzenie | Burst limit |
|---|---|---|
| Free/Starter | 100 požiadaviek/10 sekúnd | 150 požiadaviek/10 sekúnd |
| Professional | 150 požiadaviek/10 sekúnd | 200 požiadaviek/10 sekúnd |
| Enterprise | 200 požiadaviek/10 sekúnd | 250 požiadaviek/10 sekúnd |
| API doplnok | 200 požiadaviek/10 sekúnd | 250 požiadaviek/10 sekúnd |
Ďalšie limity:
- Search API: 5 požiadaviek/sekundu na aplikáciu
- Dávkové operácie: 100 záznamov na dávkovú požiadavku
- Denný limit: 500 000 požiadaviek/deň (OAuth aplikácie)
Spracovanie obmedzení rýchlosti
HubSpot vracia odpoveď 429 Too Many Requests pri prekročení limitov. Použi exponenciálny backoff a sleduj hlavičky X-HubSpot-RateLimit-*.
Riešenie problémov
Bežné problémy
| Problém | Príčina | Riešenie |
|---|---|---|
| 401 Unauthorized | Vypršaný alebo neplatný token | Znovu vygeneruj token súkromnej aplikácie alebo obnov OAuth token |
| Kontakt nie je synchronizovaný | Chýbajúca vlastnosť e-mail | Kontakty HubSpot vyžadujú e-mail pre synchronizáciu s Brevo |
| Duplicitné kontakty | Žiadne pravidlo deduplikácie | Nakonfiguruj pravidlá zlúčenia v HubSpot |
| Webhook nebol prijatý | Predplatné nie je aktívne | Znovu zaregistruj webhook predplatné |
| Vlastnosť nie je namapovaná | Vlastná vlastnosť nie je vytvorená | Najprv vytvor vlastnosť v HubSpot |
Debug režim
Zapni verbose logovanie:
connectors: hubspot: debug: true log_level: verbose log_webhooks: trueTest pripojenia
tajo connectors test hubspot# ✓ API connection successful# ✓ Contacts readable# ✓ Companies readable# ✓ Deals readable# ✓ Webhooks registeredOdporúčané postupy
- Použi súkromné aplikácie namiesto API kľúčov - API kľúče sú zastarané; použi súkromné aplikácie pre lepšiu bezpečnosť
- Implementuj obojsmernú synchronizáciu opatrne - Vyhni sa nekonečným slučkám sledovaním zdroja synchronizácie
- Namapuj fázy životného cyklu - Použi fázy životného cyklu HubSpot na segmentáciu kontaktov v Brevo
- Dávkuj API požiadavky - Použi dávkové endpointy pre hromadné operácie, aby si zostal v limitoch
- Sleduj doručenie webhookov - Nastav logiku opakovaných pokusov a spracovanie nedoručených správ
- Použi inkrementálnu synchronizáciu - Synchronizuj iba zmenené záznamy pomocou vlastnosti
lastmodifieddate
Bezpečnosť
- Tokeny súkromných aplikácií - Tokeny s obmedzeným prístupom a jemnými oprávneniami
- OAuth 2.0 - Priemyselne štandardná autorizácia s rotáciou refresh tokenov
- Podpisy webhookov - Overenie podpisu na základe HMAC (v3)
- TLS šifrovanie - Všetka API komunikácia šifrovaná počas prenosu
- Scoped oprávnenia - Minimálny požadovaný prístup scope na integráciu