Conector HubSpot
Starea conectorului: În lucru În construcție. Încă neverificat.
Ilustrație · date de exemplu
Exemplu de sincronizare
Sursă
HubSpot
Starea conectorului: În lucru
Destinație
Celălalt instrument al tău
Starea conectorului: Instrument personalizat
Maparea câmpurilor
| Câmp sursă | Câmp destinație | Valoare exemplu |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Ciornă
- Verifică o înregistrare
- Aprobă această versiune
Stările se referă la fiecare conector și nu garantează că această sincronizare este pregătită. Câmpurile sunt ilustrative. Verifică schema și permisiunile reale înainte de sincronizare.
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ă
| Proprietate | Valoare |
|---|---|
| Platformă | HubSpot |
| Categorie | CRM |
| Complexitate configurare | Medie |
| Integrare oficială | Nu |
| Date sincronizate | Contacte, Companii, Oferte, Tichete, Evenimente |
| URL de bază API | https://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:
- Un cont HubSpot (Free, Starter, Professional sau Enterprise)
- O aplicație privată sau OAuth HubSpot cu scopurile necesare
- Un cont Brevo cu acces API
- 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.
- Accesați HubSpot Settings > Integrations > Private Apps
- Creați o nouă aplicație privată
- Configurați scopurile necesare
- Copiați tokenul de acces
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.
# URL de autorizarehttps://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}Scopuri necesare
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.deals.readcrm.objects.deals.writecrm.objects.custom.readcrm.schemas.custom.readConfigurare
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: 12Mapare 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: SEGMENTPuncte finale API
Obiecte CRM
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /crm/v3/objects/contacts | Listează contacte |
POST | /crm/v3/objects/contacts | Creează un contact |
PATCH | /crm/v3/objects/contacts/{id} | Actualizează un contact |
GET | /crm/v3/objects/companies | Listează companii |
GET | /crm/v3/objects/deals | Listează oferte |
POST | /crm/v3/objects/deals | Creează o ofertă |
GET | /crm/v3/objects/tickets | Listează tichete |
Asocieri
| Metodă | Punct final | Descriere |
|---|---|---|
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 final | Descriere |
|---|---|---|
GET | /crm/v3/objects/calls | Listează apeluri |
GET | /crm/v3/objects/emails | Listează e-mailuri |
GET | /crm/v3/objects/meetings | Listează întâlniri |
GET | /crm/v3/objects/notes | Listează notițe |
GET | /crm/v3/objects/tasks | Listează sarcini |
Evenimente
Evenimente de contact
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
contact.creation | Contact nou creat | Declanșare flux de bun venit |
contact.propertyChange | Proprietate contact actualizată | Sincronizare atribute |
contact.merge | Contacte combinate | Gestionare deduplicare |
contact.deletion | Contact șters | Curățare în Brevo |
Evenimente de ofertă
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
deal.creation | Ofertă nouă creată | Notificare de vânzări |
deal.propertyChange | Etapă ofertă schimbată | Automatizare pipeline |
deal.deletion | Ofertă eliminată | Raportare venituri |
Evenimente de companie
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
company.creation | Companie nouă adăugată | Marketing bazat pe cont |
company.propertyChange | Date companie actualizate | Sincronizare 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 HubSpotawait tajo.connectors.connect('hubspot', { accessToken: process.env.HUBSPOT_ACCESS_TOKEN});Executare sincronizare contacte
// 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// }Gestionare evenimente webhook
// 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');});Limite de rată
HubSpot aplică limite de rată per aplicație privată sau OAuth:
| Plan | Limită de rată | Limită burst |
|---|---|---|
| Free/Starter | 100 cereri/10 secunde | 150 cereri/10 secunde |
| Professional | 150 cereri/10 secunde | 200 cereri/10 secunde |
| Enterprise | 200 cereri/10 secunde | 250 cereri/10 secunde |
| Add-on API | 200 cereri/10 secunde | 250 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 Neautorizat | Token expirat sau invalid | Regenerați tokenul aplicației private sau actualizați tokenul OAuth |
| Contact nesincronizat | Proprietate e-mail lipsă | Contactele HubSpot necesită un e-mail pentru sincronizare cu Brevo |
| Contacte duplicate | Fără regulă de deduplicare | Configurați regulile de combinare în HubSpot |
| Webhook neprimit | Abonament inactiv | Reî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: trueTestare conexiune
tajo connectors test hubspot# ✓ API connection successful# ✓ Contacts readable# ✓ Companies readable# ✓ Deals readable# ✓ Webhooks registeredBune practici
- Utilizați aplicații private în loc de chei API - Cheile API sunt deprecate; utilizați aplicații private pentru securitate sporită
- Implementați sincronizarea bidirecțională cu atenție - Evitați buclele infinite prin urmărirea sursei de sincronizare
- Mapați etapele ciclului de viață - Utilizați etapele ciclului de viață HubSpot pentru a segmenta contactele în Brevo
- Grupați cererile API - Utilizați punctele finale batch pentru operații în bloc pentru a rămâne în limitele de rată
- Monitorizați livrarea webhook - Configurați logica de reîncercare și gestionarea mesajelor nelivrate
- 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