HubSpot Connector
Connectorstatus: Under udvikling Under opbygning. Endnu ikke verificeret.
Illustration · eksempeldata
Eksempel på synkronisering
Kilde
HubSpot
Connectorstatus: Under udvikling
Destination
Dit andet værktøj
Connectorstatus: Eget værktøj
Feltmapping
| Kildefelt | Destinationsfelt | Eksempelværdi |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Udkast
- Gennemse én post
- Godkend denne version
Status gælder den enkelte connector og garanterer ikke, at denne synkronisering er klar. Felterne er illustrative. Tjek det faktiske skema og tilladelser før en synkronisering.
Forbind dit HubSpot CRM med Brevo via Tajo for tovejs-kontaktsynkronisering, aftalesporing, engagementsdata og samlet marketingautomatisering på tværs af begge platforme.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | HubSpot |
| Kategori | CRM |
| Opsætningskompleksitet | Medium |
| Officiel integration | Nej |
| Synkroniserede data | Kontakter, virksomheder, aftaler, tickets, hændelser |
| API-base-URL | https://api.hubapi.com |
Funktioner
- Tovejs-kontaktsynkronisering - Hold kontakter synkroniserede mellem HubSpot og Brevo i realtid
- Sporing af aftalepipeline - Synkronisér aftalestadier og -værdier til omsætningsbaseret segmentering
- Synkronisering af virksomhedsdata - Knyt kontakter til virksomhedsposter og firmografiske data
- Ticket-integration - Spor supporttickets til kundesundhedsscoring
- Engagementssporing - Synkronisér e-mailåbninger, klik, møder, opkald og noter
- Understøttelse af brugerdefinerede objekter - Kortlæg HubSpot-brugerdefinerede objekter til Brevo-attributter
- Workflow-triggere - Brug ændringer i HubSpot-livscyklusstadier til at udløse Brevo-automatiseringer
- Webhook-hændelser - Notifikationer i realtid ved CRM-dataændringer
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En HubSpot-konto (Free, Starter, Professional eller Enterprise)
- En HubSpot privat app eller OAuth-app med de nødvendige scopes
- En Brevo-konto med API-adgang
- En Tajo-konto
Autentifikation
Privat app-adgangstoken (anbefalet)
Opret en privat app i HubSpot for direkte API-adgang med granulær scope-kontrol.
- Gå til HubSpot Settings > Integrations > Private Apps
- Opret en ny privat app
- Konfigurér de nødvendige scopes
- Kopiér adgangstokenet
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
Brug OAuth 2.0 til integrationer med flere konti, der kræver brugerautorisation.
# Authorization URLhttps://app.hubspot.com/oauth/authorize?client_id={client_id}&scope=crm.objects.contacts.read&redirect_uri={redirect_uri}Påkrævede scopes
crm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.deals.readcrm.objects.deals.writecrm.objects.custom.readcrm.schemas.custom.readKonfiguration
Grundlæggende opsætning
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: 12Feltmapping
Kortlæg HubSpot-egenskaber til Brevo-kontaktattributter:
Standardmappinger
| Parameter | Type | Description |
|---|---|---|
email required | string | Kontakt-e-mail (primær identifikator) |
firstname optional | string | Kortlægges til FIRSTNAME-attribut i Brevo |
lastname optional | string | Kortlægges til LASTNAME-attribut i Brevo |
phone optional | string | Kortlægges til SMS-attribut for WhatsApp/SMS |
company optional | string | Tilknyttet virksomhedsnavn |
lifecyclestage optional | string | HubSpot-livscyklusstadie (subscriber, lead, MQL, SQL, customer) |
hs_lead_status optional | string | Lead-kvalificeringsstatus |
hubspot_owner_id optional | string | ID på tildelt salgsejer |
Mapping af brugerdefinerede egenskaber
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: SEGMENTAPI-endpoints
CRM-objekter
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /crm/v3/objects/contacts | Vis kontakter |
POST | /crm/v3/objects/contacts | Opret en kontakt |
PATCH | /crm/v3/objects/contacts/{id} | Opdatér en kontakt |
GET | /crm/v3/objects/companies | Vis virksomheder |
GET | /crm/v3/objects/deals | Vis aftaler |
POST | /crm/v3/objects/deals | Opret en aftale |
GET | /crm/v3/objects/tickets | Vis tickets |
Associationer
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType} | Hent associationer |
PUT | /crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} | Opret association |
Engagementer
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /crm/v3/objects/calls | Vis opkaldsengagementer |
GET | /crm/v3/objects/emails | Vis e-mailengagementer |
GET | /crm/v3/objects/meetings | Vis møder |
GET | /crm/v3/objects/notes | Vis noter |
GET | /crm/v3/objects/tasks | Vis opgaver |
Hændelser
Kontakthændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
contact.creation | Ny kontakt oprettet | Trigger for velkomstflow |
contact.propertyChange | Kontaktegenskab opdateret | Attributsynkronisering |
contact.merge | Kontakter flettet | Håndtering af deduplikering |
contact.deletion | Kontakt slettet | Oprydning i Brevo |
Aftalehændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
deal.creation | Ny aftale oprettet | Salgsnotifikation |
deal.propertyChange | Aftalestadie ændret | Pipeline-automatisering |
deal.deletion | Aftale fjernet | Omsætningsrapportering |
Virksomhedshændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
company.creation | Ny virksomhed tilføjet | Kontobaseret marketing |
company.propertyChange | Virksomhedsdata opdateret | Firmografisk synkronisering |
Kodeeksempler
Initialisér connector
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});Kør kontaktsynkronisering
// 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// }Håndtér webhook-hændelser
// 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');});Rate limits
HubSpot anvender rate limits per privat app eller OAuth-app:
| Plan | Rate limit | Burst-limit |
|---|---|---|
| Free/Starter | 100 anmodninger/10 sekunder | 150 anmodninger/10 sekunder |
| Professional | 150 anmodninger/10 sekunder | 200 anmodninger/10 sekunder |
| Enterprise | 200 anmodninger/10 sekunder | 250 anmodninger/10 sekunder |
| API-tilføjelse | 200 anmodninger/10 sekunder | 250 anmodninger/10 sekunder |
Yderligere grænser:
- Search API: 5 anmodninger/sekund pr. app
- Batchoperationer: 100 poster pr. batch-anmodning
- Daglig grænse: 500.000 anmodninger/dag (OAuth-apps)
Håndtering af rate limits
HubSpot returnerer et 429 Too Many Requests-svar, når grænserne overskrides. Brug eksponentiel backoff og overvåg headerne X-HubSpot-RateLimit-*.
Fejlfinding
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| 401 Unauthorized | Udløbet eller ugyldigt token | Regenerér token til privat app, eller opdatér OAuth-token |
| Kontakt ikke synkroniseret | Manglende e-mailegenskab | HubSpot-kontakter kræver en e-mail for Brevo-synkronisering |
| Duplikerede kontakter | Ingen deduplikeringsregel | Konfigurér fletteregler i HubSpot |
| Webhook ikke modtaget | Abonnement ikke aktivt | Genregistrér webhook-abonnementer |
| Egenskab ikke mappet | Brugerdefineret egenskab ikke oprettet | Opret først egenskaben i HubSpot |
Debug-tilstand
Aktivér detaljeret logging:
connectors: hubspot: debug: true log_level: verbose log_webhooks: trueTestforbindelse
tajo connectors test hubspot# ✓ API connection successful# ✓ Contacts readable# ✓ Companies readable# ✓ Deals readable# ✓ Webhooks registeredBedste praksis
- Brug private apps frem for API-nøgler - API-nøgler er udfaset; brug private apps for bedre sikkerhed
- Implementér tovejssynkronisering omhyggeligt - Undgå uendelige loops ved at spore synkroniseringskilden
- Kortlæg livscyklusstadier - Brug HubSpot-livscyklusstadier til at segmentere kontakter i Brevo
- Batch API-anmodninger - Brug batch-endpoints til masseoperationer for at holde dig inden for rate limits
- Overvåg webhook-levering - Konfigurér retry-logik og dead letter-håndtering
- Brug inkrementel synkronisering - Synkronisér kun ændrede poster ved hjælp af egenskaben
lastmodifieddate
Sikkerhed
- Private app-tokens - Scoped adgangstokens med granulære tilladelser
- OAuth 2.0 - Industristandardautorisation med rotation af refresh-tokens
- Webhook-signaturer - HMAC-baseret signaturverifikation (v3)
- TLS-kryptering - Al API-kommunikation krypteres under overførsel
- Scoped tilladelser - Minimum nødvendig scope-adgang pr. integration