HubSpot Connector
HubSpot Connector
Poveži svoj HubSpot CRM z Brevo prek Tajo za dvosmerno sinhronizacijo stikov, sledenje poslom, podatke o angažiranosti in enotno marketinško avtomatizacijo na obeh platformah.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | HubSpot |
| Kategorija | CRM |
| Zahtevnost nastavitve | Srednja |
| Uradna integracija | Da |
| Sinhronizirani podatki | Stiki, podjetja, posli, zahtevki, dogodki |
| Osnovni URL API | https://api.hubapi.com |
Funkcionalnosti
- Dvosmerna sinhronizacija stikov – stiki so sinhronizirani med HubSpot in Brevo v realnem času
- Sledenje prodajnim fazam – sinhronizacija faz poslov in vrednosti za segmentacijo na podlagi prihodkov
- Sinhronizacija podatkov o podjetjih – poveži stike z zapisi podjetij in firmografskimi podatki
- Integracija zahtevkov – sledi zahtevkom za podporo za ocenjevanje zdravja strank
- Sledenje angažiranosti – sinhronizacija odpiranj e-mailov, klikov, sestankov, klicev in opomb
- Podpora za objekte po meri – preslikaj objekte po meri HubSpot v atribute Brevo
- Sprožilci delovnih tokov – uporabi spremembe faze življenjskega cikla HubSpot za sprožanje avtomatizacij Brevo
- Webhook dogodki – obvestila v realnem času ob spremembah podatkov v CRM
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Račun HubSpot (Free, Starter, Professional ali Enterprise)
- Zasebno ali OAuth aplikacijo HubSpot z zahtevanimi obsegi
- Brevo račun z dostopom do API
- Tajo račun
Avtentikacija
Žeton za dostop zasebne aplikacije (priporočeno)
Ustvari zasebno aplikacijo v HubSpot za neposreden dostop do API z natančnim nadzorom obsegov.
- Pojdi na HubSpot Settings > Integrations > Private Apps
- Ustvari novo zasebno aplikacijo
- Nastavi zahtevane obsege
- Kopiraj žeton za dostop
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
Uporabi OAuth 2.0 za integracije z več računi, ki zahtevajo pooblastilo uporabnika.
# Authorization URLhttps://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}Zahtevani obsegi
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.deals.readcrm.objects.deals.writecrm.objects.custom.readcrm.schemas.custom.readKonfiguracija
Osnovna nastavitev
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: 12Preslikava polj
Preslikaj lastnosti HubSpot v atribute stikov Brevo:
Privzete preslikave
| Parameter | Type | Description |
|---|---|---|
email required | string | E-mail stika (primarni identifikator) |
firstname optional | string | Preslika se v atribut FIRSTNAME v Brevo |
lastname optional | string | Preslika se v atribut LASTNAME v Brevo |
phone optional | string | Preslika se v atribut SMS za WhatsApp/SMS |
company optional | string | Ime povezanega podjetja |
lifecyclestage optional | string | Faza življenjskega cikla HubSpot (subscriber, lead, MQL, SQL, customer) |
hs_lead_status optional | string | Status kvalifikacije potencialnega kupca |
hubspot_owner_id optional | string | ID dodeljenega lastnika prodaje |
Preslikava lastnosti po meri
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: SEGMENTKončne točke API
CRM objekti
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /crm/v3/objects/contacts | Seznam stikov |
POST | /crm/v3/objects/contacts | Ustvari stik |
PATCH | /crm/v3/objects/contacts/{id} | Posodobi stik |
GET | /crm/v3/objects/companies | Seznam podjetij |
GET | /crm/v3/objects/deals | Seznam poslov |
POST | /crm/v3/objects/deals | Ustvari posel |
GET | /crm/v3/objects/tickets | Seznam zahtevkov |
Asociacije
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} | Pridobi asociacije |
PUT | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} | Ustvari asociacijo |
Angažiranosti
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /crm/v3/objects/calls | Seznam klicev |
GET | /crm/v3/objects/emails | Seznam e-mail angažiranosti |
GET | /crm/v3/objects/meetings | Seznam sestankov |
GET | /crm/v3/objects/notes | Seznam opomb |
GET | /crm/v3/objects/tasks | Seznam nalog |
Dogodki
Dogodki stikov
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
contact.creation | Ustvarjen nov stik | Sprožilec pozdravnega toka |
contact.propertyChange | Posodobljena lastnost stika | Sinhronizacija atributov |
contact.merge | Stiki združeni | Obravnava deduplikacije |
contact.deletion | Stik izbrisan | Čiščenje v Brevo |
Dogodki poslov
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
deal.creation | Ustvarjen nov posel | Obvestilo prodaji |
deal.propertyChange | Spremenjena faza posla | Avtomatizacija prodajnega lijaka |
deal.deletion | Posel odstranjen | Poročanje o prihodkih |
Dogodki podjetij
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
company.creation | Dodano novo podjetje | Marketing na podlagi računov |
company.propertyChange | Posodobljeni podatki podjetja | Sinhronizacija firmografije |
Primeri kode
Inicializacija konektorja
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});Zagon sinhronizacije stikov
// 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// }Obravnava webhook dogodkov
// 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');});Omejitve hitrosti
HubSpot uveljavi omejitve hitrosti glede na zasebno ali OAuth aplikacijo:
| Paket | Omejitev hitrosti | Omejitev za sunke |
|---|---|---|
| Free/Starter | 100 zahtevkov/10 sekund | 150 zahtevkov/10 sekund |
| Professional | 150 zahtevkov/10 sekund | 200 zahtevkov/10 sekund |
| Enterprise | 200 zahtevkov/10 sekund | 250 zahtevkov/10 sekund |
| API dodatek | 200 zahtevkov/10 sekund | 250 zahtevkov/10 sekund |
Dodatne omejitve:
- Search API: 5 zahtevkov/sekundo na aplikacijo
- Paketne operacije: 100 zapisov na paketni zahtevek
- Dnevna omejitev: 500.000 zahtevkov/dan (OAuth aplikacije)
Ravnanje z omejitvami hitrosti
HubSpot vrne odgovor 429 Too Many Requests, ko so omejitve prekoračene. Uporabi eksponentni odlog in spremljaj glave X-HubSpot-RateLimit-*.
Odpravljanje težav
Pogoste težave
| Težava | Vzrok | Rešitev |
|---|---|---|
| 401 Unauthorized | Potekel ali neveljaven žeton | Obnovi žeton zasebne aplikacije ali osveži OAuth žeton |
| Stik ni sinhroniziran | Manjka lastnost e-mail | HubSpot stiki zahtevajo e-mail za sinhronizacijo z Brevo |
| Podvojeni stiki | Brez pravila deduplikacije | Nastavi pravila združevanja v HubSpot |
| Webhook ni prejet | Naročnina ni aktivna | Znova registriraj naročnine na webhooks |
| Lastnost ni preslikana | Lastnost po meri ni ustvarjena | Najprej ustvari lastnost v HubSpot |
Način odpravljanja napak
Omogoči podrobno beleženje:
connectors: hubspot: debug: true log_level: verbose log_webhooks: truePreizkus povezave
tajo connectors test hubspot# ✓ API connection successful# ✓ Contacts readable# ✓ Companies readable# ✓ Deals readable# ✓ Webhooks registeredNajboljše prakse
- Uporabi zasebne aplikacije namesto API ključev – API ključi so zastareli; za boljšo varnost uporabi zasebne aplikacije
- Previdno implementiraj dvostransko sinhronizacijo – prepreči neskončne zanke s sledenjem viru sinhronizacije
- Preslikaj faze življenjskega cikla – z njimi segmentiraj stike v Brevo
- Paketni API zahtevki – za množične operacije uporabi paketne končne točke
- Spremljaj dostavo webhookov – nastavi logiko ponovnih poskusov in obravnavo napak
- Uporabi postopno sinhronizacijo – sinhronizacija samo spremenjenih zapisov z lastnostjo
lastmodifieddate
Varnost
- Žetoni zasebnih aplikacij – žetoni z omejenim dostopom in natančnimi dovoljenji
- OAuth 2.0 – industrijski standard za avtorizacijo z rotacijo žetona za osvežitev
- Podpisi webhookov – preverjanje podpisa na osnovi HMAC (v3)
- TLS šifriranje – vsa komunikacija API je šifrirana med prenosom
- Obsegana dovoljenja – minimalen zahtevan dostop do obsegov na integracijo