HubSpot Konektor
HubSpot Konektor
Povežite svoj HubSpot CRM s Brevom putem Taja za dvosmjernu sinkronizaciju kontakata, praćenje poslova, angažmanske podatke i unificiranu marketinšku automatizaciju na obje platforme.
Pregled
| Svojstvo | Vrijednost |
|---|---|
| Platforma | HubSpot |
| Kategorija | CRM |
| Složenost postavljanja | Srednje |
| Službena integracija | Da |
| Sinkronizirani podaci | Kontakti, Tvrtke, Poslovi, Tiketi, Događaji |
| Osnovni URL API-ja | https://api.hubapi.com |
Značajke
- Dvosmjerna sinkronizacija kontakata - Zadržite kontakte sinkroniziranim između HubSpota i Breva u stvarnom vremenu
- Praćenje prodajnog cjevovoda - Sinkronizirajte faze i vrijednosti poslova za segmentaciju temeljenu na prihodima
- Sinkronizacija podataka o tvrtkama - Povežite kontakte s evidencijama tvrtki i firmografskim podacima
- Integracija tiketa - Pratite tikete za podršku radi ocjenjivanja zdravlja korisnika
- Praćenje angažmana - Sinkronizirajte otvaranja e-pošte, klikove, sastanke, pozive i bilješke
- Podrška za prilagođene objekte - Mapirajte prilagođene HubSpot objekte na atribute Breva
- Okidači tijekova rada - Koristite promjene životnog ciklusa u HubSpotu za pokretanje automatizacija u Brevu
- Webhook događaji - Obavijesti u stvarnom vremenu o promjenama CRM podataka
Preduvjeti
Prije nego što počnete, osigurajte da imate:
- HubSpot račun (Besplatni, Starter, Professional ili Enterprise)
- HubSpot privatnu aplikaciju ili OAuth aplikaciju s potrebnim opsezima
- Brevo račun s API pristupom
- Tajo račun
Autentifikacija
Token za pristup privatnoj aplikaciji (Preporučeno)
Stvorite privatnu aplikaciju u HubSpotu za izravan API pristup s granularnom kontrolom opsega.
- Idite na HubSpot Postavke > Integracije > Privatne aplikacije
- Stvorite novu privatnu aplikaciju
- Konfigurirajte potrebne opsege
- Kopirajte token za pristup
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
Koristite OAuth 2.0 za integracije s više računa koje zahtijevaju korisničku autorizaciju.
# URL za autorizacijuhttps://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}Potrebni opsezi
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.deals.readcrm.objects.deals.writecrm.objects.custom.readcrm.schemas.custom.readKonfiguracija
Osnovna konfiguracija
connectors: hubspot: enabled: true access_token: "${HUBSPOT_ACCESS_TOKEN}"
# Opcije sinkronizacije podataka sync: contacts: true companies: true deals: true tickets: true engagements: true
# Smjer sinkronizacije direction: bidirectional # ili 'hubspot_to_brevo' | 'brevo_to_hubspot'
# Dodjela popisa u Brevu lists: all_contacts: 10 qualified_leads: 11 customers: 12Mapiranje polja
Mapirajte HubSpot svojstva na atribute kontakata u Brevu:
Zadana mapiranja
| Parameter | Type | Description |
|---|---|---|
email required | string | E-mail kontakta (primarni identifikator) |
firstname optional | string | Mapira se na atribut FIRSTNAME u Brevu |
lastname optional | string | Mapira se na atribut LASTNAME u Brevu |
phone optional | string | Mapira se na atribut SMS za WhatsApp/SMS |
company optional | string | Naziv povezane tvrtke |
lifecyclestage optional | string | Faza životnog ciklusa u HubSpotu (pretplatnik, lead, MQL, SQL, klijent) |
hs_lead_status optional | string | Status kvalifikacije leada |
hubspot_owner_id optional | string | ID dodijeljenog prodajnog vlasnika |
Mapiranje prilagođenih svojstava
field_mapping: # Standardna polja email: email firstname: FIRSTNAME lastname: LASTNAME phone: SMS
# CRM polja lifecyclestage: LIFECYCLE_STAGE hs_lead_status: LEAD_STATUS company: COMPANY_NAME
# Metrike poslova hs_total_deal_value: DEAL_VALUE num_associated_deals: DEAL_COUNT
# Prilagođena svojstva preferred_channel: PREFERRED_CHANNEL customer_segment: SEGMENTAPI krajnje točke
CRM objekti
| Metoda | Krajnja točka | Opis |
|---|---|---|
GET | /crm/v3/objects/contacts | Popis kontakata |
POST | /crm/v3/objects/contacts | Stvaranje kontakta |
PATCH | /crm/v3/objects/contacts/{id} | Ažuriranje kontakta |
GET | /crm/v3/objects/companies | Popis tvrtki |
GET | /crm/v3/objects/deals | Popis poslova |
POST | /crm/v3/objects/deals | Stvaranje posla |
GET | /crm/v3/objects/tickets | Popis tiketa |
Asocijacije
| Metoda | Krajnja točka | Opis |
|---|---|---|
GET | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} | Dohvaćanje asocijacija |
PUT | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} | Stvaranje asocijacije |
Angažmani
| Metoda | Krajnja točka | Opis |
|---|---|---|
GET | /crm/v3/objects/calls | Popis poziva |
GET | /crm/v3/objects/emails | Popis e-mailova |
GET | /crm/v3/objects/meetings | Popis sastanaka |
GET | /crm/v3/objects/notes | Popis bilješki |
GET | /crm/v3/objects/tasks | Popis zadataka |
Događaji
Događaji kontakata
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
contact.creation | Stvoren novi kontakt | Pokretanje toka dobrodošlice |
contact.propertyChange | Ažurirano svojstvo kontakta | Sinkronizacija atributa |
contact.merge | Kontakti spojeni | Rukovanje deduplikacijom |
contact.deletion | Kontakt obrisan | Čišćenje u Brevu |
Događaji poslova
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
deal.creation | Stvoren novi posao | Obavijest prodaji |
deal.propertyChange | Promijenjena faza posla | Automatizacija cjevovoda |
deal.deletion | Posao uklonjen | Izvješćivanje o prihodima |
Događaji tvrtki
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
company.creation | Dodana nova tvrtka | Marketing temeljen na računima |
company.propertyChange | Ažurirani podaci tvrtke | Sinkronizacija firmografskih podataka |
Primjeri koda
Inicijalizacija konektora
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Povezivanje HubSpotaawait tajo.connectors.connect('hubspot', { accessToken: process.env.HUBSPOT_ACCESS_TOKEN});Pokretanje sinkronizacije kontakata
// Potpuna dvosmjerna sinkronizacijaawait tajo.connectors.sync('hubspot', { type: 'full', resources: ['contacts', 'companies', 'deals'], direction: 'bidirectional', since: '2023-01-01'});
// Provjera statusa sinkronizacijeconst status = await tajo.connectors.status('hubspot');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 34200,// companiesSynced: 5100,// dealsSynced: 2340// }Rukovanje Webhook događajima
// Rukovanje webhook obavijestima HubSpotaapp.post('/webhooks/hubspot', async (req, res) => { const signature = req.get('X-HubSpot-Signature-v3');
// Verifikacija webhook potpisa 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');});Ograničenja brzine
HubSpot primjenjuje ograničenja brzine po privatnoj ili OAuth aplikaciji:
| Plan | Ograničenje brzine | Ograničenje naglih skokova |
|---|---|---|
| Besplatni/Starter | 100 zahtjeva/10 sekundi | 150 zahtjeva/10 sekundi |
| Professional | 150 zahtjeva/10 sekundi | 200 zahtjeva/10 sekundi |
| Enterprise | 200 zahtjeva/10 sekundi | 250 zahtjeva/10 sekundi |
| API dodatak | 200 zahtjeva/10 sekundi | 250 zahtjeva/10 sekundi |
Dodatna ograničenja:
- Search API: 5 zahtjeva/sekundi po aplikaciji
- Skupne operacije: 100 zapisa po skupnom zahtjevu
- Dnevno ograničenje: 500.000 zahtjeva/dan (OAuth aplikacije)
Rukovanje ograničenjima brzine
HubSpot vraća odgovor 429 Too Many Requests kada su prekoračena ograničenja. Koristite eksponencijalni povratak i pratite zaglavlja X-HubSpot-RateLimit-*.
Rješavanje problema
Uobičajeni problemi
| Problem | Uzrok | Rješenje |
|---|---|---|
| 401 Unauthorized | Istekao ili nevažeći token | Regenerirajte token privatne aplikacije ili osvježite OAuth token |
| Kontakt nije sinkroniziran | Nedostaje svojstvo e-pošte | HubSpot kontakti zahtijevaju e-mail za sinkronizaciju s Brevom |
| Duplikati kontakata | Nema pravila deduplikacije | Konfigurirajte pravila spajanja u HubSpotu |
| Webhook nije primljen | Pretplata nije aktivna | Ponovo registrirajte webhook pretplate |
| Svojstvo nije mapirano | Prilagođeno svojstvo nije stvoreno | Prvo stvorite svojstvo u HubSpotu |
Način otklanjanja grešaka
Omogućite opširno zapisivanje:
connectors: hubspot: debug: true log_level: verbose log_webhooks: trueTestiranje veze
tajo connectors test hubspot# ✓ API veza uspješna# ✓ Kontakti čitljivi# ✓ Tvrtke čitljive# ✓ Poslovi čitljivi# ✓ Webhooks registriraniPreporučene prakse
- Koristite privatne aplikacije umjesto API ključeva - API ključevi su zastarjeli; koristite privatne aplikacije za bolju sigurnost
- Pažljivo implementirajte dvosmjernu sinkronizaciju - Izbjegavajte beskonačne petlje praćenjem izvora sinkronizacije
- Mapirajte faze životnog ciklusa - Koristite faze životnog ciklusa HubSpota za segmentaciju kontakata u Brevu
- Skupni API zahtjevi - Koristite skupne krajnje točke za masovne operacije kako biste ostali u granicama
- Pratite isporuku webhookova - Postavite logiku ponovnog pokušaja i rukovanje mrtvim pismima
- Koristite inkrementalnu sinkronizaciju - Sinkronizirajte samo promijenjene zapise koristeći svojstvo
lastmodifieddate
Sigurnost
- Tokeni privatnih aplikacija - Opsežni tokeni za pristup s granularnim dozvolama
- OAuth 2.0 - Industrijski standardna autorizacija s rotacijom tokena za osvježavanje
- Webhook potpisi - Verifikacija potpisa temeljena na HMAC-u (v3)
- TLS enkripcija - Sva API komunikacija šifrirana u tranzitu
- Opsežne dozvole - Minimalni potrebni pristup opsegu po integraciji