HubSpot konektor

HubSpot konektor

Poveži svoj HubSpot CRM sa Brevo putem Tajo za dvosmernu sinhronizaciju kontakata, praćenje poslova, podatke o angažovanju i ujedinjenu marketing automatizaciju na obe platforme.

Pregled

SvojstvoVrednost
PlatformaHubSpot
KategorijaCRM
Složenost podešavanjaSrednje
Zvanična integracijaDa
Sinhronizovani podaciKontakti, Kompanije, Poslovi, Tiketi, Događaji
Osnovni URL API-jahttps://api.hubapi.com

Karakteristike

  • Dvosrna sinhronizacija kontakata - Drži kontakte sinhronizovanim između HubSpot i Brevo u realnom vremenu
  • Praćenje pipeline poslova - Sinhronizacija faza i vrednosti poslova za segmentaciju zasnovanu na prihodu
  • Sinhronizacija podataka o kompanijama - Poveži kontakte sa zapisima o kompanijama i firmografskim podacima
  • Integracija tiketa - Prati tikete podrške za ocenjivanje zdravlja kupca
  • Praćenje angažovanja - Sinhronizuj otvaranja emailova, klikove, sastanke, pozive i beleške
  • Podrška za prilagođene objekte - Mapiranje HubSpot prilagođenih objekata na Brevo atribute
  • Okidači toka - Koristi promene faze životnog ciklusa u HubSpot-u za pokretanje Brevo automatizacija
  • Webhook događaji - Obaveštenja u realnom vremenu za promene CRM podataka

Preduslovi

Pre nego što započneš, proveri da imaš:

  1. HubSpot nalog (Free, Starter, Professional ili Enterprise)
  2. HubSpot privatnu aplikaciju ili OAuth aplikaciju sa potrebnim skopovima
  3. Brevo nalog sa API pristupom
  4. Tajo nalog

Autentifikacija

Token za pristup privatnoj aplikaciji (preporučeno)

Kreiraj privatnu aplikaciju u HubSpot-u za direktni API pristup sa granularnom kontrolom skopova.

  1. Idi na HubSpot Settings > Integrations > Private Apps
  2. Kreiraj novu privatnu aplikaciju
  3. Konfiguriši potrebne skopove
  4. Kopiraj access token
Terminal window
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

Koristi OAuth 2.0 za integracije sa više naloga koje zahtevaju autorizaciju korisnika.

Terminal window
# Authorization URL
https://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}

Potrebni skopovi

crm.objects.contacts.read
crm.objects.contacts.write
crm.objects.companies.read
crm.objects.deals.read
crm.objects.deals.write
crm.objects.custom.read
crm.schemas.custom.read

Konfiguracija

Osnovno podešavanje

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

Mapiranje polja

Mapiranje HubSpot svojstava na Brevo atribute kontakta:

Default Mappings

Parameter Type Description
email required
string

Email kontakta (primarni identifikator)

firstname optional
string

Mapira se na FIRSTNAME atribut u Brevo

lastname optional
string

Mapira se na LASTNAME atribut u Brevo

phone optional
string

Mapira se na SMS atribut za WhatsApp/SMS

company optional
string

Naziv pridružene kompanije

lifecyclestage optional
string

HubSpot faza životnog ciklusa (subscriber, lead, MQL, SQL, customer)

hs_lead_status optional
string

Status kvalifikacije leada

hubspot_owner_id optional
string

ID dodeljenog vlasnika prodaje

Mapiranje prilagođenih svojstava

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: SEGMENT

API endpointi

CRM objekti

MetodaEndpointOpis
GET/crm/v3/objects/contactsListanje kontakata
POST/crm/v3/objects/contactsKreiranje kontakta
PATCH/crm/v3/objects/contacts/{id}Ažuriranje kontakta
GET/crm/v3/objects/companiesListanje kompanija
GET/crm/v3/objects/dealsListanje poslova
POST/crm/v3/objects/dealsKreiranje posla
GET/crm/v3/objects/ticketsListanje tiketa

Asocijacije

MetodaEndpointOpis
GET/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}Dohvatanje asocijacija
PUT/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}Kreiranje asocijacije

Angažovanja

MetodaEndpointOpis
GET/crm/v3/objects/callsListanje poziva
GET/crm/v3/objects/emailsListanje email angažovanja
GET/crm/v3/objects/meetingsListanje sastanaka
GET/crm/v3/objects/notesListanje beleški
GET/crm/v3/objects/tasksListanje zadataka

Događaji

Događaji kontakata

DogađajOkidačPrimer upotrebe
contact.creationNovi kontakt kreiranOkidač welcome toka
contact.propertyChangeSvojstvo kontakta ažuriranoSinhronizacija atributa
contact.mergeKontakti spojeniObrada deduplikacije
contact.deletionKontakt obrisanČišćenje u Brevo

Događaji poslova

DogađajOkidačPrimer upotrebe
deal.creationNovi posao kreiranObaveštenje prodaje
deal.propertyChangeFaza posla promenjenaAutomatizacija pipelinea
deal.deletionPosao uklonjenIzveštavanje o prihodu

Događaji kompanija

DogađajOkidačPrimer upotrebe
company.creationNova kompanija dodataAccount-based marketing
company.propertyChangePodaci kompanije ažuriraniSinhronizacija firmografije

Primeri koda

Inicijalizacija konektora

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect HubSpot
await tajo.connectors.connect('hubspot', {
accessToken: process.env.HUBSPOT_ACCESS_TOKEN
});

Pokretanje sinhronizacije kontakata

// Full bidirectional sync
await tajo.connectors.sync('hubspot', {
type: 'full',
resources: ['contacts', 'companies', 'deals'],
direction: 'bidirectional',
since: '2023-01-01'
});
// Check sync status
const status = await tajo.connectors.status('hubspot');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// contactsSynced: 34200,
// companiesSynced: 5100,
// dealsSynced: 2340
// }

Obrada webhook događaja

// Handle HubSpot webhook notifications
app.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');
});

Ograničenja brzine

HubSpot primenjuje ograničenja brzine po privatnoj aplikaciji ili OAuth aplikaciji:

PlanOgraničenjeBurst limit
Free/Starter100 zahteva/10 sekundi150 zahteva/10 sekundi
Professional150 zahteva/10 sekundi200 zahteva/10 sekundi
Enterprise200 zahteva/10 sekundi250 zahteva/10 sekundi
API dodatak200 zahteva/10 sekundi250 zahteva/10 sekundi

Dodatna ograničenja:

  • Search API: 5 zahteva/sekundi po aplikaciji
  • Batch operacije: 100 zapisa po batch zahtevu
  • Dnevno ograničenje: 500.000 zahteva/dan (OAuth aplikacije)

Obrada ograničenja brzine

HubSpot vraća 429 Too Many Requests odgovor kada se prekorače limiti. Koristi eksponencijalno usporavanje i prati X-HubSpot-RateLimit-* headere.

Rešavanje problema

Česti problemi

ProblemUzrokRešenje
401 UnauthorizedIstekao ili nevažeći tokenRegeneriši token privatne aplikacije ili osvježi OAuth token
Kontakt nije sinhronizovanNedostaje email svojstvoHubSpot kontakti zahtevaju email za Brevo sinhronizaciju
Duplirani kontaktiNema pravila deduplikacijeKonfiguriši pravila spajanja u HubSpot-u
Webhook nije primljenPretplata nije aktivnaPonovo registruj webhook pretplate
Svojstvo nije mapiranoPrilagođeno svojstvo nije kreiranoNajpre kreiraj svojstvo u HubSpot-u

Debug režim

Uključi detaljno logovanje:

connectors:
hubspot:
debug: true
log_level: verbose
log_webhooks: true

Testiraj vezu

Terminal window
tajo connectors test hubspot
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Companies readable
# ✓ Deals readable
# ✓ Webhooks registered

Najbolje prakse

  1. Koristi privatne aplikacije umesto API ključeva - API ključevi su zastareli; koristi privatne aplikacije za bolju bezbednost
  2. Pažljivo implementiraj dvosmernu sinhronizaciju - Izbegavaj beskonačne petlje praćenjem izvora sinhronizacije
  3. Mapiraj faze životnog ciklusa - Koristi HubSpot faze životnog ciklusa za segmentiranje kontakata u Brevo
  4. Grupiši API zahteve - Koristi batch endpointe za bulk operacije da ostaneš u granicama
  5. Prati isporuku webhook-ova - Postavi logiku ponovnog pokušaja i obradu grešaka
  6. Koristi inkrementalnu sinhronizaciju - Sinhronizuj samo promenjene zapise koristeći svojstvo lastmodifieddate

Bezbednost

  • Tokeni privatnih aplikacija - Skopovani access tokeni sa granularnim dozvolama
  • OAuth 2.0 - Standardna autorizacija sa rotacijom refresh tokena
  • Webhook potpisi - HMAC verifikacija potpisa (v3)
  • TLS enkripcija - Sva API komunikacija enkriptovana u tranzitu
  • Skopovane dozvole - Minimalni potrebni pristup skopovima po integraciji

Povezani resursi

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI асистент

Здраво! Питајте ме о документацији.

Započnite besplatno sa Brevo