Conector HubSpot

Conector HubSpot

Conectați HubSpot CRM la Brevo prin Tajo pentru sincronizare bidirecțională a contactelor, urmărirea ofertelor, date de implicare și automatizare de marketing unificată pe ambele platforme.

Prezentare generală

ProprietateValoare
PlatformăHubSpot
CategorieCRM
Complexitate configurareMedie
Integrare oficialăDa
Date sincronizateContacte, Companii, Oferte, Tichete, Evenimente
URL de bază APIhttps://api.hubapi.com

Funcționalități

  • Sincronizare bidirecțională a contactelor - Mențineți contactele sincronizate între HubSpot și Brevo în timp real
  • Urmărire pipeline oferte - Sincronizați etapele și valorile ofertelor pentru segmentare bazată pe venituri
  • Sincronizare date companie - Asociați contactele cu înregistrările companiei și datele firmografice
  • Integrare tichete - Urmăriți tichetele de suport pentru evaluarea stării clientului
  • Urmărire implicare - Sincronizați deschideri de e-mail, clicuri, întâlniri, apeluri și notițe
  • Suport obiecte personalizate - Mapați obiectele personalizate HubSpot la atributele Brevo
  • Declanșatoare de flux de lucru - Utilizați schimbările de etapă din ciclul de viață HubSpot pentru a declanșa automatizările Brevo
  • Evenimente webhook - Notificări în timp real pentru modificările datelor CRM

Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

  1. Un cont HubSpot (Free, Starter, Professional sau Enterprise)
  2. O aplicație privată sau OAuth HubSpot cu scopurile necesare
  3. Un cont Brevo cu acces API
  4. Un cont Tajo

Autentificare

Token de acces aplicație privată (Recomandat)

Creați o aplicație privată în HubSpot pentru acces direct la API cu control granular al scopurilor.

  1. Accesați HubSpot Settings > Integrations > Private Apps
  2. Creați o nouă aplicație privată
  3. Configurați scopurile necesare
  4. Copiați tokenul de acces
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

Utilizați OAuth 2.0 pentru integrări cu mai multe conturi care necesită autorizarea utilizatorului.

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

Scopuri necesare

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

Configurare

Configurare de bază

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

Mapare câmpuri

Mapați proprietățile HubSpot la atributele de contact Brevo:

Mapări implicite

Parameter Type Description
email required
string

E-mailul contactului (identificator principal)

firstname optional
string

Mapează la atributul FIRSTNAME în Brevo

lastname optional
string

Mapează la atributul LASTNAME în Brevo

phone optional
string

Mapează la atributul SMS pentru WhatsApp/SMS

company optional
string

Numele companiei asociate

lifecyclestage optional
string

Etapa din ciclul de viață HubSpot (abonat, lead, MQL, SQL, client)

hs_lead_status optional
string

Statusul de calificare al lead-ului

hubspot_owner_id optional
string

ID-ul responsabilului de vânzări atribuit

Mapare proprietăți personalizate

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

Puncte finale API

Obiecte CRM

MetodăPunct finalDescriere
GET/crm/v3/objects/contactsListează contacte
POST/crm/v3/objects/contactsCreează un contact
PATCH/crm/v3/objects/contacts/{id}Actualizează un contact
GET/crm/v3/objects/companiesListează companii
GET/crm/v3/objects/dealsListează oferte
POST/crm/v3/objects/dealsCreează o ofertă
GET/crm/v3/objects/ticketsListează tichete

Asocieri

MetodăPunct finalDescriere
GET/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}Obține asocierile
PUT/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}Creează asociere

Implicare

MetodăPunct finalDescriere
GET/crm/v3/objects/callsListează apeluri
GET/crm/v3/objects/emailsListează e-mailuri
GET/crm/v3/objects/meetingsListează întâlniri
GET/crm/v3/objects/notesListează notițe
GET/crm/v3/objects/tasksListează sarcini

Evenimente

Evenimente de contact

EvenimentDeclanșatorCaz de utilizare
contact.creationContact nou creatDeclanșare flux de bun venit
contact.propertyChangeProprietate contact actualizatăSincronizare atribute
contact.mergeContacte combinateGestionare deduplicare
contact.deletionContact ștersCurățare în Brevo

Evenimente de ofertă

EvenimentDeclanșatorCaz de utilizare
deal.creationOfertă nouă creatăNotificare de vânzări
deal.propertyChangeEtapă ofertă schimbatăAutomatizare pipeline
deal.deletionOfertă eliminatăRaportare venituri

Evenimente de companie

EvenimentDeclanșatorCaz de utilizare
company.creationCompanie nouă adăugatăMarketing bazat pe cont
company.propertyChangeDate companie actualizateSincronizare firmografică

Exemple de cod

Inițializare conector

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
});

Executare sincronizare contacte

// 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
// }

Gestionare evenimente webhook

// 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');
});

Limite de rată

HubSpot aplică limite de rată per aplicație privată sau OAuth:

PlanLimită de ratăLimită burst
Free/Starter100 cereri/10 secunde150 cereri/10 secunde
Professional150 cereri/10 secunde200 cereri/10 secunde
Enterprise200 cereri/10 secunde250 cereri/10 secunde
Add-on API200 cereri/10 secunde250 cereri/10 secunde

Limite suplimentare:

  • API Căutare: 5 cereri/secundă per aplicație
  • Operații în lot: 100 înregistrări per cerere în lot
  • Limită zilnică: 500.000 cereri/zi (aplicații OAuth)

Gestionarea limitelor de rată

HubSpot returnează un răspuns 429 Too Many Requests când limitele sunt depășite. Utilizați backoff exponențial și monitorizați anteturile X-HubSpot-RateLimit-*.

Depanare

Probleme frecvente

ProblemăCauzăSoluție
401 NeautorizatToken expirat sau invalidRegenerați tokenul aplicației private sau actualizați tokenul OAuth
Contact nesincronizatProprietate e-mail lipsăContactele HubSpot necesită un e-mail pentru sincronizare cu Brevo
Contacte duplicateFără regulă de deduplicareConfigurați regulile de combinare în HubSpot
Webhook neprimitAbonament inactivReînregistrați abonamentele webhook
Proprietate nemapatăProprietate personalizată necreatăCreați mai întâi proprietatea în HubSpot

Modul de depanare

Activați jurnalizarea verbosă:

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

Testare conexiune

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

Bune practici

  1. Utilizați aplicații private în loc de chei API - Cheile API sunt deprecate; utilizați aplicații private pentru securitate sporită
  2. Implementați sincronizarea bidirecțională cu atenție - Evitați buclele infinite prin urmărirea sursei de sincronizare
  3. Mapați etapele ciclului de viață - Utilizați etapele ciclului de viață HubSpot pentru a segmenta contactele în Brevo
  4. Grupați cererile API - Utilizați punctele finale batch pentru operații în bloc pentru a rămâne în limitele de rată
  5. Monitorizați livrarea webhook - Configurați logica de reîncercare și gestionarea mesajelor nelivrate
  6. Utilizați sincronizarea incrementală - Sincronizați doar înregistrările modificate folosind proprietatea lastmodifieddate

Securitate

  • Tokeni pentru aplicații private - Tokeni de acces cu scopuri cu permisiuni granulare
  • OAuth 2.0 - Autorizare standard industrie cu rotație token de reîmprospătare
  • Semnături webhook - Verificare semnătură bazată pe HMAC (v3)
  • Criptare TLS - Toată comunicarea API criptată în tranzit
  • Permisiuni cu scop limitat - Acces minim necesar per integrare

Resurse conexe

Subscribe to updates

developer-docs

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

Asistent AI

Bună! Întreabă-mă orice despre documentație.

Începe gratuit cu Brevo